@teambit/dependencies 1.0.784 → 1.0.786
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/files-dependency-builder/build-tree.js +1 -1
- package/dist/files-dependency-builder/build-tree.js.map +1 -1
- package/dist/files-dependency-builder/dependency-tree/index.d.ts +1 -1
- package/dist/files-dependency-builder/dependency-tree/index.js +7 -7
- package/dist/files-dependency-builder/dependency-tree/index.js.map +1 -1
- package/dist/files-dependency-builder/dependency-tree/index.spec.js +73 -73
- package/dist/files-dependency-builder/dependency-tree/index.spec.js.map +1 -1
- package/dist/files-dependency-builder/filing-cabinet/index.spec.js +1 -1
- package/dist/files-dependency-builder/filing-cabinet/index.spec.js.map +1 -1
- package/dist/files-dependency-builder/generate-tree-madge.d.ts +1 -1
- package/dist/files-dependency-builder/generate-tree-madge.js +5 -5
- package/dist/files-dependency-builder/generate-tree-madge.js.map +1 -1
- package/dist/files-dependency-builder/precinct/index.d.ts +1 -1
- package/dist/files-dependency-builder/precinct/index.js +2 -2
- package/dist/files-dependency-builder/precinct/index.js.map +1 -1
- package/dist/files-dependency-builder/precinct/index.spec.js +19 -19
- package/dist/files-dependency-builder/precinct/index.spec.js.map +1 -1
- package/files-dependency-builder/build-tree.ts +1 -1
- package/files-dependency-builder/dependency-tree/index.spec.ts +73 -73
- package/files-dependency-builder/dependency-tree/index.ts +7 -7
- package/files-dependency-builder/filing-cabinet/index.spec.ts +1 -1
- package/files-dependency-builder/generate-tree-madge.ts +5 -5
- package/files-dependency-builder/precinct/index.spec.ts +19 -19
- package/files-dependency-builder/precinct/index.ts +2 -2
- package/package.json +12 -12
- /package/dist/{preview-1760559238683.js → preview-1760626422561.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_defenderFs","data","require","_assert","_interopRequireDefault","_path","_rewire","_sinon","_fsExtra","_precinct","_Config","e","__esModule","default","UNIT_TEST_DIR","path","join","BIT_TEMP_ROOT","expect","dependencyTreeRewired","rewire","dependencyTree","fixtures","resolve","__dirname","mockfs","obj","Object","entries","forEach","key","value","fs","mkdirSync","recursive","file","content","filePath","writeFileSync","cleanUnitDir","removeSync","describe","timeout","testTreesForFormat","format","ext","it","root","filename","normalize","tree","assert","aSubTree","ok","filesInSubTree","keys","equal","length","mockStylus","mockSass","mockLess","mockcommonjs","mockes6","mockTS","afterEach","imaginary","directory","subTree","bTree","cTree","some","dep","indexOf","spy","sinon","callCount","_getDependencies","restore","node","nodes","process","cwd","precinct","detectiveConfig","amd","skipLazyLoaded","detective","calledWith","nonExistent","beforeEach","_directory","_revert","__set__","throws","undefined","filter","doesNotThrow","_spy","cache","pathMap","dependencies","visited","includes","skip","_root","_webpackConfig","_testResolution","name","results","toList","webpackConfig","moduleFile","has3rdPartyDep","es6","mixedImports","node_modules","nodeModulesConfig","entry","config","Config","clone","deepEqual","fooFile","barFile","bazFile","to","deep","baseFile","indexFile","be","missing"],"sources":["index.spec.ts"],"sourcesContent":["import { BIT_TEMP_ROOT } from '@teambit/defender.fs.global-bit-temp-dir';\nimport assert from 'assert';\nimport path from 'path';\nimport rewire from 'rewire';\nimport sinon from 'sinon';\nimport fs from 'fs-extra';\n\nimport precinct from '../precinct';\nimport Config from './Config';\n\nconst UNIT_TEST_DIR = path.join(BIT_TEMP_ROOT, 'unit-test');\nconst expect = require('chai').expect;\n\nconst dependencyTreeRewired = rewire('./');\nconst dependencyTree = dependencyTreeRewired.default;\nconst fixtures = path.resolve(`${__dirname}/../fixtures/dependency-tree`);\n\nfunction mockfs(obj: any) {\n Object.entries(obj).forEach(([key, value]) => {\n fs.mkdirSync(key, { recursive: true });\n // @ts-ignore\n Object.entries(value).forEach(([file, content]) => {\n const filePath = path.join(key, file);\n fs.writeFileSync(filePath, content as string);\n });\n });\n}\n\nfunction cleanUnitDir() {\n fs.removeSync(UNIT_TEST_DIR);\n}\n\ndescribe('dependencyTree', function () {\n this.timeout(8000);\n function testTreesForFormat(format, ext = '.js') {\n it('returns an object form of the dependency tree for a file', () => {\n const root = `${UNIT_TEST_DIR}/${format}`;\n const filename = path.normalize(`${root}/a${ext}`);\n\n const tree = dependencyTree({ filename, root });\n\n assert(tree instanceof Object);\n\n const aSubTree = tree[filename];\n\n assert.ok(aSubTree instanceof Object);\n const filesInSubTree = Object.keys(aSubTree);\n\n assert.equal(filesInSubTree.length, 2);\n });\n }\n\n function mockStylus() {\n mockfs({\n [`${UNIT_TEST_DIR}/stylus`]: {\n 'a.styl': `\n @import \"b\"\n @require \"c.styl\"\n `,\n 'b.styl': '@import \"c\"',\n 'c.styl': '',\n },\n });\n }\n\n function mockSass() {\n mockfs({\n [`${UNIT_TEST_DIR}/sass`]: {\n 'a.scss': `\n @import \"_b\";\n @import \"_c.scss\";\n `,\n '_b.scss': 'body { color: blue; }',\n '_c.scss': 'body { color: pink; }',\n },\n });\n }\n\n function mockLess() {\n mockfs({\n [`${UNIT_TEST_DIR}/less`]: {\n 'a.less': `\n @import \"b.css\";\n @import \"c.less\";\n `,\n 'b.css': 'body { color: blue; }',\n 'c.less': 'body { color: pink; }',\n },\n });\n }\n\n function mockcommonjs() {\n mockfs({\n [`${UNIT_TEST_DIR}/commonjs`]: {\n 'a.js': `\n var b = require('./b');\n var c = require('./c');\n `,\n 'b.js': `\n var path = require('path');\n module.exports = {};\n `,\n 'c.js': `\n var fs = require('fs');\n module.exports = {};\n `,\n },\n });\n }\n\n function mockes6() {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'a.js': `\n import b from './b';\n import c from './c';\n `,\n 'b.js': 'export default () => {};',\n 'c.js': 'export default () => {};',\n 'jsx.js': \"import c from './c';\\n export default <jsx />;\",\n 'foo.jsx': \"import React from 'react';\\n import b from './b';\\n export default <jsx />;\",\n 'es7.js': \"import c from './c';\\n export default async function foo() {};\",\n },\n });\n }\n\n function mockTS() {\n mockfs({\n [`${UNIT_TEST_DIR}/ts`]: {\n 'a.ts': `\n import b from './b';\n import c from './c';\n `,\n 'b.ts': 'export default () => {};',\n 'c.ts': 'export default () => {};',\n },\n });\n }\n\n afterEach(() => {\n // mockfs.restore();\n cleanUnitDir();\n });\n\n it('returns an empty object for a non-existent filename', () => {\n mockfs({\n imaginary: {},\n });\n\n const root = `${UNIT_TEST_DIR}/imaginary`;\n const filename = `${root}/notafile.js`;\n const tree = dependencyTree({ filename, root });\n\n assert(tree instanceof Object);\n assert(!Object.keys(tree).length);\n });\n\n it('handles nested tree structures', () => {\n const directory = `${UNIT_TEST_DIR}/extended`;\n\n mockfs({\n [directory]: {\n 'a.js': `\n var b = require('./b');\n var c = require('./c');`,\n 'b.js': `\n var d = require('./d');\n var e = require('./e');`,\n 'c.js': `\n var f = require('./f');\n var g = require('./g');`,\n 'd.js': '',\n 'e.js': '',\n 'f.js': '',\n 'g.js': '',\n },\n });\n\n const filename = path.normalize(`${directory}/a.js`);\n const tree = dependencyTree({ filename, directory });\n assert(tree[filename] instanceof Object);\n\n // b and c\n const subTree = tree[filename];\n assert.equal(subTree.length, 2);\n\n const bTree = tree[path.normalize(`${directory}/b.js`)];\n const cTree = tree[path.normalize(`${directory}/c.js`)];\n // d and e\n assert.equal(bTree.length, 2);\n // f ang g\n assert.equal(cTree.length, 2);\n });\n\n it('does not include files that are not real (#13)', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var notReal = require(\"./notReal\");',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = path.normalize(`${directory}/a.js`);\n\n const tree = dependencyTree({ filename, directory });\n const subTree = tree[filename];\n\n assert.ok(!Object.keys(subTree).some((dep) => dep.indexOf('notReal') !== -1));\n });\n\n it('does not choke on cyclic dependencies', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cyclic`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'var a = require(\"./a\");',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/cyclic`;\n const filename = path.normalize(`${directory}/a.js`);\n\n const spy = sinon.spy(dependencyTreeRewired, '_getDependencies');\n\n const tree = dependencyTreeRewired.default({ filename, directory });\n\n assert(spy.callCount === 2);\n assert(Object.keys(tree[filename]).length);\n\n dependencyTreeRewired._getDependencies.restore();\n });\n\n it('excludes Nodejs core modules by default', () => {\n const directory = `${fixtures}/commonjs`;\n const filename = path.normalize(`${directory}/b.js`);\n\n const tree = dependencyTree({ filename, directory });\n assert(Object.keys(tree[filename]).length === 0);\n assert(Object.keys(tree)[0].indexOf('b.js') !== -1);\n });\n\n it('returns a list of absolutely pathed files', () => {\n const directory = `${UNIT_TEST_DIR}/commonjs`;\n const filename = `${directory}/b.js`;\n\n const tree = dependencyTree({ filename, directory });\n // eslint-disable-next-line\n for (const node in tree.nodes) {\n assert(node.indexOf(process.cwd()) !== -1);\n }\n });\n\n describe('when given a detective configuration', () => {\n it('passes it through to precinct', () => {\n const spy = sinon.spy(precinct, 'paperwork');\n const directory = path.normalize(`${fixtures}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const detectiveConfig = {\n amd: {\n skipLazyLoaded: true,\n },\n };\n\n dependencyTree({\n filename,\n directory,\n detective: detectiveConfig,\n });\n\n assert.ok(spy.calledWith(filename, detectiveConfig));\n spy.restore();\n });\n });\n\n describe('when given a list to store non existent partials', () => {\n describe('and the file contains no valid partials', () => {\n it('stores the invalid partials', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var notReal = require(\"./notReal\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 1);\n assert.equal(nonExistent[filename][0], './notReal');\n });\n });\n\n describe('and the file contains all valid partials', () => {\n it('does not store anything', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'export default 1;',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(nonExistent.length, 0);\n });\n });\n\n describe('and the file contains a mix of invalid and valid partials', () => {\n it('stores the invalid ones', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'var c = require(\"./c\"); export default 1;',\n 'c.js': 'var crap = require(\"./notRealMan\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 1);\n assert.equal(nonExistent[path.normalize(`${directory}/c.js`)][0], './notRealMan');\n });\n });\n\n describe('and there is more than one reference to the invalid partial', () => {\n it('should include the non-existent partial per file', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");\\nvar crap = require(\"./notRealMan\");',\n 'b.js': 'var c = require(\"./c\"); export default 1;',\n 'c.js': 'var crap = require(\"./notRealMan\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 2);\n assert.equal(nonExistent[filename][0], './notRealMan');\n assert.equal(nonExistent[path.normalize(`${directory}/c.js`)][0], './notRealMan');\n });\n });\n });\n\n describe('throws', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = `${UNIT_TEST_DIR}/commonjs`;\n // @ts-ignore\n this._revert = dependencyTreeRewired.__set__('traverse', () => []);\n });\n\n afterEach(() => {\n // @ts-ignore\n this._revert();\n });\n\n it('throws if the filename is missing', () => {\n assert.throws(() => {\n dependencyTree({\n filename: undefined,\n // @ts-ignore\n directory: this._directory,\n });\n });\n });\n\n it('throws if the root is missing', () => {\n assert.throws(() => {\n dependencyTree({ filename: undefined });\n });\n });\n\n it('throws if a supplied filter is not a function', () => {\n assert.throws(() => {\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n\n dependencyTree({\n filename,\n directory,\n filter: 'foobar',\n });\n });\n });\n\n it('does not throw on the legacy `root` option', () => {\n assert.doesNotThrow(() => {\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n\n dependencyTree({\n filename,\n root: directory,\n });\n });\n });\n });\n\n describe('on file error', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = `${UNIT_TEST_DIR}/commonjs`;\n });\n\n it('does not throw', () => {\n assert.doesNotThrow(() => {\n dependencyTree({\n filename: 'foo',\n // @ts-ignore\n directory: this._directory,\n });\n });\n });\n\n it('returns no dependencies', () => {\n // @ts-ignore\n const tree = dependencyTree({ filename: 'foo', directory: this._directory });\n assert(!tree.length);\n });\n });\n\n describe('memoization (#2)', () => {\n beforeEach(() => {\n // @ts-ignore\n this._spy = sinon.spy(dependencyTreeRewired, '_getDependencies');\n });\n\n afterEach(() => {\n dependencyTreeRewired._getDependencies.restore();\n });\n\n it('returns the precomputed list of a cached entry point', () => {\n const filename = `${UNIT_TEST_DIR}/amd/a.js`;\n const directory = `${UNIT_TEST_DIR}/amd`;\n\n const cache = {\n // Shouldn't process the first file's tree\n [filename]: { pathMap: { dependencies: [] } },\n };\n\n const tree = dependencyTree({\n filename,\n directory,\n visited: cache,\n });\n\n assert(!tree.length);\n });\n });\n\n describe('module formats', () => {\n describe('commonjs', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n mockcommonjs();\n });\n\n testTreesForFormat('commonjs');\n });\n\n describe('es6', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n mockes6();\n });\n\n testTreesForFormat('es6');\n\n it('resolves files that have jsx', () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/jsx.js`);\n const tree = dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/c.js`)));\n });\n\n it('resolves files with a jsx extension', () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/foo.jsx`);\n const tree = dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/b.js`)));\n });\n\n it('resolves files that have es7', () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/es7.js`);\n const tree = dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/c.js`)));\n });\n });\n\n describe('sass', () => {\n beforeEach(() => {\n mockSass();\n });\n\n testTreesForFormat('sass', '.scss');\n });\n\n describe('stylus', () => {\n beforeEach(() => {\n mockStylus();\n });\n\n testTreesForFormat('stylus', '.styl');\n });\n\n describe('less', () => {\n beforeEach(() => {\n mockLess();\n });\n\n testTreesForFormat('less', '.less');\n });\n\n describe('typescript', () => {\n beforeEach(() => {\n mockTS();\n });\n\n testTreesForFormat('ts', '.ts');\n });\n });\n\n // skipping the webpack unit tests for now as it's not easy to wire up all the files together.\n // originally, in dependency-tree, the webpack.config.js is in the same directory of the index.js.\n // doing the same here will be confusing. instead, we have already e2e-tests in bit legacy of custom\n // module resolution, which takes advantage of the webpack config.\n describe.skip('webpack', () => {\n beforeEach(() => {\n // Note: not mocking because webpack's resolver needs a real project with dependencies;\n // otherwise, we'd have to mock a ton of files.\n // @ts-ignore\n this._root = path.join(UNIT_TEST_DIR, '../');\n // @ts-ignore\n this._webpackConfig = `${this._root}/webpack.config.js`;\n // @ts-ignore\n this._testResolution = (name) => {\n const results = dependencyTree.toList({\n filename: `${UNIT_TEST_DIR}/webpack/${name}.js`,\n // @ts-ignore\n directory: this._root,\n // @ts-ignore\n webpackConfig: this._webpackConfig,\n filter: (filename) => filename.indexOf('filing-cabinet') !== -1,\n });\n assert.ok(results.some((filename) => filename.indexOf('node_modules/filing-cabinet') !== -1));\n };\n });\n\n it('resolves unaliased modules', () => {\n this.timeout(5000);\n // @ts-ignore\n this._testResolution('unaliased');\n });\n });\n\n describe('when a filter function is supplied', () => {\n it('uses the filter to determine if a file should be included in the results', () => {\n const directory = path.normalize(`${fixtures}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n // Skip all 3rd party deps\n filter: (filePath, moduleFile) => {\n assert.ok(require.resolve('debug'));\n assert.ok(moduleFile.includes(path.normalize('onlyRealDeps/a.js')));\n return filePath.indexOf('node_modules') === -1;\n },\n });\n\n const subTree = tree[filename];\n assert.ok(Object.keys(tree).length);\n\n const has3rdPartyDep = Object.keys(subTree).some((dep) => dep === require.resolve('debug'));\n assert.ok(!has3rdPartyDep);\n });\n });\n\n describe('when given a CJS file with lazy requires', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/cjs`]: {\n 'foo.js': 'module.exports = function(bar = require(\"./bar\")) {};',\n 'bar.js': 'module.exports = 1;',\n },\n });\n });\n\n it('includes the lazy dependency', () => {\n const directory = `${UNIT_TEST_DIR}/cjs`;\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({ filename, directory });\n assert.ok(tree[filename].includes(path.normalize(`${directory}/bar.js`)));\n });\n });\n\n describe('when given an es6 file using CJS lazy requires', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'foo.js': 'export default function(bar = require(\"./bar\")) {};',\n 'bar.js': 'export default 1;',\n },\n });\n });\n\n describe('and mixedImport mode is turned on', () => {\n it('includes the lazy dependency', () => {\n const directory = `${UNIT_TEST_DIR}/es6`;\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n detective: {\n es6: {\n mixedImports: true,\n },\n },\n });\n\n assert.ok(tree[filename].includes(path.normalize(`${directory}/bar.js`)));\n });\n });\n });\n\n describe('when given an es6 file using dynamic imports', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'foo.js': 'import(\"./bar\");',\n 'bar.js': 'export default 1;',\n },\n });\n });\n\n it('includes the dynamic import', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n });\n\n const subTree = tree[filename];\n\n assert.ok(!(`${directory}/bar.js` in subTree));\n });\n });\n\n describe('when a dependency of the main file is not supported', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'foo.js': 'require(\"./bar.json\");',\n 'bar.json': '{ \"main\": \"I\\'m a simple JSON object\" }',\n },\n });\n });\n\n it('should include it as a dependency and not throw an error', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n });\n\n assert.ok(`${directory}/bar.json` in tree);\n });\n });\n\n // nodeModulesConfig is a feature added to dependency-tree and filing-cabinet to support\n // \"module\" attribute of package.json, see here what this attribute is good for:\n // https://github.com/rollup/rollup/wiki/pkg.module\n // the commit of supporting it in filing-cabinet is here: https://github.com/dependents/node-filing-cabinet/commit/abef861a5a725b29c2342d01de94c6e2dd881aa0\n describe.skip('when given a CJS file with module property in package.json', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'module.entry.js': 'import * as module from \"module.entry\"',\n node_modules: {\n 'module.entry': {\n 'index.main.js': 'module.exports = () => {};',\n 'index.module.js': 'module.exports = () => {};',\n 'package.json': '{ \"main\": \"index.main.js\", \"module\": \"index.module.js\" }',\n },\n },\n },\n });\n });\n\n it('it includes the module entry as dependency', () => {\n const directory = `${UNIT_TEST_DIR}/es6`;\n const filename = `${directory}/module.entry.js`;\n\n const tree = dependencyTree({\n filename,\n directory,\n nodeModulesConfig: {\n entry: 'module',\n },\n });\n const subTree = tree[filename];\n\n assert.ok(`${directory}/node_modules/module.entry/index.module.js` in subTree);\n });\n });\n\n describe('Config', () => {\n describe('when cloning', () => {\n describe('and a detective config was set', () => {\n it('retains the detective config in the clone', () => {\n const detectiveConfig = {\n es6: {\n mixedImports: true,\n },\n };\n\n const config = new Config({\n detectiveConfig,\n filename: 'foo',\n directory: 'bar',\n });\n\n const clone = config.clone();\n\n assert.deepEqual(clone.detectiveConfig, detectiveConfig);\n });\n });\n });\n });\n\n describe('when a dependency has missing packages and is retrieved from the cache (visited)', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'foo.js': 'require(\"non-exist-foo-pkg\");',\n 'bar.js': 'require(\"./foo\"); require(\"non-exist-bar-pkg\")',\n 'baz.js': 'require(\"./foo\"); require(\"./bar\"); require(\"non-exist-baz-pkg\")',\n },\n });\n });\n\n it('should not override the cache with wrong packages', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const fooFile = path.normalize(`${directory}/foo.js`);\n const barFile = path.normalize(`${directory}/bar.js`);\n const bazFile = path.normalize(`${directory}/baz.js`);\n const nonExistent = {};\n const config = {\n directory,\n nonExistent,\n visited: {},\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = fooFile;\n dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = barFile;\n dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n expect(nonExistent[barFile]).to.deep.equal(['non-exist-bar-pkg']);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = bazFile;\n dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n expect(nonExistent[barFile]).to.deep.equal(['non-exist-bar-pkg']);\n expect(nonExistent[bazFile]).to.deep.equal(['non-exist-baz-pkg']);\n });\n });\n describe('passing css files and then javascript files', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'base.scss': 'li {} a {}', // don't change the content. it crash only with this for some reason\n 'index.jsx': \"require('some-module');\",\n },\n });\n });\n it('should not crash with \"RangeError: Maximum call stack size exceeded\" error', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const baseFile = path.normalize(`${directory}/base.scss`);\n const indexFile = path.normalize(`${directory}/index.jsx`);\n const config = {\n directory,\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = baseFile;\n dependencyTree(config);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = indexFile;\n const dependencies = dependencyTree(config);\n expect(dependencies).to.be.ok;\n });\n });\n describe('files with dynamic import', () => {\n it('should not show missing dependencies', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/dynamic`]: {\n 'foo.js': 'const a = \"./b\"; import(a); require(a);',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/dynamic`);\n const filename = path.normalize(`${directory}/foo.js`);\n const visited = {};\n\n dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n });\n describe('files with import from cdn (http, https)', () => {\n it('should not show missing dependencies when importing from https', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cdn`]: {\n 'foo.js': 'import { a } from \"https://unpkg.com\";',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/cdn`);\n const filename = path.normalize(`${directory}/foo.js`);\n const visited = {};\n dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n it('should not show missing dependencies when importing from http', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cdn`]: {\n 'bar.js': 'const b = require(\"http://pkg.com\");',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/cdn`);\n const filename = path.normalize(`${directory}/bar.js`);\n const visited = {};\n dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_defenderFs","data","require","_assert","_interopRequireDefault","_path","_rewire","_sinon","_fsExtra","_precinct","_Config","e","__esModule","default","UNIT_TEST_DIR","path","join","BIT_TEMP_ROOT","expect","dependencyTreeRewired","rewire","dependencyTree","fixtures","resolve","__dirname","mockfs","obj","Object","entries","forEach","key","value","fs","mkdirSync","recursive","file","content","filePath","writeFileSync","cleanUnitDir","removeSync","describe","timeout","testTreesForFormat","format","ext","it","root","filename","normalize","tree","assert","aSubTree","ok","filesInSubTree","keys","equal","length","mockStylus","mockSass","mockLess","mockcommonjs","mockes6","mockTS","afterEach","imaginary","directory","subTree","bTree","cTree","some","dep","indexOf","spy","sinon","callCount","_getDependencies","restore","node","nodes","process","cwd","precinct","detectiveConfig","amd","skipLazyLoaded","detective","calledWith","nonExistent","beforeEach","_directory","_revert","__set__","rejects","undefined","filter","doesNotReject","_spy","cache","pathMap","dependencies","visited","includes","skip","_root","_webpackConfig","_testResolution","name","results","toList","webpackConfig","moduleFile","has3rdPartyDep","es6","mixedImports","node_modules","nodeModulesConfig","entry","config","Config","clone","deepEqual","fooFile","barFile","bazFile","to","deep","baseFile","indexFile","be","missing"],"sources":["index.spec.ts"],"sourcesContent":["import { BIT_TEMP_ROOT } from '@teambit/defender.fs.global-bit-temp-dir';\nimport assert from 'assert';\nimport path from 'path';\nimport rewire from 'rewire';\nimport sinon from 'sinon';\nimport fs from 'fs-extra';\n\nimport precinct from '../precinct';\nimport Config from './Config';\n\nconst UNIT_TEST_DIR = path.join(BIT_TEMP_ROOT, 'unit-test');\nconst expect = require('chai').expect;\n\nconst dependencyTreeRewired = rewire('./');\nconst dependencyTree = dependencyTreeRewired.default;\nconst fixtures = path.resolve(`${__dirname}/../fixtures/dependency-tree`);\n\nfunction mockfs(obj: any) {\n Object.entries(obj).forEach(([key, value]) => {\n fs.mkdirSync(key, { recursive: true });\n // @ts-ignore\n Object.entries(value).forEach(([file, content]) => {\n const filePath = path.join(key, file);\n fs.writeFileSync(filePath, content as string);\n });\n });\n}\n\nfunction cleanUnitDir() {\n fs.removeSync(UNIT_TEST_DIR);\n}\n\ndescribe('dependencyTree', function () {\n this.timeout(8000);\n function testTreesForFormat(format, ext = '.js') {\n it('returns an object form of the dependency tree for a file', async () => {\n const root = `${UNIT_TEST_DIR}/${format}`;\n const filename = path.normalize(`${root}/a${ext}`);\n\n const tree = await dependencyTree({ filename, root });\n\n assert(tree instanceof Object);\n\n const aSubTree = tree[filename];\n\n assert.ok(aSubTree instanceof Object);\n const filesInSubTree = Object.keys(aSubTree);\n\n assert.equal(filesInSubTree.length, 2);\n });\n }\n\n function mockStylus() {\n mockfs({\n [`${UNIT_TEST_DIR}/stylus`]: {\n 'a.styl': `\n @import \"b\"\n @require \"c.styl\"\n `,\n 'b.styl': '@import \"c\"',\n 'c.styl': '',\n },\n });\n }\n\n function mockSass() {\n mockfs({\n [`${UNIT_TEST_DIR}/sass`]: {\n 'a.scss': `\n @import \"_b\";\n @import \"_c.scss\";\n `,\n '_b.scss': 'body { color: blue; }',\n '_c.scss': 'body { color: pink; }',\n },\n });\n }\n\n function mockLess() {\n mockfs({\n [`${UNIT_TEST_DIR}/less`]: {\n 'a.less': `\n @import \"b.css\";\n @import \"c.less\";\n `,\n 'b.css': 'body { color: blue; }',\n 'c.less': 'body { color: pink; }',\n },\n });\n }\n\n function mockcommonjs() {\n mockfs({\n [`${UNIT_TEST_DIR}/commonjs`]: {\n 'a.js': `\n var b = require('./b');\n var c = require('./c');\n `,\n 'b.js': `\n var path = require('path');\n module.exports = {};\n `,\n 'c.js': `\n var fs = require('fs');\n module.exports = {};\n `,\n },\n });\n }\n\n function mockes6() {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'a.js': `\n import b from './b';\n import c from './c';\n `,\n 'b.js': 'export default () => {};',\n 'c.js': 'export default () => {};',\n 'jsx.js': \"import c from './c';\\n export default <jsx />;\",\n 'foo.jsx': \"import React from 'react';\\n import b from './b';\\n export default <jsx />;\",\n 'es7.js': \"import c from './c';\\n export default async function foo() {};\",\n },\n });\n }\n\n function mockTS() {\n mockfs({\n [`${UNIT_TEST_DIR}/ts`]: {\n 'a.ts': `\n import b from './b';\n import c from './c';\n `,\n 'b.ts': 'export default () => {};',\n 'c.ts': 'export default () => {};',\n },\n });\n }\n\n afterEach(() => {\n // mockfs.restore();\n cleanUnitDir();\n });\n\n it('returns an empty object for a non-existent filename', async () => {\n mockfs({\n imaginary: {},\n });\n\n const root = `${UNIT_TEST_DIR}/imaginary`;\n const filename = `${root}/notafile.js`;\n const tree = await dependencyTree({ filename, root });\n\n assert(tree instanceof Object);\n assert(!Object.keys(tree).length);\n });\n\n it('handles nested tree structures', async () => {\n const directory = `${UNIT_TEST_DIR}/extended`;\n\n mockfs({\n [directory]: {\n 'a.js': `\n var b = require('./b');\n var c = require('./c');`,\n 'b.js': `\n var d = require('./d');\n var e = require('./e');`,\n 'c.js': `\n var f = require('./f');\n var g = require('./g');`,\n 'd.js': '',\n 'e.js': '',\n 'f.js': '',\n 'g.js': '',\n },\n });\n\n const filename = path.normalize(`${directory}/a.js`);\n const tree = await dependencyTree({ filename, directory });\n assert(tree[filename] instanceof Object);\n\n // b and c\n const subTree = tree[filename];\n assert.equal(subTree.length, 2);\n\n const bTree = tree[path.normalize(`${directory}/b.js`)];\n const cTree = tree[path.normalize(`${directory}/c.js`)];\n // d and e\n assert.equal(bTree.length, 2);\n // f ang g\n assert.equal(cTree.length, 2);\n });\n\n it('does not include files that are not real (#13)', async () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var notReal = require(\"./notReal\");',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = path.normalize(`${directory}/a.js`);\n\n const tree = await dependencyTree({ filename, directory });\n const subTree = tree[filename];\n\n assert.ok(!Object.keys(subTree).some((dep) => dep.indexOf('notReal') !== -1));\n });\n\n it('does not choke on cyclic dependencies', async () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cyclic`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'var a = require(\"./a\");',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/cyclic`;\n const filename = path.normalize(`${directory}/a.js`);\n\n const spy = sinon.spy(dependencyTreeRewired, '_getDependencies');\n\n const tree = await dependencyTreeRewired.default({ filename, directory });\n\n assert(spy.callCount === 2);\n assert(Object.keys(tree[filename]).length);\n\n await dependencyTreeRewired._getDependencies.restore();\n });\n\n it('excludes Nodejs core modules by default', async () => {\n const directory = `${fixtures}/commonjs`;\n const filename = path.normalize(`${directory}/b.js`);\n\n const tree = await dependencyTree({ filename, directory });\n assert(Object.keys(tree[filename]).length === 0);\n assert(Object.keys(tree)[0].indexOf('b.js') !== -1);\n });\n\n it('returns a list of absolutely pathed files', async () => {\n const directory = `${UNIT_TEST_DIR}/commonjs`;\n const filename = `${directory}/b.js`;\n\n const tree = await dependencyTree({ filename, directory });\n // eslint-disable-next-line\n for (const node in tree.nodes) {\n assert(node.indexOf(process.cwd()) !== -1);\n }\n });\n\n describe('when given a detective configuration', () => {\n it('passes it through to precinct', async () => {\n const spy = sinon.spy(precinct, 'paperwork');\n const directory = path.normalize(`${fixtures}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const detectiveConfig = {\n amd: {\n skipLazyLoaded: true,\n },\n };\n\n await dependencyTree({\n filename,\n directory,\n detective: detectiveConfig,\n });\n\n assert.ok(spy.calledWith(filename, detectiveConfig));\n spy.restore();\n });\n });\n\n describe('when given a list to store non existent partials', () => {\n describe('and the file contains no valid partials', () => {\n it('stores the invalid partials', async () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var notReal = require(\"./notReal\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n await dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 1);\n assert.equal(nonExistent[filename][0], './notReal');\n });\n });\n\n describe('and the file contains all valid partials', () => {\n it('does not store anything', async () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'export default 1;',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n const nonExistent = [];\n\n await dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(nonExistent.length, 0);\n });\n });\n\n describe('and the file contains a mix of invalid and valid partials', () => {\n it('stores the invalid ones', async () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'var c = require(\"./c\"); export default 1;',\n 'c.js': 'var crap = require(\"./notRealMan\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n await dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 1);\n assert.equal(nonExistent[path.normalize(`${directory}/c.js`)][0], './notRealMan');\n });\n });\n\n describe('and there is more than one reference to the invalid partial', () => {\n it('should include the non-existent partial per file', async () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");\\nvar crap = require(\"./notRealMan\");',\n 'b.js': 'var c = require(\"./c\"); export default 1;',\n 'c.js': 'var crap = require(\"./notRealMan\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n await dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 2);\n assert.equal(nonExistent[filename][0], './notRealMan');\n assert.equal(nonExistent[path.normalize(`${directory}/c.js`)][0], './notRealMan');\n });\n });\n });\n\n describe('throws', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = `${UNIT_TEST_DIR}/commonjs`;\n // @ts-ignore\n this._revert = dependencyTreeRewired.__set__('traverse', () => []);\n });\n\n afterEach(() => {\n // @ts-ignore\n this._revert();\n });\n\n it('throws if the filename is missing', () => {\n assert.rejects(async () => {\n await dependencyTree({\n filename: undefined,\n // @ts-ignore\n directory: this._directory,\n });\n });\n });\n\n it('throws if the root is missing', () => {\n assert.rejects(async () => {\n await dependencyTree({ filename: undefined });\n });\n });\n\n it('throws if a supplied filter is not a function', () => {\n assert.rejects(async () => {\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n\n await dependencyTree({\n filename,\n directory,\n filter: 'foobar',\n });\n });\n });\n\n it('does not throw on the legacy `root` option', () => {\n assert.doesNotReject(async () => {\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n\n await dependencyTree({\n filename,\n root: directory,\n });\n });\n });\n });\n\n describe('on file error', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = `${UNIT_TEST_DIR}/commonjs`;\n });\n\n it('does not throw', () => {\n assert.doesNotReject(async () => {\n await dependencyTree({\n filename: 'foo',\n // @ts-ignore\n directory: this._directory,\n });\n });\n });\n\n it('returns no dependencies', async () => {\n // @ts-ignore\n const tree = await dependencyTree({ filename: 'foo', directory: this._directory });\n assert(!tree.length);\n });\n });\n\n describe('memoization (#2)', () => {\n beforeEach(() => {\n // @ts-ignore\n this._spy = sinon.spy(dependencyTreeRewired, '_getDependencies');\n });\n\n afterEach(async () => {\n await dependencyTreeRewired._getDependencies.restore();\n });\n\n it('returns the precomputed list of a cached entry point', async () => {\n const filename = `${UNIT_TEST_DIR}/amd/a.js`;\n const directory = `${UNIT_TEST_DIR}/amd`;\n\n const cache = {\n // Shouldn't process the first file's tree\n [filename]: { pathMap: { dependencies: [] } },\n };\n\n const tree = await dependencyTree({\n filename,\n directory,\n visited: cache,\n });\n\n assert(!tree.length);\n });\n });\n\n describe('module formats', () => {\n describe('commonjs', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n mockcommonjs();\n });\n\n testTreesForFormat('commonjs');\n });\n\n describe('es6', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n mockes6();\n });\n\n testTreesForFormat('es6');\n\n it('resolves files that have jsx', async () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/jsx.js`);\n const tree = await dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/c.js`)));\n });\n\n it('resolves files with a jsx extension', async () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/foo.jsx`);\n const tree = await dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/b.js`)));\n });\n\n it('resolves files that have es7', async () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/es7.js`);\n const tree = await dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/c.js`)));\n });\n });\n\n describe('sass', () => {\n beforeEach(() => {\n mockSass();\n });\n\n testTreesForFormat('sass', '.scss');\n });\n\n describe('stylus', () => {\n beforeEach(() => {\n mockStylus();\n });\n\n testTreesForFormat('stylus', '.styl');\n });\n\n describe('less', () => {\n beforeEach(() => {\n mockLess();\n });\n\n testTreesForFormat('less', '.less');\n });\n\n describe('typescript', () => {\n beforeEach(() => {\n mockTS();\n });\n\n testTreesForFormat('ts', '.ts');\n });\n });\n\n // skipping the webpack unit tests for now as it's not easy to wire up all the files together.\n // originally, in dependency-tree, the webpack.config.js is in the same directory of the index.js.\n // doing the same here will be confusing. instead, we have already e2e-tests in bit legacy of custom\n // module resolution, which takes advantage of the webpack config.\n describe.skip('webpack', () => {\n beforeEach(() => {\n // Note: not mocking because webpack's resolver needs a real project with dependencies;\n // otherwise, we'd have to mock a ton of files.\n // @ts-ignore\n this._root = path.join(UNIT_TEST_DIR, '../');\n // @ts-ignore\n this._webpackConfig = `${this._root}/webpack.config.js`;\n // @ts-ignore\n this._testResolution = (name) => {\n const results = dependencyTree.toList({\n filename: `${UNIT_TEST_DIR}/webpack/${name}.js`,\n // @ts-ignore\n directory: this._root,\n // @ts-ignore\n webpackConfig: this._webpackConfig,\n filter: (filename) => filename.indexOf('filing-cabinet') !== -1,\n });\n assert.ok(results.some((filename) => filename.indexOf('node_modules/filing-cabinet') !== -1));\n };\n });\n\n it('resolves unaliased modules', () => {\n this.timeout(5000);\n // @ts-ignore\n this._testResolution('unaliased');\n });\n });\n\n describe('when a filter function is supplied', () => {\n it('uses the filter to determine if a file should be included in the results', async () => {\n const directory = path.normalize(`${fixtures}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n\n const tree = await dependencyTree({\n filename,\n directory,\n // Skip all 3rd party deps\n filter: (filePath, moduleFile) => {\n assert.ok(require.resolve('debug'));\n assert.ok(moduleFile.includes(path.normalize('onlyRealDeps/a.js')));\n return filePath.indexOf('node_modules') === -1;\n },\n });\n\n const subTree = tree[filename];\n assert.ok(Object.keys(tree).length);\n\n const has3rdPartyDep = Object.keys(subTree).some((dep) => dep === require.resolve('debug'));\n assert.ok(!has3rdPartyDep);\n });\n });\n\n describe('when given a CJS file with lazy requires', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/cjs`]: {\n 'foo.js': 'module.exports = function(bar = require(\"./bar\")) {};',\n 'bar.js': 'module.exports = 1;',\n },\n });\n });\n\n it('includes the lazy dependency', async () => {\n const directory = `${UNIT_TEST_DIR}/cjs`;\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = await dependencyTree({ filename, directory });\n assert.ok(tree[filename].includes(path.normalize(`${directory}/bar.js`)));\n });\n });\n\n describe('when given an es6 file using CJS lazy requires', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'foo.js': 'export default function(bar = require(\"./bar\")) {};',\n 'bar.js': 'export default 1;',\n },\n });\n });\n\n describe('and mixedImport mode is turned on', () => {\n it('includes the lazy dependency', async () => {\n const directory = `${UNIT_TEST_DIR}/es6`;\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = await dependencyTree({\n filename,\n directory,\n detective: {\n es6: {\n mixedImports: true,\n },\n },\n });\n\n assert.ok(tree[filename].includes(path.normalize(`${directory}/bar.js`)));\n });\n });\n });\n\n describe('when given an es6 file using dynamic imports', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'foo.js': 'import(\"./bar\");',\n 'bar.js': 'export default 1;',\n },\n });\n });\n\n it('includes the dynamic import', async () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = await dependencyTree({\n filename,\n directory,\n });\n\n const subTree = tree[filename];\n\n assert.ok(!(`${directory}/bar.js` in subTree));\n });\n });\n\n describe('when a dependency of the main file is not supported', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'foo.js': 'require(\"./bar.json\");',\n 'bar.json': '{ \"main\": \"I\\'m a simple JSON object\" }',\n },\n });\n });\n\n it('should include it as a dependency and not throw an error', async () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = await dependencyTree({\n filename,\n directory,\n });\n\n assert.ok(path.normalize(path.join(directory, 'bar.json')) in tree);\n });\n });\n\n // nodeModulesConfig is a feature added to dependency-tree and filing-cabinet to support\n // \"module\" attribute of package.json, see here what this attribute is good for:\n // https://github.com/rollup/rollup/wiki/pkg.module\n // the commit of supporting it in filing-cabinet is here: https://github.com/dependents/node-filing-cabinet/commit/abef861a5a725b29c2342d01de94c6e2dd881aa0\n describe.skip('when given a CJS file with module property in package.json', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'module.entry.js': 'import * as module from \"module.entry\"',\n node_modules: {\n 'module.entry': {\n 'index.main.js': 'module.exports = () => {};',\n 'index.module.js': 'module.exports = () => {};',\n 'package.json': '{ \"main\": \"index.main.js\", \"module\": \"index.module.js\" }',\n },\n },\n },\n });\n });\n\n it('it includes the module entry as dependency', async () => {\n const directory = `${UNIT_TEST_DIR}/es6`;\n const filename = `${directory}/module.entry.js`;\n\n const tree = await dependencyTree({\n filename,\n directory,\n nodeModulesConfig: {\n entry: 'module',\n },\n });\n const subTree = tree[filename];\n\n assert.ok(`${directory}/node_modules/module.entry/index.module.js` in subTree);\n });\n });\n\n describe('Config', () => {\n describe('when cloning', () => {\n describe('and a detective config was set', () => {\n it('retains the detective config in the clone', () => {\n const detectiveConfig = {\n es6: {\n mixedImports: true,\n },\n };\n\n const config = new Config({\n detectiveConfig,\n filename: 'foo',\n directory: 'bar',\n });\n\n const clone = config.clone();\n\n assert.deepEqual(clone.detectiveConfig, detectiveConfig);\n });\n });\n });\n });\n\n describe('when a dependency has missing packages and is retrieved from the cache (visited)', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'foo.js': 'require(\"non-exist-foo-pkg\");',\n 'bar.js': 'require(\"./foo\"); require(\"non-exist-bar-pkg\")',\n 'baz.js': 'require(\"./foo\"); require(\"./bar\"); require(\"non-exist-baz-pkg\")',\n },\n });\n });\n\n it('should not override the cache with wrong packages', async () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const fooFile = path.normalize(`${directory}/foo.js`);\n const barFile = path.normalize(`${directory}/bar.js`);\n const bazFile = path.normalize(`${directory}/baz.js`);\n const nonExistent = {};\n const config = {\n directory,\n nonExistent,\n visited: {},\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = fooFile;\n await dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = barFile;\n await dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n expect(nonExistent[barFile]).to.deep.equal(['non-exist-bar-pkg']);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = bazFile;\n await dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n expect(nonExistent[barFile]).to.deep.equal(['non-exist-bar-pkg']);\n expect(nonExistent[bazFile]).to.deep.equal(['non-exist-baz-pkg']);\n });\n });\n describe('passing css files and then javascript files', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'base.scss': 'li {} a {}', // don't change the content. it crash only with this for some reason\n 'index.jsx': \"require('some-module');\",\n },\n });\n });\n it('should not crash with \"RangeError: Maximum call stack size exceeded\" error', async () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const baseFile = path.normalize(`${directory}/base.scss`);\n const indexFile = path.normalize(`${directory}/index.jsx`);\n const config = {\n directory,\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = baseFile;\n await dependencyTree(config);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = indexFile;\n const dependencies = await dependencyTree(config);\n expect(dependencies).to.be.ok;\n });\n });\n describe('files with dynamic import', () => {\n it('should not show missing dependencies', async () => {\n mockfs({\n [`${UNIT_TEST_DIR}/dynamic`]: {\n 'foo.js': 'const a = \"./b\"; import(a); require(a);',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/dynamic`);\n const filename = path.normalize(`${directory}/foo.js`);\n const visited = {};\n\n await dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n });\n describe('files with import from cdn (http, https)', () => {\n it('should not show missing dependencies when importing from https', async () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cdn`]: {\n 'foo.js': 'import { a } from \"https://unpkg.com\";',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/cdn`);\n const filename = path.normalize(`${directory}/foo.js`);\n const visited = {};\n await dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n it('should not show missing dependencies when importing from http', async () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cdn`]: {\n 'bar.js': 'const b = require(\"http://pkg.com\");',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/cdn`);\n const filename = path.normalize(`${directory}/bar.js`);\n const visited = {};\n await dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -108,7 +108,7 @@ describe('filing-cabinet', () => {
|
|
|
108
108
|
directory: `${UNIT_TEST_DIR}/js/es6/`,
|
|
109
109
|
ast
|
|
110
110
|
});
|
|
111
|
-
_assert().default.ok(result.endsWith('es6/bar.js'));
|
|
111
|
+
_assert().default.ok(result.endsWith(_path().default.normalize('es6/bar.js')));
|
|
112
112
|
});
|
|
113
113
|
it('resolves the dependency successfully', () => {
|
|
114
114
|
const result = cabinet({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_defenderFs","data","require","_fsExtra","_interopRequireDefault","_assert","_path","_rewire","_sinon","e","__esModule","default","UNIT_TEST_DIR","path","join","BIT_TEMP_ROOT","cabinetNonDefault","rewire","cabinet","fixtures","resolve","__dirname","mockedFiles","mockAST","mockfs","obj","acc","Object","entries","forEach","key","value","filePath","fullFilePath","content","fs","outputFileSync","undefined","cleanUnitDir","removeSync","describe","beforeEach","afterEach","it","resolvedFile","dependency","filename","directory","assert","ok","endsWith","ast","result","equal","options","skip","stub","sinon","revert","__set__","called","main","paths","some","p","indexOf","normalize","nodeModulesConfig","entry","stylus","sass","less","detector","detect","fileContent","isSupported","ext","dependencyLookup","type","envDetectors","returns","register","pathResult","stub2","newExt","supportedFileExtensions","lastIndexOf","testResolution","expected","resolved","webpackConfig"],"sources":["index.spec.ts"],"sourcesContent":["import { BIT_TEMP_ROOT } from '@teambit/defender.fs.global-bit-temp-dir';\nimport fs from 'fs-extra';\nimport assert from 'assert';\nimport path from 'path';\nimport rewire from 'rewire';\nimport sinon from 'sinon';\n\nimport type { DependencyDetector } from '@teambit/dependency-resolver';\n\nconst UNIT_TEST_DIR = path.join(BIT_TEMP_ROOT, 'unit-test');\n\nconst cabinetNonDefault = rewire('./');\nconst cabinet = cabinetNonDefault.default;\n\nconst fixtures = path.resolve(`${__dirname}/../fixtures/filing-cabinet`);\n\n// eslint-disable-next-line import/no-dynamic-require, global-require\nconst mockedFiles = require(`${fixtures}/mockedJSFiles`);\n// eslint-disable-next-line import/no-dynamic-require, global-require\nconst mockAST = require(`${fixtures}/ast`);\n\nfunction mockfs(obj: any, acc?: string) {\n Object.entries(obj).forEach(([key, value]) => {\n if (typeof value === 'string') {\n const filePath = acc ? path.join(acc, key) : key;\n const fullFilePath = path.join(UNIT_TEST_DIR, filePath);\n const content = value;\n return fs.outputFileSync(fullFilePath, content);\n }\n mockfs(value, acc ? path.join(acc, key) : key);\n return undefined;\n });\n}\n\nfunction cleanUnitDir() {\n fs.removeSync(UNIT_TEST_DIR);\n}\n\n// try {\n// // eslint-disable-next-line global-require\n// require('module-lookup-amd');\n// } catch (err: any) {\n// // eslint-disable-next-line no-console\n// console.log(`mocha suppresses the error, so console.error is needed to show the error on the screen.\n// the problem is with module-lookup-amd that calls requirejs package and uses rewire package.\n// see https://github.com/jhnns/rewire/issues/178 for more details.\n// the error occurs since node v12.16.0. for the time being, to run the tests, use an earlier version.\n// `);\n// // eslint-disable-next-line no-console\n// console.error(err);\n// throw err;\n// }\n\ndescribe('filing-cabinet', () => {\n describe('JavaScript', () => {\n beforeEach(() => {\n mockfs(mockedFiles);\n });\n\n afterEach(() => {\n cleanUnitDir();\n });\n\n it('uses a generic resolve for unsupported file extensions', () => {\n const resolvedFile = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.baz`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n assert.ok(resolvedFile.endsWith('bar.baz'));\n });\n\n describe('when given an ast for a JS file', () => {\n it('reuses the ast when trying to determine the module type', () => {\n const ast = {};\n\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n ast,\n });\n assert.ok(result.endsWith('es6/bar.js'));\n });\n\n it('resolves the dependency successfully', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n ast: mockAST,\n });\n assert.equal(result, path.join(UNIT_TEST_DIR, 'js/es6/bar.js'));\n });\n });\n\n describe('when not given an ast', () => {\n it('uses the filename to look for the module type', () => {\n const options = {\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n };\n\n const result = cabinet(options);\n assert.equal(result, path.join(UNIT_TEST_DIR, 'js/es6/bar.js'));\n });\n });\n\n describe('es6', () => {\n // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference\n it.skip('assumes commonjs for es6 modules with no requirejs/webpack config', () => {\n const stub = sinon.stub();\n const revert = cabinetNonDefault.__set__('commonJSLookup', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n });\n\n assert.ok(stub.called);\n\n revert();\n });\n });\n\n describe('jsx', () => {\n it('resolves files with the .jsx extension', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.jsx`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/es6/bar.js')}`);\n });\n });\n\n // describe('amd', () => {\n // it('uses the amd resolver', () => {\n // const resolvedFile = cabinet({\n // dependency: './bar',\n // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,\n // directory: `${UNIT_TEST_DIR}/js/amd/`,\n // });\n // assert.ok(resolvedFile.endsWith('amd/bar.js'));\n // });\n\n // // skipped as part of lazy loading fix. not seems to be super helpful test\n // it.skip('passes along arguments', () => {\n // const stub = sinon.stub();\n // const revert = cabinet.__set__('amdLookup', stub);\n // const config = { baseUrl: 'js' };\n\n // cabinet({\n // dependency: 'bar',\n // config,\n // configPath: 'config.js',\n // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,\n // directory: `${UNIT_TEST_DIR}/js/amd/`,\n // });\n\n // const args = stub.getCall(0).args[0];\n\n // assert.equal(args.dependency, 'bar');\n // assert.equal(args.config, config);\n // assert.equal(args.configPath, 'config.js');\n // assert.equal(args.filename, 'js/amd/foo.js');\n // assert.equal(args.directory, 'js/amd/');\n\n // assert.ok(stub.called);\n\n // revert();\n // });\n // });\n\n describe('commonjs', () => {\n // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference\n it.skip(\"uses require's resolver\", () => {\n const stub = sinon.stub();\n const revert = cabinetNonDefault.__set__('commonJSLookup', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n\n assert.ok(stub.called);\n\n revert();\n });\n\n it('returns an empty string for an unresolved module', () => {\n const result = cabinet({\n dependency: 'foobar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n\n assert.equal(result, '');\n });\n\n it('adds the directory to the require resolution paths', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n cabinet({\n dependency: 'foobar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory,\n });\n\n assert.ok(\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n require.main.paths.some(function (p) {\n return p.indexOf(path.normalize(directory)) !== -1;\n })\n );\n });\n\n it('resolves a relative dependency about the filename', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}foo.js`;\n\n const result = cabinet({\n dependency: './bar',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'bar.js'));\n });\n\n it(\"resolves a .. dependency to its parent directory's index.js file\", () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}subdir/module.js`;\n\n const result = cabinet({\n dependency: '../',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'index.js'));\n });\n\n // @todo: fix\n it.skip('resolves a dependency within a directory outside of the given file', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}test/index.spec.js`;\n\n const result = cabinet({\n dependency: 'subdir',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'subdir/index.js'));\n });\n\n // @todo: fix\n it.skip('resolves a node module with module entry in package.json', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}module.entry.js`;\n\n const result = cabinet({\n dependency: 'module.entry',\n filename,\n directory,\n nodeModulesConfig: {\n entry: 'module',\n },\n });\n\n assert.equal(\n result,\n path.join(path.resolve(directory), '..', 'node_modules', 'module.entry', 'index.module.js')\n );\n });\n\n it('resolves a nested module', () => {\n const directory = `${UNIT_TEST_DIR}/js/node_modules/nested/`;\n const filename = `${directory}index.js`;\n\n const result = cabinet({\n dependency: 'lodash.assign',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'node_modules', 'lodash.assign', 'index.js'));\n });\n\n it('resolves to the index.js file of a directory', () => {\n const directory = `${UNIT_TEST_DIR}/js/withIndex`;\n const filename = `${directory}/index.js`;\n\n const result = cabinet({\n dependency: './subdir',\n filename,\n directory,\n });\n\n assert.equal(result, path.normalize(`${path.resolve(directory)}/subdir/index.js`));\n });\n\n it('resolves implicit .jsx requires', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/bar.jsx')}`);\n });\n\n it('resolves implicit .scss requires', () => {\n const result = cabinet({\n dependency: './baz',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/baz.scss')}`);\n });\n\n it('resolves implicit .json requires', () => {\n const result = cabinet({\n dependency: './pkg',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/pkg.json')}`);\n });\n });\n\n describe('typescript', () => {\n it('resolves an import', () => {\n const directory = `${UNIT_TEST_DIR}/js/ts`;\n const filename = `${directory}/index.ts`;\n\n const result = cabinet({\n dependency: './foo',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'foo.ts'));\n });\n\n describe('when a dependency does not exist', () => {\n it('returns an empty result', () => {\n const directory = `${UNIT_TEST_DIR}/js/ts`;\n const filename = `${directory}/index.ts`;\n\n const result = cabinet({\n dependency: './barbar',\n filename,\n directory,\n });\n\n assert.equal(result, '');\n });\n });\n });\n });\n\n describe('CSS', () => {\n beforeEach(() => {\n mockfs({\n stylus: {\n 'foo.styl': '',\n 'bar.styl': '',\n },\n sass: {\n 'foo.scss': '',\n 'bar.scss': '',\n 'foo.sass': '',\n 'bar.sass': '',\n },\n less: {\n 'foo.less': '',\n 'bar.less': '',\n 'bar.css': '',\n },\n });\n\n // mockJSDir = path.resolve(__dirname, '../');\n });\n\n afterEach(() => {\n cleanUnitDir();\n });\n\n describe('sass', () => {\n it('uses the sass resolver for .scss files', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/sass/foo.scss`,\n directory: `${UNIT_TEST_DIR}/sass/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/sass/bar.scss`));\n });\n\n it('uses the sass resolver for .sass files', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/sass/foo.sass`,\n directory: `${UNIT_TEST_DIR}/sass/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/sass/bar.sass`));\n });\n });\n\n describe('stylus', () => {\n it('uses the stylus resolver', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,\n directory: `${UNIT_TEST_DIR}/stylus/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/stylus/bar.styl`));\n });\n });\n\n describe('less', () => {\n it('resolves extensionless dependencies', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.less`));\n });\n\n it('resolves dependencies with a less extension', () => {\n const result = cabinet({\n dependency: 'bar.less',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.less`));\n });\n\n it('resolves dependencies with a css extension', () => {\n const result = cabinet({\n dependency: 'bar.css',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.css`));\n });\n });\n });\n\n describe('unrecognized extension', () => {\n it('uses a generic resolve for unsupported file extensions', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/barbazim/foo.baz`,\n directory: `${UNIT_TEST_DIR}/barbazim/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/barbazim/bar.baz`));\n });\n });\n\n describe('custom env lookups', () => {\n it('supports passing env detectors', () => {\n const detector: DependencyDetector = {\n detect: (fileContent: string) => {\n return fileContent.indexOf('foo') === -1 ? [] : ['foo'];\n },\n isSupported: ({ ext }) => {\n return ext === '.foo';\n },\n dependencyLookup: ({ dependency }) => {\n return `/xyz/${dependency}.baz`;\n },\n type: 'foo',\n };\n const result = cabinet({\n directory: `${UNIT_TEST_DIR}/barbazim/`,\n filename: `${UNIT_TEST_DIR}/barbazim/xxx.foo`,\n ext: '.foo',\n dependency: 'bar',\n envDetectors: [detector],\n });\n\n assert.equal(result, '/xyz/bar.baz');\n });\n });\n\n describe('.register', () => {\n it('registers a custom resolver for a given extension', () => {\n const stub = sinon.stub().returns('foo.foobar');\n cabinetNonDefault.register('.foobar', stub);\n\n const pathResult = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n assert.ok(stub.called);\n assert.equal(pathResult, 'foo.foobar');\n });\n\n it('allows does not break default resolvers', () => {\n mockfs({\n stylus: {\n 'foo.styl': '',\n 'bar.styl': '',\n },\n });\n\n const stub = sinon.stub().returns('foo');\n\n cabinetNonDefault.register('.foobar', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,\n directory: `${UNIT_TEST_DIR}/stylus/`,\n });\n\n assert.ok(stub.called);\n assert.ok(result);\n\n cleanUnitDir();\n });\n\n it('can be called multiple times', () => {\n const stub = sinon.stub().returns('foo');\n const stub2 = sinon.stub().returns('foo');\n\n cabinetNonDefault.register('.foobar', stub);\n cabinetNonDefault.register('.barbar', stub2);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.barbar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n assert.ok(stub.called);\n assert.ok(stub2.called);\n });\n\n it('does not add redundant extensions to supportedFileExtensions', () => {\n const stub = sinon.stub;\n const newExt = '.foobar';\n\n cabinetNonDefault.register(newExt, stub);\n cabinetNonDefault.register(newExt, stub);\n\n const { supportedFileExtensions } = cabinetNonDefault;\n\n assert.equal(supportedFileExtensions.indexOf(newExt), supportedFileExtensions.lastIndexOf(newExt));\n });\n });\n\n // @todo: fix.\n describe.skip('webpack', () => {\n let directory;\n\n beforeEach(() => {\n directory = path.resolve(__dirname, '../../../');\n });\n\n function testResolution(dependency, expected) {\n const resolved = cabinet({\n dependency,\n filename: `${__dirname}/index.js`,\n directory,\n webpackConfig: `${fixtures}/webpack.config.js`,\n });\n\n assert.equal(resolved, path.normalize(expected));\n }\n\n it('resolves an aliased path', () => {\n testResolution('R', `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a non-aliased path', () => {\n testResolution('resolve', `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a relative path', () => {\n testResolution('./test/ast', `${fixtures}/test/ast.js`);\n });\n\n it('resolves an absolute path from a file within a subdirectory', () => {\n const resolved = cabinet({\n dependency: 'R',\n filename: `${fixtures}/test/ast.js`,\n directory,\n webpackConfig: `${fixtures}/webpack.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a path using resolve.root', () => {\n const resolved = cabinet({\n dependency: 'mod1',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/test/root1/mod1.js`);\n });\n\n it('resolves NPM module when using resolve.root', () => {\n const resolved = cabinet({\n dependency: 'resolve',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves NPM module when using resolve.modulesDirectories', () => {\n const resolved = cabinet({\n dependency: 'resolve',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a path using resolve.modulesDirectories', () => {\n const resolved = cabinet({\n dependency: 'mod2',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/test/root2/mod2.js`);\n });\n\n it('resolves a path using webpack config that exports a function', () => {\n const resolved = cabinet({\n dependency: 'R',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-env.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves files with a .jsx extension', () => {\n testResolution('./test/foo.jsx', `${directory}/test/foo.jsx`);\n });\n\n describe('when the dependency contains a loader', () => {\n it('still works', () => {\n testResolution('hgn!resolve', `${directory}/node_modules/resolve/index.js`);\n });\n });\n });\n});\n"],"mappings":";;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,MAAA;EAAA,MAAAL,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAI,KAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,QAAA;EAAA,MAAAN,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAK,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,OAAA;EAAA,MAAAP,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAM,MAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAG,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAI1B,MAAMG,aAAa,GAAGC,eAAI,CAACC,IAAI,CAACC,2BAAa,EAAE,WAAW,CAAC;AAE3D,MAAMC,iBAAiB,GAAG,IAAAC,iBAAM,EAAC,IAAI,CAAC;AACtC,MAAMC,OAAO,GAAGF,iBAAiB,CAACL,OAAO;AAEzC,MAAMQ,QAAQ,GAAGN,eAAI,CAACO,OAAO,CAAC,GAAGC,SAAS,6BAA6B,CAAC;;AAExE;AACA,MAAMC,WAAW,GAAGpB,OAAO,CAAC,GAAGiB,QAAQ,gBAAgB,CAAC;AACxD;AACA,MAAMI,OAAO,GAAGrB,OAAO,CAAC,GAAGiB,QAAQ,MAAM,CAAC;AAE1C,SAASK,MAAMA,CAACC,GAAQ,EAAEC,GAAY,EAAE;EACtCC,MAAM,CAACC,OAAO,CAACH,GAAG,CAAC,CAACI,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;IAC5C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,MAAMC,QAAQ,GAAGN,GAAG,GAAGb,eAAI,CAACC,IAAI,CAACY,GAAG,EAAEI,GAAG,CAAC,GAAGA,GAAG;MAChD,MAAMG,YAAY,GAAGpB,eAAI,CAACC,IAAI,CAACF,aAAa,EAAEoB,QAAQ,CAAC;MACvD,MAAME,OAAO,GAAGH,KAAK;MACrB,OAAOI,kBAAE,CAACC,cAAc,CAACH,YAAY,EAAEC,OAAO,CAAC;IACjD;IACAV,MAAM,CAACO,KAAK,EAAEL,GAAG,GAAGb,eAAI,CAACC,IAAI,CAACY,GAAG,EAAEI,GAAG,CAAC,GAAGA,GAAG,CAAC;IAC9C,OAAOO,SAAS;EAClB,CAAC,CAAC;AACJ;AAEA,SAASC,YAAYA,CAAA,EAAG;EACtBH,kBAAE,CAACI,UAAU,CAAC3B,aAAa,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA4B,QAAQ,CAAC,gBAAgB,EAAE,MAAM;EAC/BA,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC3BC,UAAU,CAAC,MAAM;MACfjB,MAAM,CAACF,WAAW,CAAC;IACrB,CAAC,CAAC;IAEFoB,SAAS,CAAC,MAAM;MACdJ,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC;IAEFK,EAAE,CAAC,wDAAwD,EAAE,MAAM;MACjE,MAAMC,YAAY,GAAG1B,OAAO,CAAC;QAC3B2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,sBAAsB;QAChDmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MACFoC,iBAAM,CAACC,EAAE,CAACL,YAAY,CAACM,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEFV,QAAQ,CAAC,iCAAiC,EAAE,MAAM;MAChDG,EAAE,CAAC,yDAAyD,EAAE,MAAM;QAClE,MAAMQ,GAAG,GAAG,CAAC,CAAC;QAEd,MAAMC,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa,UAAU;UACrCuC;QACF,CAAC,CAAC;QACFH,iBAAM,CAACC,EAAE,CAACG,MAAM,CAACF,QAAQ,CAAC,YAAY,CAAC,CAAC;MAC1C,CAAC,CAAC;MAEFP,EAAE,CAAC,sCAAsC,EAAE,MAAM;QAC/C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa,UAAU;UACrCuC,GAAG,EAAE5B;QACP,CAAC,CAAC;QACFyB,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,eAAe,CAAC,CAAC;MACjE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,uBAAuB,EAAE,MAAM;MACtCG,EAAE,CAAC,+CAA+C,EAAE,MAAM;QACxD,MAAMW,OAAO,GAAG;UACdT,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC;QAED,MAAMwC,MAAM,GAAGlC,OAAO,CAACoC,OAAO,CAAC;QAC/BN,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,eAAe,CAAC,CAAC;MACjE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,KAAK,EAAE,MAAM;MACpB;MACAG,EAAE,CAACY,IAAI,CAAC,mEAAmE,EAAE,MAAM;QACjF,MAAMC,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC;QACzB,MAAME,MAAM,GAAG1C,iBAAiB,CAAC2C,OAAO,CAAC,gBAAgB,EAAEH,IAAI,CAAC;QAEhEtC,OAAO,CAAC;UACN2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;QAEtBF,MAAM,CAAC,CAAC;MACV,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFlB,QAAQ,CAAC,KAAK,EAAE,MAAM;MACpBG,EAAE,CAAC,wCAAwC,EAAE,MAAM;QACjD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,iBAAiB;UAC3CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,GAAGvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;MACtE,CAAC,CAAC;IACJ,CAAC,CAAC;;IAEF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA;;IAEA;IACA;IACA;IACA;IACA;;IAEA;;IAEA;IACA;IACA;;IAEA4B,QAAQ,CAAC,UAAU,EAAE,MAAM;MACzB;MACAG,EAAE,CAACY,IAAI,CAAC,yBAAyB,EAAE,MAAM;QACvC,MAAMC,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC;QACzB,MAAME,MAAM,GAAG1C,iBAAiB,CAAC2C,OAAO,CAAC,gBAAgB,EAAEH,IAAI,CAAC;QAEhEtC,OAAO,CAAC;UACN2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,qBAAqB;UAC/CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;QAEtBF,MAAM,CAAC,CAAC;MACV,CAAC,CAAC;MAEFf,EAAE,CAAC,kDAAkD,EAAE,MAAM;QAC3D,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,QAAQ;UACpBC,QAAQ,EAAE,GAAGlC,aAAa,qBAAqB;UAC/CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,EAAE,CAAC;MAC1B,CAAC,CAAC;MAEFT,EAAE,CAAC,oDAAoD,EAAE,MAAM;QAC7D,MAAMI,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjDM,OAAO,CAAC;UACN2B,UAAU,EAAE,QAAQ;UACpBC,QAAQ,EAAE,GAAGlC,aAAa,qBAAqB;UAC/CmC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACC,EAAE;QACP;QACA/C,OAAO,CAAC2D,IAAI,CAACC,KAAK,CAACC,IAAI,CAAC,UAAUC,CAAC,EAAE;UACnC,OAAOA,CAAC,CAACC,OAAO,CAACpD,eAAI,CAACqD,SAAS,CAACnB,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CACH,CAAC;MACH,CAAC,CAAC;MAEFJ,EAAE,CAAC,mDAAmD,EAAE,MAAM;QAC5D,MAAMI,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,QAAQ;QAErC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;MACpE,CAAC,CAAC;MAEFJ,EAAE,CAAC,kEAAkE,EAAE,MAAM;QAC3E,MAAMI,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,kBAAkB;QAE/C,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;MACtE,CAAC,CAAC;;MAEF;MACAJ,EAAE,CAACY,IAAI,CAAC,oEAAoE,EAAE,MAAM;QAClF,MAAMR,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,oBAAoB;QAEjD,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,QAAQ;UACpBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,iBAAiB,CAAC,CAAC;MAC7E,CAAC,CAAC;;MAEF;MACAJ,EAAE,CAACY,IAAI,CAAC,0DAA0D,EAAE,MAAM;QACxE,MAAMR,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,iBAAiB;QAE9C,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,cAAc;UAC1BC,QAAQ;UACRC,SAAS;UACToB,iBAAiB,EAAE;YACjBC,KAAK,EAAE;UACT;QACF,CAAC,CAAC;QAEFpB,iBAAM,CAACK,KAAK,CACVD,MAAM,EACNvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,CAC5F,CAAC;MACH,CAAC,CAAC;MAEFJ,EAAE,CAAC,0BAA0B,EAAE,MAAM;QACnC,MAAMI,SAAS,GAAG,GAAGnC,aAAa,0BAA0B;QAC5D,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,UAAU;QAEvC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,eAAe;UAC3BC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;MACvG,CAAC,CAAC;MAEFJ,EAAE,CAAC,8CAA8C,EAAE,MAAM;QACvD,MAAMI,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,WAAW;QAExC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,UAAU;UACtBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGrD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,kBAAkB,CAAC,CAAC;MACpF,CAAC,CAAC;MAEFJ,EAAE,CAAC,iCAAiC,EAAE,MAAM;QAC1C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,GAAGvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,gBAAgB,CAAC,EAAE,CAAC;MACvE,CAAC,CAAC;MAEF+B,EAAE,CAAC,kCAAkC,EAAE,MAAM;QAC3C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,GAAGvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,iBAAiB,CAAC,EAAE,CAAC;MACxE,CAAC,CAAC;MAEF+B,EAAE,CAAC,kCAAkC,EAAE,MAAM;QAC3C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,GAAGvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,iBAAiB,CAAC,EAAE,CAAC;MACxE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,YAAY,EAAE,MAAM;MAC3BG,EAAE,CAAC,oBAAoB,EAAE,MAAM;QAC7B,MAAMI,SAAS,GAAG,GAAGnC,aAAa,QAAQ;QAC1C,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,WAAW;QAExC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;MACpE,CAAC,CAAC;MAEFP,QAAQ,CAAC,kCAAkC,EAAE,MAAM;QACjDG,EAAE,CAAC,yBAAyB,EAAE,MAAM;UAClC,MAAMI,SAAS,GAAG,GAAGnC,aAAa,QAAQ;UAC1C,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,WAAW;UAExC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;YACrB2B,UAAU,EAAE,UAAU;YACtBC,QAAQ;YACRC;UACF,CAAC,CAAC;UAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,EAAE,CAAC;QAC1B,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFZ,QAAQ,CAAC,KAAK,EAAE,MAAM;IACpBC,UAAU,CAAC,MAAM;MACfjB,MAAM,CAAC;QACL6C,MAAM,EAAE;UACN,UAAU,EAAE,EAAE;UACd,UAAU,EAAE;QACd,CAAC;QACDC,IAAI,EAAE;UACJ,UAAU,EAAE,EAAE;UACd,UAAU,EAAE,EAAE;UACd,UAAU,EAAE,EAAE;UACd,UAAU,EAAE;QACd,CAAC;QACDC,IAAI,EAAE;UACJ,UAAU,EAAE,EAAE;UACd,UAAU,EAAE,EAAE;UACd,SAAS,EAAE;QACb;MACF,CAAC,CAAC;;MAEF;IACF,CAAC,CAAC;IAEF7B,SAAS,CAAC,MAAM;MACdJ,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC;IAEFE,QAAQ,CAAC,MAAM,EAAE,MAAM;MACrBG,EAAE,CAAC,wCAAwC,EAAE,MAAM;QACjD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,gBAAgB,CAAC,CAAC;MACxE,CAAC,CAAC;MAEF+B,EAAE,CAAC,wCAAwC,EAAE,MAAM;QACjD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,gBAAgB,CAAC,CAAC;MACxE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,QAAQ,EAAE,MAAM;MACvBG,EAAE,CAAC,0BAA0B,EAAE,MAAM;QACnC,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ,EAAE,GAAGlC,aAAa,kBAAkB;UAC5CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,kBAAkB,CAAC,CAAC;MAC1E,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,MAAM,EAAE,MAAM;MACrBG,EAAE,CAAC,qCAAqC,EAAE,MAAM;QAC9C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,gBAAgB,CAAC,CAAC;MACxE,CAAC,CAAC;MAEF+B,EAAE,CAAC,6CAA6C,EAAE,MAAM;QACtD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,UAAU;UACtBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,gBAAgB,CAAC,CAAC;MACxE,CAAC,CAAC;MAEF+B,EAAE,CAAC,4CAA4C,EAAE,MAAM;QACrD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,SAAS;UACrBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,eAAe,CAAC,CAAC;MACvE,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF4B,QAAQ,CAAC,wBAAwB,EAAE,MAAM;IACvCG,EAAE,CAAC,wDAAwD,EAAE,MAAM;MACjE,MAAMS,MAAM,GAAGlC,OAAO,CAAC;QACrB2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,mBAAmB;QAC7CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,mBAAmB,CAAC,CAAC;IAC3E,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF4B,QAAQ,CAAC,oBAAoB,EAAE,MAAM;IACnCG,EAAE,CAAC,gCAAgC,EAAE,MAAM;MACzC,MAAM6B,QAA4B,GAAG;QACnCC,MAAM,EAAGC,WAAmB,IAAK;UAC/B,OAAOA,WAAW,CAACT,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;QACzD,CAAC;QACDU,WAAW,EAAEA,CAAC;UAAEC;QAAI,CAAC,KAAK;UACxB,OAAOA,GAAG,KAAK,MAAM;QACvB,CAAC;QACDC,gBAAgB,EAAEA,CAAC;UAAEhC;QAAW,CAAC,KAAK;UACpC,OAAO,QAAQA,UAAU,MAAM;QACjC,CAAC;QACDiC,IAAI,EAAE;MACR,CAAC;MACD,MAAM1B,MAAM,GAAGlC,OAAO,CAAC;QACrB6B,SAAS,EAAE,GAAGnC,aAAa,YAAY;QACvCkC,QAAQ,EAAE,GAAGlC,aAAa,mBAAmB;QAC7CgE,GAAG,EAAE,MAAM;QACX/B,UAAU,EAAE,KAAK;QACjBkC,YAAY,EAAE,CAACP,QAAQ;MACzB,CAAC,CAAC;MAEFxB,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,cAAc,CAAC;IACtC,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFZ,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC1BG,EAAE,CAAC,mDAAmD,EAAE,MAAM;MAC5D,MAAMa,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC,CAACwB,OAAO,CAAC,YAAY,CAAC;MAC/ChE,iBAAiB,CAACiE,QAAQ,CAAC,SAAS,EAAEzB,IAAI,CAAC;MAE3C,MAAM0B,UAAU,GAAGhE,OAAO,CAAC;QACzB2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,oBAAoB;QAC9CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;MACtBZ,iBAAM,CAACK,KAAK,CAAC6B,UAAU,EAAE,YAAY,CAAC;IACxC,CAAC,CAAC;IAEFvC,EAAE,CAAC,yCAAyC,EAAE,MAAM;MAClDnB,MAAM,CAAC;QACL6C,MAAM,EAAE;UACN,UAAU,EAAE,EAAE;UACd,UAAU,EAAE;QACd;MACF,CAAC,CAAC;MAEF,MAAMb,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC,CAACwB,OAAO,CAAC,KAAK,CAAC;MAExChE,iBAAiB,CAACiE,QAAQ,CAAC,SAAS,EAAEzB,IAAI,CAAC;MAE3CtC,OAAO,CAAC;QACN2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,oBAAoB;QAC9CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEF,MAAMwC,MAAM,GAAGlC,OAAO,CAAC;QACrB2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,kBAAkB;QAC5CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;MACtBZ,iBAAM,CAACC,EAAE,CAACG,MAAM,CAAC;MAEjBd,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC;IAEFK,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,MAAMa,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC,CAACwB,OAAO,CAAC,KAAK,CAAC;MACxC,MAAMG,KAAK,GAAG1B,gBAAK,CAACD,IAAI,CAAC,CAAC,CAACwB,OAAO,CAAC,KAAK,CAAC;MAEzChE,iBAAiB,CAACiE,QAAQ,CAAC,SAAS,EAAEzB,IAAI,CAAC;MAC3CxC,iBAAiB,CAACiE,QAAQ,CAAC,SAAS,EAAEE,KAAK,CAAC;MAE5CjE,OAAO,CAAC;QACN2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,oBAAoB;QAC9CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFM,OAAO,CAAC;QACN2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,oBAAoB;QAC9CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;MACtBZ,iBAAM,CAACC,EAAE,CAACkC,KAAK,CAACvB,MAAM,CAAC;IACzB,CAAC,CAAC;IAEFjB,EAAE,CAAC,8DAA8D,EAAE,MAAM;MACvE,MAAMa,IAAI,GAAGC,gBAAK,CAACD,IAAI;MACvB,MAAM4B,MAAM,GAAG,SAAS;MAExBpE,iBAAiB,CAACiE,QAAQ,CAACG,MAAM,EAAE5B,IAAI,CAAC;MACxCxC,iBAAiB,CAACiE,QAAQ,CAACG,MAAM,EAAE5B,IAAI,CAAC;MAExC,MAAM;QAAE6B;MAAwB,CAAC,GAAGrE,iBAAiB;MAErDgC,iBAAM,CAACK,KAAK,CAACgC,uBAAuB,CAACpB,OAAO,CAACmB,MAAM,CAAC,EAAEC,uBAAuB,CAACC,WAAW,CAACF,MAAM,CAAC,CAAC;IACpG,CAAC,CAAC;EACJ,CAAC,CAAC;;EAEF;EACA5C,QAAQ,CAACe,IAAI,CAAC,SAAS,EAAE,MAAM;IAC7B,IAAIR,SAAS;IAEbN,UAAU,CAAC,MAAM;MACfM,SAAS,GAAGlC,eAAI,CAACO,OAAO,CAACC,SAAS,EAAE,WAAW,CAAC;IAClD,CAAC,CAAC;IAEF,SAASkE,cAAcA,CAAC1C,UAAU,EAAE2C,QAAQ,EAAE;MAC5C,MAAMC,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU;QACVC,QAAQ,EAAE,GAAGzB,SAAS,WAAW;QACjC0B,SAAS;QACT2C,aAAa,EAAE,GAAGvE,QAAQ;MAC5B,CAAC,CAAC;MAEF6B,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE5E,eAAI,CAACqD,SAAS,CAACsB,QAAQ,CAAC,CAAC;IAClD;IAEA7C,EAAE,CAAC,0BAA0B,EAAE,MAAM;MACnC4C,cAAc,CAAC,GAAG,EAAE,GAAGxC,SAAS,gCAAgC,CAAC;IACnE,CAAC,CAAC;IAEFJ,EAAE,CAAC,6BAA6B,EAAE,MAAM;MACtC4C,cAAc,CAAC,SAAS,EAAE,GAAGxC,SAAS,gCAAgC,CAAC;IACzE,CAAC,CAAC;IAEFJ,EAAE,CAAC,0BAA0B,EAAE,MAAM;MACnC4C,cAAc,CAAC,YAAY,EAAE,GAAGpE,QAAQ,cAAc,CAAC;IACzD,CAAC,CAAC;IAEFwB,EAAE,CAAC,6DAA6D,EAAE,MAAM;MACtE,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,GAAG;QACfC,QAAQ,EAAE,GAAG3B,QAAQ,cAAc;QACnC4B,SAAS;QACT2C,aAAa,EAAE,GAAGvE,QAAQ;MAC5B,CAAC,CAAC;MAEF6B,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,gCAAgC,CAAC;IACtE,CAAC,CAAC;IAEFJ,EAAE,CAAC,oCAAoC,EAAE,MAAM;MAC7C,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,MAAM;QAClBC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,qBAAqB,CAAC;IAC3D,CAAC,CAAC;IAEFJ,EAAE,CAAC,6CAA6C,EAAE,MAAM;MACtD,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,SAAS;QACrBC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,gCAAgC,CAAC;IACtE,CAAC,CAAC;IAEFJ,EAAE,CAAC,2DAA2D,EAAE,MAAM;MACpE,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,SAAS;QACrBC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,gCAAgC,CAAC;IACtE,CAAC,CAAC;IAEFJ,EAAE,CAAC,kDAAkD,EAAE,MAAM;MAC3D,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,MAAM;QAClBC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,qBAAqB,CAAC;IAC3D,CAAC,CAAC;IAEFJ,EAAE,CAAC,8DAA8D,EAAE,MAAM;MACvE,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,GAAG;QACfC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,gCAAgC,CAAC;IACtE,CAAC,CAAC;IAEFJ,EAAE,CAAC,sCAAsC,EAAE,MAAM;MAC/C4C,cAAc,CAAC,gBAAgB,EAAE,GAAGxC,SAAS,eAAe,CAAC;IAC/D,CAAC,CAAC;IAEFP,QAAQ,CAAC,uCAAuC,EAAE,MAAM;MACtDG,EAAE,CAAC,aAAa,EAAE,MAAM;QACtB4C,cAAc,CAAC,aAAa,EAAE,GAAGxC,SAAS,gCAAgC,CAAC;MAC7E,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_defenderFs","data","require","_fsExtra","_interopRequireDefault","_assert","_path","_rewire","_sinon","e","__esModule","default","UNIT_TEST_DIR","path","join","BIT_TEMP_ROOT","cabinetNonDefault","rewire","cabinet","fixtures","resolve","__dirname","mockedFiles","mockAST","mockfs","obj","acc","Object","entries","forEach","key","value","filePath","fullFilePath","content","fs","outputFileSync","undefined","cleanUnitDir","removeSync","describe","beforeEach","afterEach","it","resolvedFile","dependency","filename","directory","assert","ok","endsWith","ast","result","normalize","equal","options","skip","stub","sinon","revert","__set__","called","main","paths","some","p","indexOf","nodeModulesConfig","entry","stylus","sass","less","detector","detect","fileContent","isSupported","ext","dependencyLookup","type","envDetectors","returns","register","pathResult","stub2","newExt","supportedFileExtensions","lastIndexOf","testResolution","expected","resolved","webpackConfig"],"sources":["index.spec.ts"],"sourcesContent":["import { BIT_TEMP_ROOT } from '@teambit/defender.fs.global-bit-temp-dir';\nimport fs from 'fs-extra';\nimport assert from 'assert';\nimport path from 'path';\nimport rewire from 'rewire';\nimport sinon from 'sinon';\n\nimport type { DependencyDetector } from '@teambit/dependency-resolver';\n\nconst UNIT_TEST_DIR = path.join(BIT_TEMP_ROOT, 'unit-test');\n\nconst cabinetNonDefault = rewire('./');\nconst cabinet = cabinetNonDefault.default;\n\nconst fixtures = path.resolve(`${__dirname}/../fixtures/filing-cabinet`);\n\n// eslint-disable-next-line import/no-dynamic-require, global-require\nconst mockedFiles = require(`${fixtures}/mockedJSFiles`);\n// eslint-disable-next-line import/no-dynamic-require, global-require\nconst mockAST = require(`${fixtures}/ast`);\n\nfunction mockfs(obj: any, acc?: string) {\n Object.entries(obj).forEach(([key, value]) => {\n if (typeof value === 'string') {\n const filePath = acc ? path.join(acc, key) : key;\n const fullFilePath = path.join(UNIT_TEST_DIR, filePath);\n const content = value;\n return fs.outputFileSync(fullFilePath, content);\n }\n mockfs(value, acc ? path.join(acc, key) : key);\n return undefined;\n });\n}\n\nfunction cleanUnitDir() {\n fs.removeSync(UNIT_TEST_DIR);\n}\n\n// try {\n// // eslint-disable-next-line global-require\n// require('module-lookup-amd');\n// } catch (err: any) {\n// // eslint-disable-next-line no-console\n// console.log(`mocha suppresses the error, so console.error is needed to show the error on the screen.\n// the problem is with module-lookup-amd that calls requirejs package and uses rewire package.\n// see https://github.com/jhnns/rewire/issues/178 for more details.\n// the error occurs since node v12.16.0. for the time being, to run the tests, use an earlier version.\n// `);\n// // eslint-disable-next-line no-console\n// console.error(err);\n// throw err;\n// }\n\ndescribe('filing-cabinet', () => {\n describe('JavaScript', () => {\n beforeEach(() => {\n mockfs(mockedFiles);\n });\n\n afterEach(() => {\n cleanUnitDir();\n });\n\n it('uses a generic resolve for unsupported file extensions', () => {\n const resolvedFile = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.baz`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n assert.ok(resolvedFile.endsWith('bar.baz'));\n });\n\n describe('when given an ast for a JS file', () => {\n it('reuses the ast when trying to determine the module type', () => {\n const ast = {};\n\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n ast,\n });\n assert.ok(result.endsWith(path.normalize('es6/bar.js')));\n });\n\n it('resolves the dependency successfully', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n ast: mockAST,\n });\n assert.equal(result, path.join(UNIT_TEST_DIR, 'js/es6/bar.js'));\n });\n });\n\n describe('when not given an ast', () => {\n it('uses the filename to look for the module type', () => {\n const options = {\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n };\n\n const result = cabinet(options);\n assert.equal(result, path.join(UNIT_TEST_DIR, 'js/es6/bar.js'));\n });\n });\n\n describe('es6', () => {\n // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference\n it.skip('assumes commonjs for es6 modules with no requirejs/webpack config', () => {\n const stub = sinon.stub();\n const revert = cabinetNonDefault.__set__('commonJSLookup', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n });\n\n assert.ok(stub.called);\n\n revert();\n });\n });\n\n describe('jsx', () => {\n it('resolves files with the .jsx extension', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.jsx`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/es6/bar.js')}`);\n });\n });\n\n // describe('amd', () => {\n // it('uses the amd resolver', () => {\n // const resolvedFile = cabinet({\n // dependency: './bar',\n // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,\n // directory: `${UNIT_TEST_DIR}/js/amd/`,\n // });\n // assert.ok(resolvedFile.endsWith('amd/bar.js'));\n // });\n\n // // skipped as part of lazy loading fix. not seems to be super helpful test\n // it.skip('passes along arguments', () => {\n // const stub = sinon.stub();\n // const revert = cabinet.__set__('amdLookup', stub);\n // const config = { baseUrl: 'js' };\n\n // cabinet({\n // dependency: 'bar',\n // config,\n // configPath: 'config.js',\n // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,\n // directory: `${UNIT_TEST_DIR}/js/amd/`,\n // });\n\n // const args = stub.getCall(0).args[0];\n\n // assert.equal(args.dependency, 'bar');\n // assert.equal(args.config, config);\n // assert.equal(args.configPath, 'config.js');\n // assert.equal(args.filename, 'js/amd/foo.js');\n // assert.equal(args.directory, 'js/amd/');\n\n // assert.ok(stub.called);\n\n // revert();\n // });\n // });\n\n describe('commonjs', () => {\n // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference\n it.skip(\"uses require's resolver\", () => {\n const stub = sinon.stub();\n const revert = cabinetNonDefault.__set__('commonJSLookup', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n\n assert.ok(stub.called);\n\n revert();\n });\n\n it('returns an empty string for an unresolved module', () => {\n const result = cabinet({\n dependency: 'foobar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n\n assert.equal(result, '');\n });\n\n it('adds the directory to the require resolution paths', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n cabinet({\n dependency: 'foobar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory,\n });\n\n assert.ok(\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n require.main.paths.some(function (p) {\n return p.indexOf(path.normalize(directory)) !== -1;\n })\n );\n });\n\n it('resolves a relative dependency about the filename', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}foo.js`;\n\n const result = cabinet({\n dependency: './bar',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'bar.js'));\n });\n\n it(\"resolves a .. dependency to its parent directory's index.js file\", () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}subdir/module.js`;\n\n const result = cabinet({\n dependency: '../',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'index.js'));\n });\n\n // @todo: fix\n it.skip('resolves a dependency within a directory outside of the given file', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}test/index.spec.js`;\n\n const result = cabinet({\n dependency: 'subdir',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'subdir/index.js'));\n });\n\n // @todo: fix\n it.skip('resolves a node module with module entry in package.json', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}module.entry.js`;\n\n const result = cabinet({\n dependency: 'module.entry',\n filename,\n directory,\n nodeModulesConfig: {\n entry: 'module',\n },\n });\n\n assert.equal(\n result,\n path.join(path.resolve(directory), '..', 'node_modules', 'module.entry', 'index.module.js')\n );\n });\n\n it('resolves a nested module', () => {\n const directory = `${UNIT_TEST_DIR}/js/node_modules/nested/`;\n const filename = `${directory}index.js`;\n\n const result = cabinet({\n dependency: 'lodash.assign',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'node_modules', 'lodash.assign', 'index.js'));\n });\n\n it('resolves to the index.js file of a directory', () => {\n const directory = `${UNIT_TEST_DIR}/js/withIndex`;\n const filename = `${directory}/index.js`;\n\n const result = cabinet({\n dependency: './subdir',\n filename,\n directory,\n });\n\n assert.equal(result, path.normalize(`${path.resolve(directory)}/subdir/index.js`));\n });\n\n it('resolves implicit .jsx requires', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/bar.jsx')}`);\n });\n\n it('resolves implicit .scss requires', () => {\n const result = cabinet({\n dependency: './baz',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/baz.scss')}`);\n });\n\n it('resolves implicit .json requires', () => {\n const result = cabinet({\n dependency: './pkg',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/pkg.json')}`);\n });\n });\n\n describe('typescript', () => {\n it('resolves an import', () => {\n const directory = `${UNIT_TEST_DIR}/js/ts`;\n const filename = `${directory}/index.ts`;\n\n const result = cabinet({\n dependency: './foo',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'foo.ts'));\n });\n\n describe('when a dependency does not exist', () => {\n it('returns an empty result', () => {\n const directory = `${UNIT_TEST_DIR}/js/ts`;\n const filename = `${directory}/index.ts`;\n\n const result = cabinet({\n dependency: './barbar',\n filename,\n directory,\n });\n\n assert.equal(result, '');\n });\n });\n });\n });\n\n describe('CSS', () => {\n beforeEach(() => {\n mockfs({\n stylus: {\n 'foo.styl': '',\n 'bar.styl': '',\n },\n sass: {\n 'foo.scss': '',\n 'bar.scss': '',\n 'foo.sass': '',\n 'bar.sass': '',\n },\n less: {\n 'foo.less': '',\n 'bar.less': '',\n 'bar.css': '',\n },\n });\n\n // mockJSDir = path.resolve(__dirname, '../');\n });\n\n afterEach(() => {\n cleanUnitDir();\n });\n\n describe('sass', () => {\n it('uses the sass resolver for .scss files', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/sass/foo.scss`,\n directory: `${UNIT_TEST_DIR}/sass/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/sass/bar.scss`));\n });\n\n it('uses the sass resolver for .sass files', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/sass/foo.sass`,\n directory: `${UNIT_TEST_DIR}/sass/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/sass/bar.sass`));\n });\n });\n\n describe('stylus', () => {\n it('uses the stylus resolver', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,\n directory: `${UNIT_TEST_DIR}/stylus/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/stylus/bar.styl`));\n });\n });\n\n describe('less', () => {\n it('resolves extensionless dependencies', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.less`));\n });\n\n it('resolves dependencies with a less extension', () => {\n const result = cabinet({\n dependency: 'bar.less',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.less`));\n });\n\n it('resolves dependencies with a css extension', () => {\n const result = cabinet({\n dependency: 'bar.css',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.css`));\n });\n });\n });\n\n describe('unrecognized extension', () => {\n it('uses a generic resolve for unsupported file extensions', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/barbazim/foo.baz`,\n directory: `${UNIT_TEST_DIR}/barbazim/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/barbazim/bar.baz`));\n });\n });\n\n describe('custom env lookups', () => {\n it('supports passing env detectors', () => {\n const detector: DependencyDetector = {\n detect: (fileContent: string) => {\n return fileContent.indexOf('foo') === -1 ? [] : ['foo'];\n },\n isSupported: ({ ext }) => {\n return ext === '.foo';\n },\n dependencyLookup: ({ dependency }) => {\n return `/xyz/${dependency}.baz`;\n },\n type: 'foo',\n };\n const result = cabinet({\n directory: `${UNIT_TEST_DIR}/barbazim/`,\n filename: `${UNIT_TEST_DIR}/barbazim/xxx.foo`,\n ext: '.foo',\n dependency: 'bar',\n envDetectors: [detector],\n });\n\n assert.equal(result, '/xyz/bar.baz');\n });\n });\n\n describe('.register', () => {\n it('registers a custom resolver for a given extension', () => {\n const stub = sinon.stub().returns('foo.foobar');\n cabinetNonDefault.register('.foobar', stub);\n\n const pathResult = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n assert.ok(stub.called);\n assert.equal(pathResult, 'foo.foobar');\n });\n\n it('allows does not break default resolvers', () => {\n mockfs({\n stylus: {\n 'foo.styl': '',\n 'bar.styl': '',\n },\n });\n\n const stub = sinon.stub().returns('foo');\n\n cabinetNonDefault.register('.foobar', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,\n directory: `${UNIT_TEST_DIR}/stylus/`,\n });\n\n assert.ok(stub.called);\n assert.ok(result);\n\n cleanUnitDir();\n });\n\n it('can be called multiple times', () => {\n const stub = sinon.stub().returns('foo');\n const stub2 = sinon.stub().returns('foo');\n\n cabinetNonDefault.register('.foobar', stub);\n cabinetNonDefault.register('.barbar', stub2);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.barbar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n assert.ok(stub.called);\n assert.ok(stub2.called);\n });\n\n it('does not add redundant extensions to supportedFileExtensions', () => {\n const stub = sinon.stub;\n const newExt = '.foobar';\n\n cabinetNonDefault.register(newExt, stub);\n cabinetNonDefault.register(newExt, stub);\n\n const { supportedFileExtensions } = cabinetNonDefault;\n\n assert.equal(supportedFileExtensions.indexOf(newExt), supportedFileExtensions.lastIndexOf(newExt));\n });\n });\n\n // @todo: fix.\n describe.skip('webpack', () => {\n let directory;\n\n beforeEach(() => {\n directory = path.resolve(__dirname, '../../../');\n });\n\n function testResolution(dependency, expected) {\n const resolved = cabinet({\n dependency,\n filename: `${__dirname}/index.js`,\n directory,\n webpackConfig: `${fixtures}/webpack.config.js`,\n });\n\n assert.equal(resolved, path.normalize(expected));\n }\n\n it('resolves an aliased path', () => {\n testResolution('R', `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a non-aliased path', () => {\n testResolution('resolve', `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a relative path', () => {\n testResolution('./test/ast', `${fixtures}/test/ast.js`);\n });\n\n it('resolves an absolute path from a file within a subdirectory', () => {\n const resolved = cabinet({\n dependency: 'R',\n filename: `${fixtures}/test/ast.js`,\n directory,\n webpackConfig: `${fixtures}/webpack.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a path using resolve.root', () => {\n const resolved = cabinet({\n dependency: 'mod1',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/test/root1/mod1.js`);\n });\n\n it('resolves NPM module when using resolve.root', () => {\n const resolved = cabinet({\n dependency: 'resolve',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves NPM module when using resolve.modulesDirectories', () => {\n const resolved = cabinet({\n dependency: 'resolve',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a path using resolve.modulesDirectories', () => {\n const resolved = cabinet({\n dependency: 'mod2',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/test/root2/mod2.js`);\n });\n\n it('resolves a path using webpack config that exports a function', () => {\n const resolved = cabinet({\n dependency: 'R',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-env.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves files with a .jsx extension', () => {\n testResolution('./test/foo.jsx', `${directory}/test/foo.jsx`);\n });\n\n describe('when the dependency contains a loader', () => {\n it('still works', () => {\n testResolution('hgn!resolve', `${directory}/node_modules/resolve/index.js`);\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,5 +27,5 @@ type GenerateTreeResults = {
|
|
|
27
27
|
* @param config
|
|
28
28
|
* @return {Object}
|
|
29
29
|
*/
|
|
30
|
-
export default function generateTree(files: string[] | undefined, config: any): GenerateTreeResults
|
|
30
|
+
export default function generateTree(files: string[] | undefined, config: any): Promise<GenerateTreeResults>;
|
|
31
31
|
export {};
|
|
@@ -121,20 +121,20 @@ function convertTreePaths(depTree, pathCache, baseDir) {
|
|
|
121
121
|
* @param config
|
|
122
122
|
* @return {Object}
|
|
123
123
|
*/
|
|
124
|
-
function generateTree(files = [], config) {
|
|
124
|
+
async function generateTree(files = [], config) {
|
|
125
125
|
const depTree = {};
|
|
126
126
|
const nonExistent = {};
|
|
127
127
|
const npmPaths = {};
|
|
128
128
|
const pathCache = {};
|
|
129
129
|
const pathMap = [];
|
|
130
130
|
const errors = {};
|
|
131
|
-
|
|
131
|
+
for await (const file of files) {
|
|
132
132
|
if (depTree[file]) {
|
|
133
|
-
|
|
133
|
+
continue;
|
|
134
134
|
}
|
|
135
135
|
const detective = config.detectiveOptions;
|
|
136
136
|
try {
|
|
137
|
-
const dependencyTreeResult = (0, _dependencyTree().default)({
|
|
137
|
+
const dependencyTreeResult = await (0, _dependencyTree().default)({
|
|
138
138
|
filename: file,
|
|
139
139
|
directory: config.baseDir,
|
|
140
140
|
requireConfig: config.requireConfig,
|
|
@@ -163,7 +163,7 @@ function generateTree(files = [], config) {
|
|
|
163
163
|
} catch (err) {
|
|
164
164
|
errors[file] = err;
|
|
165
165
|
}
|
|
166
|
-
}
|
|
166
|
+
}
|
|
167
167
|
let tree = convertTreePaths(depTree, pathCache, config.baseDir);
|
|
168
168
|
|
|
169
169
|
// rename errors keys from absolute paths to relative paths
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_os","data","_interopRequireDefault","require","_path","_dependencyTree","e","__esModule","default","isWin","os","platform","isNpmPathFunc","pathStr","indexOf","sort","tree","Object","keys","reduce","acc","id","exclude","excludeRegExp","regExpList","map","re","RegExp","regExpFilter","findIndex","regexp","test","filter","processPath","absPath","cache","baseDir","relPath","path","relative","replace","convertTreePaths","depTree","pathCache","forEach","file","d","generateTree","files","config","nonExistent","npmPaths","pathMap","errors","detective","detectiveOptions","dependencyTreeResult","dependencyTree","filename","directory","requireConfig","webpackConfig","resolveConfig","visited","dependencyFilePath","traversedFilePath","dependencyFilterRes","isNpmPath","dependencyFilter","includeNpm","push","undefined","cacheProjectAst","envDetectors","assign","err","relativeFile","npmKey","npmPath","madgeTree","skipped"],"sources":["generate-tree-madge.ts"],"sourcesContent":["// most of the functions in this file were taken from the Madge project: https://github.com/pahen/madge\n// reasons for not using Madge directly: 1) it has issues with TypeScript on Windows. 2) it has issues with tsx files\n\nimport os from 'os';\nimport path from 'path';\n\nimport dependencyTree from './dependency-tree';\nimport type { PathLinuxRelative } from '@teambit/toolbox.path.path';\n\n/**\n * Check if running on Windows.\n * @type {Boolean}\n */\nconst isWin = os.platform() === 'win32';\n\n/**\n * Check if path is from NPM folder\n * @param {String} path\n * @return {Boolean}\n */\nfunction isNpmPathFunc(pathStr) {\n return pathStr.indexOf('node_modules') >= 0;\n}\n\n/**\n * Sort tree.\n * @param {Object} tree\n * @return {Object}\n */\nfunction sort(tree) {\n return Object.keys(tree)\n .sort()\n .reduce((acc, id) => {\n acc[id] = tree[id].sort();\n return acc;\n }, {});\n}\n\n/**\n * Exclude modules from tree using RegExp.\n * @param {Object} tree\n * @param {Array} excludeRegExp\n * @return {Object}\n */\nfunction exclude(tree, excludeRegExp) {\n const regExpList = excludeRegExp.map((re) => new RegExp(re));\n\n function regExpFilter(id) {\n return regExpList.findIndex((regexp) => regexp.test(id)) < 0;\n }\n\n return Object.keys(tree)\n .filter(regExpFilter)\n .reduce((acc, id) => {\n acc[id] = tree[id].filter(regExpFilter);\n return acc;\n }, {});\n}\n\n/**\n * Process absolute path and return a shorter one.\n * @param {String} absPath\n * @param {Object} cache\n * @param {String} baseDir\n * @return {String}\n */\nexport function processPath(absPath, cache, baseDir) {\n if (cache[absPath]) {\n return cache[absPath];\n }\n\n let relPath = path.relative(baseDir, absPath);\n\n if (isWin) {\n relPath = relPath.replace(/\\\\/g, '/');\n }\n\n cache[absPath] = relPath;\n\n return relPath;\n}\n\n/**\n * Convert deep tree produced by dependency-tree to a\n * shallow (one level deep) tree used by madge.\n * @param {Object} depTree\n * @param {Object} tree\n * @param {Object} pathCache\n * @param {String} baseDir\n * @return {Object}\n */\nfunction convertTreePaths(depTree, pathCache, baseDir) {\n const tree = {};\n Object.keys(depTree).forEach((file) => {\n tree[processPath(file, pathCache, baseDir)] = depTree[file].map((d) => processPath(d, pathCache, baseDir));\n });\n\n return tree;\n}\n\n// e.g. { 'index.ts': ['foo.ts', '../node_modules/react/index.js'] }\n// all paths are normalized to Linux\nexport type MadgeTree = { [relativePath: string]: PathLinuxRelative[] };\n\n// e.g. { '/tmp/workspace': ['lodash', 'underscore'] };\nexport type Missing = { [absolutePath: string]: string[] };\n\ntype GenerateTreeResults = {\n madgeTree: MadgeTree;\n skipped: Missing;\n pathMap: any;\n errors: { [filePath: string]: Error };\n};\n\n/**\n * Generate the tree from the given files\n * @param {Array} files\n * @param config\n * @return {Object}\n */\nexport default function generateTree(files: string[] = [], config): GenerateTreeResults {\n const depTree = {};\n const nonExistent = {};\n const npmPaths = {};\n const pathCache = {};\n const pathMap = [];\n const errors = {};\n\n files.forEach((file) => {\n if (depTree[file]) {\n return;\n }\n\n const detective = config.detectiveOptions;\n try {\n const dependencyTreeResult = dependencyTree({\n filename: file,\n directory: config.baseDir,\n requireConfig: config.requireConfig,\n webpackConfig: config.webpackConfig,\n resolveConfig: config.resolveConfig,\n visited: config.visited,\n errors,\n filter: (dependencyFilePath, traversedFilePath) => {\n let dependencyFilterRes = true;\n const isNpmPath = isNpmPathFunc(dependencyFilePath);\n\n if (config.dependencyFilter) {\n dependencyFilterRes = config.dependencyFilter(dependencyFilePath, traversedFilePath, config.baseDir);\n }\n\n if (config.includeNpm && isNpmPath) {\n (npmPaths[traversedFilePath] = npmPaths[traversedFilePath] || []).push(dependencyFilePath);\n }\n\n return !isNpmPath && (dependencyFilterRes || dependencyFilterRes === undefined);\n },\n detective,\n nonExistent,\n pathMap,\n cacheProjectAst: config.cacheProjectAst,\n envDetectors: config.envDetectors,\n });\n Object.assign(depTree, dependencyTreeResult);\n } catch (err: any) {\n errors[file] = err;\n }\n });\n\n let tree = convertTreePaths(depTree, pathCache, config.baseDir);\n\n // rename errors keys from absolute paths to relative paths\n Object.keys(errors).forEach((file) => {\n const relativeFile = processPath(file, pathCache, config.baseDir);\n if (relativeFile !== file) {\n errors[relativeFile] = errors[file];\n delete errors[file];\n }\n });\n\n Object.keys(npmPaths).forEach((npmKey) => {\n const id = processPath(npmKey, pathCache, config.baseDir);\n // a file might not be in the tree if it has errors or errors found with its parents\n if (!tree[id]) return;\n npmPaths[npmKey].forEach((npmPath) => {\n tree[id].push(processPath(npmPath, pathCache, config.baseDir));\n });\n });\n\n if (config.excludeRegExp) {\n tree = exclude(tree, config.excludeRegExp);\n }\n\n return {\n madgeTree: sort(tree),\n skipped: nonExistent,\n pathMap,\n errors,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_os","data","_interopRequireDefault","require","_path","_dependencyTree","e","__esModule","default","isWin","os","platform","isNpmPathFunc","pathStr","indexOf","sort","tree","Object","keys","reduce","acc","id","exclude","excludeRegExp","regExpList","map","re","RegExp","regExpFilter","findIndex","regexp","test","filter","processPath","absPath","cache","baseDir","relPath","path","relative","replace","convertTreePaths","depTree","pathCache","forEach","file","d","generateTree","files","config","nonExistent","npmPaths","pathMap","errors","detective","detectiveOptions","dependencyTreeResult","dependencyTree","filename","directory","requireConfig","webpackConfig","resolveConfig","visited","dependencyFilePath","traversedFilePath","dependencyFilterRes","isNpmPath","dependencyFilter","includeNpm","push","undefined","cacheProjectAst","envDetectors","assign","err","relativeFile","npmKey","npmPath","madgeTree","skipped"],"sources":["generate-tree-madge.ts"],"sourcesContent":["// most of the functions in this file were taken from the Madge project: https://github.com/pahen/madge\n// reasons for not using Madge directly: 1) it has issues with TypeScript on Windows. 2) it has issues with tsx files\n\nimport os from 'os';\nimport path from 'path';\n\nimport dependencyTree from './dependency-tree';\nimport type { PathLinuxRelative } from '@teambit/toolbox.path.path';\n\n/**\n * Check if running on Windows.\n * @type {Boolean}\n */\nconst isWin = os.platform() === 'win32';\n\n/**\n * Check if path is from NPM folder\n * @param {String} path\n * @return {Boolean}\n */\nfunction isNpmPathFunc(pathStr) {\n return pathStr.indexOf('node_modules') >= 0;\n}\n\n/**\n * Sort tree.\n * @param {Object} tree\n * @return {Object}\n */\nfunction sort(tree) {\n return Object.keys(tree)\n .sort()\n .reduce((acc, id) => {\n acc[id] = tree[id].sort();\n return acc;\n }, {});\n}\n\n/**\n * Exclude modules from tree using RegExp.\n * @param {Object} tree\n * @param {Array} excludeRegExp\n * @return {Object}\n */\nfunction exclude(tree, excludeRegExp) {\n const regExpList = excludeRegExp.map((re) => new RegExp(re));\n\n function regExpFilter(id) {\n return regExpList.findIndex((regexp) => regexp.test(id)) < 0;\n }\n\n return Object.keys(tree)\n .filter(regExpFilter)\n .reduce((acc, id) => {\n acc[id] = tree[id].filter(regExpFilter);\n return acc;\n }, {});\n}\n\n/**\n * Process absolute path and return a shorter one.\n * @param {String} absPath\n * @param {Object} cache\n * @param {String} baseDir\n * @return {String}\n */\nexport function processPath(absPath, cache, baseDir) {\n if (cache[absPath]) {\n return cache[absPath];\n }\n\n let relPath = path.relative(baseDir, absPath);\n\n if (isWin) {\n relPath = relPath.replace(/\\\\/g, '/');\n }\n\n cache[absPath] = relPath;\n\n return relPath;\n}\n\n/**\n * Convert deep tree produced by dependency-tree to a\n * shallow (one level deep) tree used by madge.\n * @param {Object} depTree\n * @param {Object} tree\n * @param {Object} pathCache\n * @param {String} baseDir\n * @return {Object}\n */\nfunction convertTreePaths(depTree, pathCache, baseDir) {\n const tree = {};\n Object.keys(depTree).forEach((file) => {\n tree[processPath(file, pathCache, baseDir)] = depTree[file].map((d) => processPath(d, pathCache, baseDir));\n });\n\n return tree;\n}\n\n// e.g. { 'index.ts': ['foo.ts', '../node_modules/react/index.js'] }\n// all paths are normalized to Linux\nexport type MadgeTree = { [relativePath: string]: PathLinuxRelative[] };\n\n// e.g. { '/tmp/workspace': ['lodash', 'underscore'] };\nexport type Missing = { [absolutePath: string]: string[] };\n\ntype GenerateTreeResults = {\n madgeTree: MadgeTree;\n skipped: Missing;\n pathMap: any;\n errors: { [filePath: string]: Error };\n};\n\n/**\n * Generate the tree from the given files\n * @param {Array} files\n * @param config\n * @return {Object}\n */\nexport default async function generateTree(files: string[] = [], config): Promise<GenerateTreeResults> {\n const depTree = {};\n const nonExistent = {};\n const npmPaths = {};\n const pathCache = {};\n const pathMap = [];\n const errors = {};\n\n for await (const file of files) {\n if (depTree[file]) {\n continue;\n }\n\n const detective = config.detectiveOptions;\n try {\n const dependencyTreeResult = await dependencyTree({\n filename: file,\n directory: config.baseDir,\n requireConfig: config.requireConfig,\n webpackConfig: config.webpackConfig,\n resolveConfig: config.resolveConfig,\n visited: config.visited,\n errors,\n filter: (dependencyFilePath, traversedFilePath) => {\n let dependencyFilterRes = true;\n const isNpmPath = isNpmPathFunc(dependencyFilePath);\n\n if (config.dependencyFilter) {\n dependencyFilterRes = config.dependencyFilter(dependencyFilePath, traversedFilePath, config.baseDir);\n }\n\n if (config.includeNpm && isNpmPath) {\n (npmPaths[traversedFilePath] = npmPaths[traversedFilePath] || []).push(dependencyFilePath);\n }\n\n return !isNpmPath && (dependencyFilterRes || dependencyFilterRes === undefined);\n },\n detective,\n nonExistent,\n pathMap,\n cacheProjectAst: config.cacheProjectAst,\n envDetectors: config.envDetectors,\n });\n Object.assign(depTree, dependencyTreeResult);\n } catch (err: any) {\n errors[file] = err;\n }\n }\n\n let tree = convertTreePaths(depTree, pathCache, config.baseDir);\n\n // rename errors keys from absolute paths to relative paths\n Object.keys(errors).forEach((file) => {\n const relativeFile = processPath(file, pathCache, config.baseDir);\n if (relativeFile !== file) {\n errors[relativeFile] = errors[file];\n delete errors[file];\n }\n });\n\n Object.keys(npmPaths).forEach((npmKey) => {\n const id = processPath(npmKey, pathCache, config.baseDir);\n // a file might not be in the tree if it has errors or errors found with its parents\n if (!tree[id]) return;\n npmPaths[npmKey].forEach((npmPath) => {\n tree[id].push(processPath(npmPath, pathCache, config.baseDir));\n });\n });\n\n if (config.excludeRegExp) {\n tree = exclude(tree, config.excludeRegExp);\n }\n\n return {\n madgeTree: sort(tree),\n skipped: nonExistent,\n pathMap,\n errors,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|