requisite
Version:
A cosmic javascript bundler.
88 lines (80 loc) • 2.28 kB
JavaScript
// Generated by CoffeeScript 1.10.0
var Module, Prelude, createWrapper, path, toRegex;
Module = require('./module');
Prelude = require('./wrapper').Prelude;
path = require('path');
toRegex = require('to-regexp');
createWrapper = function(opts) {
return new Prelude({
async: opts.async,
bare: opts.bare,
globalRequire: opts.globalRequire,
prelude: opts.prelude,
preludeAsync: opts.preludeAsync
});
};
module.exports = function(opts, cb) {
var basePath, exclude, include, mod, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, resolveAs, sourceMapRoot;
if (opts == null) {
opts = {};
}
if (cb == null) {
cb = function() {};
}
if (typeof opts === 'function') {
ref = [opts, {}], cb = ref[0], opts = ref[1];
}
if (opts.preludeOnly) {
if (!opts.bare) {
opts.globalRequire = true;
}
return cb(null, createWrapper(opts));
}
basePath = (ref1 = opts.base) != null ? ref1 : opts.src;
sourceMapRoot = basePath != null ? basePath : '/' + path.dirname(opts.entry);
exclude = toRegex(opts.exclude);
include = (ref2 = opts.include) != null ? ref2 : {};
resolveAs = (ref3 = (ref4 = opts.resolveAs) != null ? ref4 : opts.resolve) != null ? ref3 : {};
if (!(Object.keys(include)).length) {
include = null;
}
if (!(Object.keys(resolveAs)).length) {
resolveAs = null;
}
mod = new Module(opts.entry, {
bare: opts.bare,
basePath: basePath,
compilers: opts.compilers,
exclude: exclude,
"export": opts["export"],
include: include,
moduleCache: opts.moduleCache,
paths: (ref5 = opts.paths) != null ? ref5 : [],
resolveAs: resolveAs,
sourceMap: (ref6 = opts.sourceMap) != null ? ref6 : true,
sourceMapRoot: (ref7 = opts.sourceMapRoot) != null ? ref7 : sourceMapRoot,
strict: opts.strict,
urlRoot: opts.urlRoot
});
return mod.parse(function(err) {
var k, ref8, v;
if (err != null) {
return cb(err);
}
if (!opts.async) {
ref8 = mod.moduleCache;
for (k in ref8) {
v = ref8[k];
if (v.async) {
opts.async = true;
break;
}
}
}
if (!opts.bare) {
mod.toplevel = createWrapper(opts);
}
return cb(null, mod);
});
};
//# sourceMappingURL=bundle.js.map