Skip to content

Instantly share code, notes, and snippets.

@yoshuawuyts
Created August 11, 2017 10:01
Show Gist options
  • Save yoshuawuyts/7a8ab8dec99bb8669ef310d288cfb643 to your computer and use it in GitHub Desktop.
Save yoshuawuyts/7a8ab8dec99bb8669ef310d288cfb643 to your computer and use it in GitHub Desktop.
var assert = require('assert')
window.__shared__require = window.__shared__require || {}
window.__shared__require__handlers = window.__shared__require__handlers || {}
var cache = window.__shared__require
var handlers = window.__shared__require__handlers = {}
exports.oncreate = function (name, cb) {
assert.equal(typeof name, 'string', 'shared-require: name should be type string')
assert.equal(typeof cb, 'function', 'shared-require: cb should be type function')
handlers[name] = cb
}
exports.create = function (name, fn) {
var element = cache[name]
if (element) return element
var handler = handlers[name]
assert.ok(handler, 'shared-require: no registered handler found for ' + name)
element = handler(fn)
assert.ok(element, 'shared-require: no element returned from the handler for ' + name)
cache[name] = element
return element
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment