2 '../library/fn/promise': Promise
3 './config': {list, experimental, libraryBlacklist, es5SpecialCase, banner}
4 fs: {readFile, writeFile, unlink}
9 module.exports = ({modules = [], blacklist = [], library = no, umd = on})->
10 resolve, reject <~! new Promise _
11 let @ = modules.reduce ((memo, it)-> memo[it] = on; memo), {}
12 if @exp => for experimental => @[..] = on
13 if @es5 => for es5SpecialCase => @[..] = on
17 if name.indexOf("#ns.") is 0 and name not in experimental
20 if library => blacklist ++= libraryBlacklist
23 if name is ns or name.indexOf("#ns.") is 0
26 TARGET = temp.path {suffix: '.js'}
28 err, info <~! webpack do
29 entry: list.filter(~> @[it]).map ~>
30 if library => join __dirname, '..', 'library', 'modules', it
31 else join __dirname, '..', 'modules', it
35 if err => return reject err
37 err, script <~! readFile TARGET
38 if err => return reject err
41 if err => return reject err
46 if(typeof module != 'undefined' && module.exports)module.exports = __e;
48 else if(typeof define == 'function' && define.amd)define(function(){return __e});
49 // Export to global object
57 !function(__e, __g, undefined){