neft
Version:
JavaScript. Everywhere.
36 lines (28 loc) • 1.08 kB
text/coffeescript
'use strict'
groundskeeper = require 'groundskeeper'
{utils, log} = Neft
RELEASE_NAMESPACES_TO_REMOVE = [
'assert', 'Object.freeze', 'Object.seal', 'Object.preventExtensions'
]
module.exports = (bundle, opts, callback) ->
if opts.release
logtime = log.time 'Release mode'
namespaces = utils.clone RELEASE_NAMESPACES_TO_REMOVE
if opts.removeLogs
namespaces.push 'log'
bundle = bundle.replace ///\/\/<(\/)?development>;///g, '//<$1development>'
bundle = bundle.replace /, assert,;/g, ', '
bundle = bundle.replace /\ assert, |, assert;/g, ' '
if opts.removeLogs
bundle = bundle.replace /, log,;/g, ', '
bundle = bundle.replace /\ log, |, log;/g, ' '
cleaner = groundskeeper
console: true
namespace: namespaces
replace: 'true'
cleaner.write bundle
bundle = cleaner.toString()
log.end logtime
else
bundle = bundle.replace ///<production>([^]*?)<\/production>///gm, ''
callback null, bundle