gemini-core
Version:
Utility which contains common modules for gemini and hermione
44 lines (34 loc) • 1.19 kB
JavaScript
;
const path = require('path');
const Promise = require('bluebird');
const browserify = require('browserify');
const ClientBridge = require('./client-bridge');
exports.ClientBridge = ClientBridge;
exports.build = (browser, opts = {}) => {
const script = browserify({
entries: './index',
basedir: path.join(__dirname, '..', 'browser', 'client-scripts')
});
if (!opts.coverage) {
script.exclude('./index.coverage');
}
script.transform({
sourceMap: false,
global: true,
ie8: true
}, 'uglifyify');
const lib = opts.calibration && opts.calibration.needsCompatLib ? './lib.compat.js' : './lib.native.js';
const ignoreAreas = opts.supportDeprecated ? './ignore-areas.deprecated.js' : './ignore-areas.js';
script.transform({
aliases: {
'./lib': {relative: lib},
'./ignore-areas': {relative: ignoreAreas}
},
verbose: false
}, 'aliasify');
return Promise.fromCallback((cb) => script.bundle(cb))
.then((buf) => {
const scripts = buf.toString();
return ClientBridge.create(browser, scripts);
});
};