Files
enviPy-bayer/static/js/ketcher2/node_modules/exposify/test/util/run.js
2025-06-23 20:13:54 +02:00

42 lines
1.0 KiB
JavaScript

'use strict';
var browserify = require('browserify')
, vm = require('vm')
, exposify = require('../../')
module.exports = function run(map, file, window, cb) {
exposify.config = map;
var ctx = { window: window };
var fullPath = require.resolve('../fixtures/' + file);
// If five arguments are provided, fourth one is an object for browserify
// options.
var opts = {};
if (arguments.length === 5) {
opts = cb;
cb = arguments[4];
}
// If ignoreMissing is true, set ctx.require to a no-op. This needed for the
// jquery-plus-non-literals test, as it has require statements that don't get
// converted with browserify-shim.
if ('ignoreMissing' in opts) {
ctx.require = function() {};
}
browserify(opts)
.require(fullPath)
.transform(exposify)
.bundle(function (err, res) {
if (err) return cb(err);
try {
var require_ = vm.runInNewContext(res, ctx);
cb(null, require_(fullPath));
} catch (e) {
cb(e);
}
});
}