@cypress/webpack-preprocessor
Version:
Cypress preprocessor for bundling JavaScript via webpack
46 lines (45 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.overrideSourceMaps = void 0;
var debug = require('debug')('cypress:webpack');
var _ = require('lodash');
var patched = false;
var getProgramOptions = function (rootNamesOrOptions, options) {
return _.isArray(rootNamesOrOptions) ? options : rootNamesOrOptions.options;
};
var overrideSourceMaps = function (sourceMap, typescriptPath) {
try {
if (patched) {
debug('typescript.createProgram() already overridden');
return;
}
var typescript_1 = require(typescriptPath || 'typescript');
var createProgram_1 = typescript_1.createProgram;
debug('typescript found, overriding typescript.createProgram()');
typescript_1.createProgram = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var rootNamesOrOptions = args[0], _options = args[1];
var options = getProgramOptions(rootNamesOrOptions, _options);
debug('typescript unmodified createProgram options %o', options);
// if sourceMap has been set then apply
// these overrides to force typescript
// to generate the right sourcemaps
options.sourceMap = sourceMap;
delete options.inlineSources;
delete options.inlineSourceMap;
debug('typescript modified createProgram options %o', options);
// @ts-ignore
return createProgram_1.apply(typescript_1, args);
};
patched = true;
}
catch (err) {
debug('typescript not found');
// for testing purposes
return err;
}
};
exports.overrideSourceMaps = overrideSourceMaps;