Skip to content

Instantly share code, notes, and snippets.

@tpae
Forked from amoilanen/promisify_require.js
Created August 15, 2014 20:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tpae/1b2e07ed67f17f313a9e to your computer and use it in GitHub Desktop.
Save tpae/1b2e07ed67f17f313a9e to your computer and use it in GitHub Desktop.
/*
* Enhances 'require' from RequireJS with Promises API while preserving its original semantics.
*/
(function() {
if (!Promise || !require) {
return;
}
var originalRequire = require;
function toArray(elems) {
return [].slice.call(elems);
}
req = require = function(deps, callback, errback, optional) {
return new Promise(function(resolve, reject) {
originalRequire(deps,
function() {
callback && callback.apply(null, toArray(arguments));
resolve(toArray(arguments));
},
function() {
errback && errback.apply(null, toArray(arguments));
reject(toArray(arguments));
},
optional
);
});
};
require.config = function() {
originalRequire.config.apply(originalRequire, toArray(arguments));
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment