UNPKG

neft

Version:

Universal Platform

86 lines (69 loc) 2.48 kB
fs = require 'fs-extra' Mustache = require 'mustache' coffee = require 'coffee-script' bundle = require 'lib/bundle-builder' moduleCache = require 'lib/module-cache' moduleCache.registerCoffeeScript() moduleCache.registerYaml() moduleCache.registerTxt(['.txt', '.pegjs']) fs.ensureDir './cli/bundle' createBundle = (opts, callback) -> bundle { platform: opts.platform extras: opts.extras release: opts.release removeLogs: opts.release minify: opts.release verbose: true path: 'index.coffee' env: opts.env test: (req) -> /^(?:src\/|\.|package\.json)/.test(req) }, (err, bundle) -> if err return callback err try tmplSrc = "./scripts/bundle/#{opts.platform}.coffee.mustache" template = fs.readFileSync tmplSrc, 'utf-8' template = coffee.compile template, bare: true try tmplSrc = "./scripts/bundle/#{opts.platform}.js.mustache" template ||= fs.readFileSync tmplSrc, 'utf-8' tmplSrc = './scripts/bundle/standard.js.mustache' template ||= fs.readFileSync tmplSrc, 'utf-8' mode = if opts.release then 'release' else 'develop' template = Mustache.render template, neftCode: bundle extrasText = '' if opts.extras extrasText = "#{Object.keys(opts.extras).sort().join('-')}-" name = "#{opts.platform}-#{extrasText}#{mode}" fs.writeFileSync "./cli/bundle/neft-#{name}.js", template callback() TYPES = [ {platform: 'node'}, {platform: 'browser', globals: {NEFT_TYPE: 'app'}}, {platform: 'browser', globals: {NEFT_TYPE: 'game'}, extras: {game: true}}, {platform: 'android'}, {platform: 'ios'}, ] do -> stack = [] registerBundle = (type, opts) -> bundleOpts = {} bundleOpts[key] = val for key, val of type bundleOpts[key] = val for key, val of opts stack.push (callback) -> createBundle(bundleOpts, callback) for type in TYPES if process.argv.indexOf("--#{type.platform}") >= 0 registerBundle type, {release: false} if process.argv.indexOf("--#{type.platform}-release") >= 0 registerBundle type, {release: true} index = -1 callback = (err) -> if err? throw err index += 1 if index < stack.length stack[index] callback callback() return