Buckets:
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| exports.default = void 0; | |
| var _path = _interopRequireDefault(require("path")); | |
| var _fs = require("fs"); | |
| var _child_process = require("child_process"); | |
| var _helperPluginUtils = require("@babel/helper-plugin-utils"); | |
| var _istanbulLibInstrument = require("istanbul-lib-instrument"); | |
| var _testExclude = _interopRequireDefault(require("test-exclude")); | |
| var _schema = _interopRequireDefault(require("@istanbuljs/schema")); | |
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | |
| function getRealpath(n) { | |
| try { | |
| return (0, _fs.realpathSync)(n) || | |
| /* istanbul ignore next */ | |
| n; | |
| } catch (e) { | |
| /* istanbul ignore next */ | |
| return n; | |
| } | |
| } | |
| const memoize = new Map(); | |
| /* istanbul ignore next */ | |
| const memosep = _path.default.sep === '/' ? ':' : ';'; | |
| function loadNycConfig(cwd, opts) { | |
| let memokey = cwd; | |
| const args = [_path.default.resolve(__dirname, 'load-nyc-config-sync.js'), cwd]; | |
| if ('nycrcPath' in opts) { | |
| args.push(opts.nycrcPath); | |
| memokey += memosep + opts.nycrcPath; | |
| } | |
| /* execFileSync is expensive, avoid it if possible! */ | |
| if (memoize.has(memokey)) { | |
| return memoize.get(memokey); | |
| } | |
| const result = JSON.parse((0, _child_process.execFileSync)(process.execPath, args)); | |
| const error = result['load-nyc-config-sync-error']; | |
| if (error) { | |
| throw new Error(error); | |
| } | |
| const config = { ..._schema.default.defaults.babelPluginIstanbul, | |
| cwd, | |
| ...result | |
| }; | |
| memoize.set(memokey, config); | |
| return config; | |
| } | |
| function findConfig(opts) { | |
| const cwd = getRealpath(opts.cwd || process.env.NYC_CWD || | |
| /* istanbul ignore next */ | |
| process.cwd()); | |
| const keys = Object.keys(opts); | |
| const ignored = Object.keys(opts).filter(s => s === 'nycrcPath' || s === 'cwd'); | |
| if (keys.length > ignored.length) { | |
| // explicitly configuring options in babel | |
| // takes precedence. | |
| return { ..._schema.default.defaults.babelPluginIstanbul, | |
| cwd, | |
| ...opts | |
| }; | |
| } | |
| if (ignored.length === 0 && process.env.NYC_CONFIG) { | |
| // defaults were already applied by nyc | |
| return JSON.parse(process.env.NYC_CONFIG); | |
| } | |
| return loadNycConfig(cwd, opts); | |
| } | |
| function makeShouldSkip() { | |
| let exclude; | |
| return function shouldSkip(file, nycConfig) { | |
| if (!exclude || exclude.cwd !== nycConfig.cwd) { | |
| exclude = new _testExclude.default({ | |
| cwd: nycConfig.cwd, | |
| include: nycConfig.include, | |
| exclude: nycConfig.exclude, | |
| extension: nycConfig.extension, | |
| // Make sure this is true unless explicitly set to `false`. `undefined` is still `true`. | |
| excludeNodeModules: nycConfig.excludeNodeModules !== false | |
| }); | |
| } | |
| return !exclude.shouldInstrument(file); | |
| }; | |
| } | |
| var _default = (0, _helperPluginUtils.declare)(api => { | |
| api.assertVersion(7); | |
| const shouldSkip = makeShouldSkip(); | |
| const t = api.types; | |
| return { | |
| visitor: { | |
| Program: { | |
| enter(path) { | |
| this.__dv__ = null; | |
| this.nycConfig = findConfig(this.opts); | |
| const realPath = getRealpath(this.file.opts.filename); | |
| if (shouldSkip(realPath, this.nycConfig)) { | |
| return; | |
| } | |
| let { | |
| inputSourceMap | |
| } = this.opts; | |
| if (this.opts.useInlineSourceMaps !== false) { | |
| if (!inputSourceMap && this.file.inputMap) { | |
| inputSourceMap = this.file.inputMap.sourcemap; | |
| } | |
| } | |
| const visitorOptions = {}; | |
| Object.entries(_schema.default.defaults.instrumentVisitor).forEach(([name, defaultValue]) => { | |
| if (name in this.nycConfig) { | |
| visitorOptions[name] = this.nycConfig[name]; | |
| } else { | |
| visitorOptions[name] = _schema.default.defaults.instrumentVisitor[name]; | |
| } | |
| }); | |
| this.__dv__ = (0, _istanbulLibInstrument.programVisitor)(t, realPath, { ...visitorOptions, | |
| inputSourceMap | |
| }); | |
| this.__dv__.enter(path); | |
| }, | |
| exit(path) { | |
| if (!this.__dv__) { | |
| return; | |
| } | |
| const result = this.__dv__.exit(path); | |
| if (this.opts.onCover) { | |
| this.opts.onCover(getRealpath(this.file.opts.filename), result.fileCoverage); | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| }); | |
| exports.default = _default; |
Xet Storage Details
- Size:
- 4.43 kB
- Xet hash:
- 6cfecd9030b79e914516851c9a1528ac86589f848a2787a5c501b7f093d4b8f2
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.