Skip to content

Instantly share code, notes, and snippets.

@sjmiles
Last active December 16, 2015 23:39
Show Gist options
  • Save sjmiles/5515511 to your computer and use it in GitHub Desktop.
Save sjmiles/5515511 to your computer and use it in GitHub Desktop.
Toolkit dependency 'early warning' system
<!-- bad thing to be avoided -->
<element name="x-foo">
<script>
rarelyUsedMethod: function() {
missingDependency.doWork();
}
</script>
</element>
<!-- dependency requisition via custom element -->
<element name="x-foo">
<script>
var imports = Toolkit.require('tk-dostuff', 'tk-filter', 'tk-goodies');
var dostuff = imports.tk_dostuff, filter = imports.tk_filter, goodies = imports.tk_goodies;
Toolkit.register(this, {
ready: function() {
dostuff.doStuff(filter.filter(goodies.emit()));
}
});
Toolkit._require = function(inTag) {
var elt = document.createElement(inTag);
if (elt.api) {
return elt.api;
} else {
throw new Error(inTag + ' dependency not avaiable.');
}
}
Toolkit.require = function() {
var imports = {};
for (var i=0, a; a=arguments[i]; i++) {
imports[a] = Toolkit._require(a);
}
return imports;
}
<script>
</element>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment