UNPKG

gulp-clearbuild

Version:
41 lines (29 loc) 1.21 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _uglifyJs = require('uglify-js'); var _uglifyJs2 = _interopRequireDefault(_uglifyJs); var concat = String.prototype.concat.bind(''); function optimizelify(code) { var forceDirective = '/* _optimizely_evaluate=force */'; var jshint = { start: '\n\/*jshint ignore:start*\/ ', end: ' \/*jshint ignore:end*\/' }; var safeLoop = parseSafeLoop(code); var regex = /\/\*\s?_optimizely_evaluate\=force\s?\*\/\n*/i; var forceLoop = code.replace(regex, '').replace(safeLoop, ''); var uglified = _uglifyJs2['default'].minify(forceLoop, { fromString: true }); return concat(forceDirective, jshint.start, uglified.code, jshint.end, safeLoop); } function parseSafeLoop(code) { var regex = /\n\/\*\s?_optimizely_evaluate\=safe\s?\*\/([\S\s]{0,})/i; var safeLoop = (code.match(regex) || [])[0] || ''; var begIdx = code.indexOf(safeLoop); var endIdx = begIdx + safeLoop.indexOf('\n},{'); return code.substring(begIdx, endIdx); } exports['default'] = optimizelify; module.exports = exports['default'];