Spaces:
Runtime error
Runtime error
| require! { | |
| '../library/fn/promise': Promise | |
| './config': {list, experimental, libraryBlacklist, es5SpecialCase, banner} | |
| fs: {readFile, writeFile, unlink} | |
| path: {basename, dirname, join} | |
| webpack, temp | |
| } | |
| module.exports = ({modules = [], blacklist = [], library = no, umd = on})-> | |
| resolve, reject <~! new Promise _ | |
| let @ = modules.reduce ((memo, it)-> memo[it] = on; memo), {} | |
| if @exp => for experimental => @[..] = on | |
| if @es5 => for es5SpecialCase => @[..] = on | |
| for ns of @ | |
| if @[ns] | |
| for name in list | |
| if name.indexOf("#ns.") is 0 and name not in experimental | |
| @[name] = on | |
| if library => blacklist ++= libraryBlacklist | |
| for ns in blacklist | |
| for name in list | |
| if name is ns or name.indexOf("#ns.") is 0 | |
| @[name] = no | |
| TARGET = temp.path {suffix: '.js'} | |
| err, info <~! webpack do | |
| entry: list.filter(~> @[it]).map ~> | |
| if library => join __dirname, '..', 'library', 'modules', it | |
| else join __dirname, '..', 'modules', it | |
| output: | |
| path: dirname TARGET | |
| filename: basename "./#TARGET" | |
| if err => return reject err | |
| err, script <~! readFile TARGET | |
| if err => return reject err | |
| err <~! unlink TARGET | |
| if err => return reject err | |
| if umd | |
| exportScript = """ | |
| // CommonJS export | |
| if (typeof module != 'undefined' && module.exports) module.exports = __e; | |
| // RequireJS export | |
| else if (typeof define == 'function' && define.amd) define(function () { return __e; }); | |
| // Export to global object | |
| else __g.core = __e; | |
| """ | |
| else | |
| exportScript = "" | |
| resolve """ | |
| #banner | |
| !function(__e, __g, undefined){ | |
| 'use strict'; | |
| #script | |
| #exportScript | |
| }(1, 1); | |
| """ |