Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (typeof code === 'object' && typeof code.type === 'string') {
// Assume code is already a babel ast.
return code;
}
if (typeof code !== 'string') {
throw new Error('Code must be a string');
}
// Parse as leniently as possible
return parse(code, {
allowImportExportEverywhere: true,
allowReturnOutsideFunction: true,
allowSuperOutsideMethod: true,
sourceType: 'script',
plugins: defaults.instrumenter.parserPlugins
});
}
constructor(opts = {}) {
this.opts = {
...defaults.instrumenter,
...opts
};
this.fileCoverage = null;
this.sourceMap = null;
}
/**
/**
* createInstrumenter creates a new instrumenter with the
* supplied options.
* @param {Object} opts - instrumenter options. See the documentation
* for the Instrumenter class.
*/
function createInstrumenter(opts) {
return new Instrumenter(opts);
}
export { createInstrumenter };
export { programVisitor };
export { readInitialCoverage };
export const defaultOpts = defaults.instrumenter;