123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- require! {'./config': {banner}, fs: {readFile, writeFile, unlink}, path, webpack}
- list = <[
- es5
- es6.symbol
- es6.object.assign
- es6.object.is
- es6.object.set-prototype-of
- es6.object.to-string
- es6.object.freeze
- es6.object.seal
- es6.object.prevent-extensions
- es6.object.is-frozen
- es6.object.is-sealed
- es6.object.is-extensible
- es6.object.get-own-property-descriptor
- es6.object.get-prototype-of
- es6.object.keys
- es6.object.get-own-property-names
- es6.function.name
- es6.function.has-instance
- es6.number.constructor
- es6.number.epsilon
- es6.number.is-finite
- es6.number.is-integer
- es6.number.is-nan
- es6.number.is-safe-integer
- es6.number.max-safe-integer
- es6.number.min-safe-integer
- es6.number.parse-float
- es6.number.parse-int
- es6.math.acosh
- es6.math.asinh
- es6.math.atanh
- es6.math.cbrt
- es6.math.clz32
- es6.math.cosh
- es6.math.expm1
- es6.math.fround
- es6.math.hypot
- es6.math.imul
- es6.math.log10
- es6.math.log1p
- es6.math.log2
- es6.math.sign
- es6.math.sinh
- es6.math.tanh
- es6.math.trunc
- es6.string.from-code-point
- es6.string.raw
- es6.string.trim
- es6.string.code-point-at
- es6.string.ends-with
- es6.string.includes
- es6.string.repeat
- es6.string.starts-with
- es6.string.iterator
- es6.array.from
- es6.array.of
- es6.array.iterator
- es6.array.species
- es6.array.copy-within
- es6.array.fill
- es6.array.find
- es6.array.find-index
- es6.regexp.constructor
- es6.regexp.flags
- es6.regexp.match
- es6.regexp.replace
- es6.regexp.search
- es6.regexp.split
- es6.promise
- es6.map
- es6.set
- es6.weak-map
- es6.weak-set
- es6.reflect.apply
- es6.reflect.construct
- es6.reflect.define-property
- es6.reflect.delete-property
- es6.reflect.enumerate
- es6.reflect.get
- es6.reflect.get-own-property-descriptor
- es6.reflect.get-prototype-of
- es6.reflect.has
- es6.reflect.is-extensible
- es6.reflect.own-keys
- es6.reflect.prevent-extensions
- es6.reflect.set
- es6.reflect.set-prototype-of
- es6.date.to-string
- es6.typed.array-buffer
- es6.typed.data-view
- es6.typed.int8-array
- es6.typed.uint8-array
- es6.typed.uint8-clamped-array
- es6.typed.int16-array
- es6.typed.uint16-array
- es6.typed.int32-array
- es6.typed.uint32-array
- es6.typed.float32-array
- es6.typed.float64-array
- es7.array.includes
- es7.string.at
- es7.string.pad-left
- es7.string.pad-right
- es7.string.trim-left
- es7.string.trim-right
- es7.regexp.escape
- es7.object.get-own-property-descriptors
- es7.object.values
- es7.object.entries
- es7.map.to-json
- es7.set.to-json
- web.immediate
- web.dom.iterable
- web.timers
- core.dict
- core.get-iterator-method
- core.get-iterator
- core.is-iterable
- core.delay
- core.function.part
- core.object.is-object
- core.object.classof
- core.object.define
- core.object.make
- core.number.iterator
- core.string.escape-html
- core.string.unescape-html
- core.log
- js.array.statics
- ]>
- experimental = <[
- es6.date.to-string
- es6.typed.array-buffer
- es6.typed.data-view
- es6.typed.int8-array
- es6.typed.uint8-array
- es6.typed.uint8-clamped-array
- es6.typed.int16-array
- es6.typed.uint16-array
- es6.typed.int32-array
- es6.typed.uint32-array
- es6.typed.float32-array
- es6.typed.float64-array
- ]>
- libraryBlacklist = <[
- es6.object.to-string
- es6.function.name
- es6.regexp.constructor
- es6.regexp.flags
- es6.regexp.match
- es6.regexp.replace
- es6.regexp.search
- es6.regexp.split
- es6.number.constructor
- ]>
- es5SpecialCase = <[
- es6.object.freeze
- es6.object.seal
- es6.object.prevent-extensions
- es6.object.is-frozen
- es6.object.is-sealed
- es6.object.is-extensible
- es6.string.trim
- ]>
- module.exports = ({modules = [], blacklist = [], library = no}, next)!->
- let @ = modules.reduce ((memo, it)-> memo[it] = on; memo), {}
- check = (err)->
- if err
- next err, ''
- on
- 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 = "./__tmp#{ Math.random! }__.js"
- err, info <~! webpack do
- entry: list.filter(~> @[it]).map ~>
- path.join(__dirname, '../', "#{ if library => '/library' else '' }/modules/#it")
- output:
- path: ''
- filename: TARGET
- if check err => return
- err, script <~! readFile TARGET
- if check err => return
- err <~! unlink TARGET
- if check err => return
- next null """
- #banner
- !function(__e, __g, undefined){
- 'use strict';
- #script
- // 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;
- }(1, 1);
- """
|