Version 1
[yaffs-website] / node_modules / core-js / build / build.ls
diff --git a/node_modules/core-js/build/build.ls b/node_modules/core-js/build/build.ls
new file mode 100644 (file)
index 0000000..0cf210d
--- /dev/null
@@ -0,0 +1,62 @@
+require! {
+  '../library/fn/promise': Promise
+  './config': {list, experimental, libraryBlacklist, es5SpecialCase, banner}
+  fs: {readFile, writeFile, unlink}
+  path: {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: ''
+        filename: 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);
+      """
\ No newline at end of file