Created
December 12, 2016 15:13
-
-
Save ethyde/a36af6cdc06a8d99642e1ffa2fad29de to your computer and use it in GitHub Desktop.
Universal JS module loader
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* From http://ifandelse.com/its-not-hard-making-your-library-support-amd-and-commonjs/ | |
* http://ricostacruz.com/cheatsheets/umdjs.html | |
*/ | |
(function (root, factory) { | |
if(typeof define === "function" && define.amd) { | |
// Now we're wrapping the factory and assigning the return | |
// value to the root (window) and returning it as well to | |
// the AMD loader. | |
define(["postal"], function(postal){ | |
return (root.myModule = factory(postal)); | |
}); | |
} else if(typeof module === "object" && module.exports) { | |
// I've not encountered a need for this yet, since I haven't | |
// run into a scenario where plain modules depend on CommonJS | |
// *and* I happen to be loading in a CJS browser environment | |
// but I'm including it for the sake of being thorough | |
module.exports = (root.myModule = factory(require("postal"))); | |
} else { | |
root.myModule = factory(root.postal); | |
} | |
}(this, function(postal) { | |
// module code here.... | |
return myModule; | |
})); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment