Version 1
[yaffs-website] / node_modules / core-js / build / build.ls
1 require! {
2   '../library/fn/promise': Promise
3   './config': {list, experimental, libraryBlacklist, es5SpecialCase, banner}
4   fs: {readFile, writeFile, unlink}
5   path: {join}
6   webpack, temp
7 }
8
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
14     for ns of @
15       if @[ns]
16         for name in list
17           if name.indexOf("#ns.") is 0 and name not in experimental
18             @[name] = on
19
20     if library => blacklist ++= libraryBlacklist
21     for ns in blacklist
22       for name in list
23         if name is ns or name.indexOf("#ns.") is 0
24           @[name] = no
25
26     TARGET = temp.path {suffix: '.js'}
27
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
32       output:
33         path: ''
34         filename: TARGET
35     if err => return reject err
36
37     err, script <~! readFile TARGET
38     if err => return reject err
39
40     err <~! unlink TARGET
41     if err => return reject err
42
43     if umd
44       exportScript = """
45         // CommonJS export
46         if(typeof module != 'undefined' && module.exports)module.exports = __e;
47         // RequireJS export
48         else if(typeof define == 'function' && define.amd)define(function(){return __e});
49         // Export to global object
50         else __g.core = __e;
51         """
52     else
53       exportScript = ""
54
55     resolve """
56       #banner
57       !function(__e, __g, undefined){
58       'use strict';
59       #script
60       #exportScript
61       }(1, 1);
62       """