Skip to content

Commit

Permalink
rename imported default to builder
Browse files Browse the repository at this point in the history
  • Loading branch information
soryy708 committed Mar 20, 2024
1 parent 16cafc4 commit cc1b19e
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 50 deletions.
4 changes: 2 additions & 2 deletions src/rules/default.js
@@ -1,4 +1,4 @@
import Exports from '../exportMapBuilder';
import ExportMapBuilder from '../exportMapBuilder';
import docsUrl from '../docsUrl';

module.exports = {
Expand All @@ -19,7 +19,7 @@ module.exports = {
);

if (!defaultSpecifier) { return; }
const imports = Exports.get(node.source.value, context);
const imports = ExportMapBuilder.get(node.source.value, context);
if (imports == null) { return; }

if (imports.errors.length) {
Expand Down
4 changes: 2 additions & 2 deletions src/rules/export.js
@@ -1,4 +1,4 @@
import ExportMap, { recursivePatternCapture } from '../exportMapBuilder';
import ExportMapBuilder, { recursivePatternCapture } from '../exportMapBuilder';
import docsUrl from '../docsUrl';
import includes from 'array-includes';
import flatMap from 'array.prototype.flatmap';
Expand Down Expand Up @@ -197,7 +197,7 @@ module.exports = {
// `export * as X from 'path'` does not conflict
if (node.exported && node.exported.name) { return; }

const remoteExports = ExportMap.get(node.source.value, context);
const remoteExports = ExportMapBuilder.get(node.source.value, context);
if (remoteExports == null) { return; }

if (remoteExports.errors.length) {
Expand Down
6 changes: 3 additions & 3 deletions src/rules/named.js
@@ -1,5 +1,5 @@
import * as path from 'path';
import Exports from '../exportMapBuilder';
import ExportMapBuilder from '../exportMapBuilder';
import docsUrl from '../docsUrl';

module.exports = {
Expand Down Expand Up @@ -41,7 +41,7 @@ module.exports = {
return; // no named imports/exports
}

const imports = Exports.get(node.source.value, context);
const imports = ExportMapBuilder.get(node.source.value, context);
if (imports == null || imports.parseGoal === 'ambiguous') {
return;
}
Expand Down Expand Up @@ -93,7 +93,7 @@ module.exports = {
const call = node.init;
const [source] = call.arguments;
const variableImports = node.id.properties;
const variableExports = Exports.get(source.value, context);
const variableExports = ExportMapBuilder.get(source.value, context);

if (
// return if it's not a commonjs require statement
Expand Down
6 changes: 3 additions & 3 deletions src/rules/namespace.js
@@ -1,5 +1,5 @@
import declaredScope from 'eslint-module-utils/declaredScope';
import Exports from '../exportMapBuilder';
import ExportMapBuilder from '../exportMapBuilder';
import ExportMap from '../exportMap';
import importDeclaration from '../importDeclaration';
import docsUrl from '../docsUrl';
Expand All @@ -9,7 +9,7 @@ function processBodyStatement(context, namespaces, declaration) {

if (declaration.specifiers.length === 0) { return; }

const imports = Exports.get(declaration.source.value, context);
const imports = ExportMapBuilder.get(declaration.source.value, context);
if (imports == null) { return null; }

if (imports.errors.length > 0) {
Expand Down Expand Up @@ -89,7 +89,7 @@ module.exports = {
ExportNamespaceSpecifier(namespace) {
const declaration = importDeclaration(context);

const imports = Exports.get(declaration.source.value, context);
const imports = ExportMapBuilder.get(declaration.source.value, context);
if (imports == null) { return null; }

if (imports.errors.length) {
Expand Down
4 changes: 2 additions & 2 deletions src/rules/no-cycle.js
Expand Up @@ -4,7 +4,7 @@
*/

import resolve from 'eslint-module-utils/resolve';
import Exports from '../exportMapBuilder';
import ExportMapBuilder from '../exportMapBuilder';
import { isExternalModule } from '../core/importType';
import moduleVisitor, { makeOptionsSchema } from 'eslint-module-utils/moduleVisitor';
import docsUrl from '../docsUrl';
Expand Down Expand Up @@ -88,7 +88,7 @@ module.exports = {
return; // ignore type imports
}

const imported = Exports.get(sourceNode.value, context);
const imported = ExportMapBuilder.get(sourceNode.value, context);

if (imported == null) {
return; // no-unresolved territory
Expand Down
4 changes: 2 additions & 2 deletions src/rules/no-deprecated.js
@@ -1,5 +1,5 @@
import declaredScope from 'eslint-module-utils/declaredScope';
import Exports from '../exportMapBuilder';
import ExportMapBuilder from '../exportMapBuilder';
import ExportMap from '../exportMap';
import docsUrl from '../docsUrl';

Expand Down Expand Up @@ -32,7 +32,7 @@ module.exports = {
if (node.type !== 'ImportDeclaration') { return; }
if (node.source == null) { return; } // local export, ignore

const imports = Exports.get(node.source.value, context);
const imports = ExportMapBuilder.get(node.source.value, context);
if (imports == null) { return; }

const moduleDeprecation = imports.doc && imports.doc.tags.find((t) => t.title === 'deprecated');
Expand Down
4 changes: 2 additions & 2 deletions src/rules/no-named-as-default-member.js
Expand Up @@ -4,7 +4,7 @@
* @copyright 2016 Desmond Brand. All rights reserved.
* See LICENSE in root directory for full license.
*/
import Exports from '../exportMapBuilder';
import ExportMapBuilder from '../exportMapBuilder';
import importDeclaration from '../importDeclaration';
import docsUrl from '../docsUrl';

Expand Down Expand Up @@ -36,7 +36,7 @@ module.exports = {
return {
ImportDefaultSpecifier(node) {
const declaration = importDeclaration(context);
const exportMap = Exports.get(declaration.source.value, context);
const exportMap = ExportMapBuilder.get(declaration.source.value, context);
if (exportMap == null) { return; }

if (exportMap.errors.length) {
Expand Down
4 changes: 2 additions & 2 deletions src/rules/no-named-as-default.js
@@ -1,4 +1,4 @@
import Exports from '../exportMapBuilder';
import ExportMapBuilder from '../exportMapBuilder';
import importDeclaration from '../importDeclaration';
import docsUrl from '../docsUrl';

Expand All @@ -20,7 +20,7 @@ module.exports = {

const declaration = importDeclaration(context);

const imports = Exports.get(declaration.source.value, context);
const imports = ExportMapBuilder.get(declaration.source.value, context);
if (imports == null) { return; }

if (imports.errors.length) {
Expand Down
4 changes: 2 additions & 2 deletions src/rules/no-unused-modules.js
Expand Up @@ -13,7 +13,7 @@ import values from 'object.values';
import includes from 'array-includes';
import flatMap from 'array.prototype.flatmap';

import Exports, { recursivePatternCapture } from '../exportMapBuilder';
import ExportMapBuilder, { recursivePatternCapture } from '../exportMapBuilder';
import docsUrl from '../docsUrl';

let FileEnumerator;
Expand Down Expand Up @@ -194,7 +194,7 @@ const prepareImportsAndExports = (srcFiles, context) => {
srcFiles.forEach((file) => {
const exports = new Map();
const imports = new Map();
const currentExports = Exports.get(file, context);
const currentExports = ExportMapBuilder.get(file, context);
if (currentExports) {
const {
dependencies,
Expand Down
60 changes: 30 additions & 30 deletions tests/src/core/getExports.js
Expand Up @@ -4,7 +4,7 @@ import sinon from 'sinon';
import eslintPkg from 'eslint/package.json';
import typescriptPkg from 'typescript/package.json';
import * as tsConfigLoader from 'tsconfig-paths/lib/tsconfig-loader';
import ExportMap from '../../../src/exportMapBuilder';
import ExportMapBuilder from '../../../src/exportMapBuilder';

import * as fs from 'fs';

Expand All @@ -28,7 +28,7 @@ describe('ExportMap', function () {
it('handles ExportAllDeclaration', function () {
let imports;
expect(function () {
imports = ExportMap.get('./export-all', fakeContext);
imports = ExportMapBuilder.get('./export-all', fakeContext);
}).not.to.throw(Error);

expect(imports).to.exist;
Expand All @@ -37,41 +37,41 @@ describe('ExportMap', function () {
});

it('returns a cached copy on subsequent requests', function () {
expect(ExportMap.get('./named-exports', fakeContext))
.to.exist.and.equal(ExportMap.get('./named-exports', fakeContext));
expect(ExportMapBuilder.get('./named-exports', fakeContext))
.to.exist.and.equal(ExportMapBuilder.get('./named-exports', fakeContext));
});

it('does not return a cached copy after modification', (done) => {
const firstAccess = ExportMap.get('./mutator', fakeContext);
const firstAccess = ExportMapBuilder.get('./mutator', fakeContext);
expect(firstAccess).to.exist;

// mutate (update modified time)
const newDate = new Date();
fs.utimes(getFilename('mutator.js'), newDate, newDate, (error) => {
expect(error).not.to.exist;
expect(ExportMap.get('./mutator', fakeContext)).not.to.equal(firstAccess);
expect(ExportMapBuilder.get('./mutator', fakeContext)).not.to.equal(firstAccess);
done();
});
});

it('does not return a cached copy with different settings', () => {
const firstAccess = ExportMap.get('./named-exports', fakeContext);
const firstAccess = ExportMapBuilder.get('./named-exports', fakeContext);
expect(firstAccess).to.exist;

const differentSettings = {
...fakeContext,
parserPath: 'espree',
};

expect(ExportMap.get('./named-exports', differentSettings))
expect(ExportMapBuilder.get('./named-exports', differentSettings))
.to.exist.and
.not.to.equal(firstAccess);
});

it('does not throw for a missing file', function () {
let imports;
expect(function () {
imports = ExportMap.get('./does-not-exist', fakeContext);
imports = ExportMapBuilder.get('./does-not-exist', fakeContext);
}).not.to.throw(Error);

expect(imports).not.to.exist;
Expand All @@ -81,7 +81,7 @@ describe('ExportMap', function () {
it('exports explicit names for a missing file in exports', function () {
let imports;
expect(function () {
imports = ExportMap.get('./exports-missing', fakeContext);
imports = ExportMapBuilder.get('./exports-missing', fakeContext);
}).not.to.throw(Error);

expect(imports).to.exist;
Expand All @@ -92,7 +92,7 @@ describe('ExportMap', function () {
it('finds exports for an ES7 module with babel-eslint', function () {
const path = getFilename('jsx/FooES7.js');
const contents = fs.readFileSync(path, { encoding: 'utf8' });
const imports = ExportMap.parse(
const imports = ExportMapBuilder.parse(
path,
contents,
{ parserPath: 'babel-eslint', settings: {} },
Expand All @@ -112,7 +112,7 @@ describe('ExportMap', function () {
before('parse file', function () {
const path = getFilename('deprecated.js');
const contents = fs.readFileSync(path, { encoding: 'utf8' }).replace(/[\r]\n/g, lineEnding);
imports = ExportMap.parse(path, contents, parseContext);
imports = ExportMapBuilder.parse(path, contents, parseContext);

// sanity checks
expect(imports.errors).to.be.empty;
Expand Down Expand Up @@ -181,7 +181,7 @@ describe('ExportMap', function () {
before('parse file', function () {
const path = getFilename('deprecated-file.js');
const contents = fs.readFileSync(path, { encoding: 'utf8' });
imports = ExportMap.parse(path, contents, parseContext);
imports = ExportMapBuilder.parse(path, contents, parseContext);

// sanity checks
expect(imports.errors).to.be.empty;
Expand Down Expand Up @@ -243,7 +243,7 @@ describe('ExportMap', function () {
it('works with espree & traditional namespace exports', function () {
const path = getFilename('deep/a.js');
const contents = fs.readFileSync(path, { encoding: 'utf8' });
const a = ExportMap.parse(path, contents, espreeContext);
const a = ExportMapBuilder.parse(path, contents, espreeContext);
expect(a.errors).to.be.empty;
expect(a.get('b').namespace).to.exist;
expect(a.get('b').namespace.has('c')).to.be.true;
Expand All @@ -252,7 +252,7 @@ describe('ExportMap', function () {
it('captures namespace exported as default', function () {
const path = getFilename('deep/default.js');
const contents = fs.readFileSync(path, { encoding: 'utf8' });
const def = ExportMap.parse(path, contents, espreeContext);
const def = ExportMapBuilder.parse(path, contents, espreeContext);
expect(def.errors).to.be.empty;
expect(def.get('default').namespace).to.exist;
expect(def.get('default').namespace.has('c')).to.be.true;
Expand All @@ -261,7 +261,7 @@ describe('ExportMap', function () {
it('works with babel-eslint & ES7 namespace exports', function () {
const path = getFilename('deep-es7/a.js');
const contents = fs.readFileSync(path, { encoding: 'utf8' });
const a = ExportMap.parse(path, contents, babelContext);
const a = ExportMapBuilder.parse(path, contents, babelContext);
expect(a.errors).to.be.empty;
expect(a.get('b').namespace).to.exist;
expect(a.get('b').namespace.has('c')).to.be.true;
Expand All @@ -278,7 +278,7 @@ describe('ExportMap', function () {

const path = getFilename('deep/cache-1.js');
const contents = fs.readFileSync(path, { encoding: 'utf8' });
a = ExportMap.parse(path, contents, espreeContext);
a = ExportMapBuilder.parse(path, contents, espreeContext);
expect(a.errors).to.be.empty;

expect(a.get('b').namespace).to.exist;
Expand All @@ -304,25 +304,25 @@ describe('ExportMap', function () {
context('Map API', function () {
context('#size', function () {

it('counts the names', () => expect(ExportMap.get('./named-exports', fakeContext))
it('counts the names', () => expect(ExportMapBuilder.get('./named-exports', fakeContext))
.to.have.property('size', 12));

it('includes exported namespace size', () => expect(ExportMap.get('./export-all', fakeContext))
it('includes exported namespace size', () => expect(ExportMapBuilder.get('./export-all', fakeContext))
.to.have.property('size', 1));

});
});

context('issue #210: self-reference', function () {
it(`doesn't crash`, function () {
expect(() => ExportMap.get('./narcissist', fakeContext)).not.to.throw(Error);
expect(() => ExportMapBuilder.get('./narcissist', fakeContext)).not.to.throw(Error);
});
it(`'has' circular reference`, function () {
expect(ExportMap.get('./narcissist', fakeContext))
expect(ExportMapBuilder.get('./narcissist', fakeContext))
.to.exist.and.satisfy((m) => m.has('soGreat'));
});
it(`can 'get' circular reference`, function () {
expect(ExportMap.get('./narcissist', fakeContext))
expect(ExportMapBuilder.get('./narcissist', fakeContext))
.to.exist.and.satisfy((m) => m.get('soGreat') != null);
});
});
Expand All @@ -335,7 +335,7 @@ describe('ExportMap', function () {

let imports;
before('load imports', function () {
imports = ExportMap.get('./typescript.ts', context);
imports = ExportMapBuilder.get('./typescript.ts', context);
});

it('returns nothing for a TypeScript file', function () {
Expand Down Expand Up @@ -372,7 +372,7 @@ describe('ExportMap', function () {
before('load imports', function () {
this.timeout(20e3); // takes a long time :shrug:
sinon.spy(tsConfigLoader, 'tsConfigLoader');
imports = ExportMap.get('./typescript.ts', context);
imports = ExportMapBuilder.get('./typescript.ts', context);
});
after('clear spies', function () {
tsConfigLoader.tsConfigLoader.restore();
Expand Down Expand Up @@ -414,9 +414,9 @@ describe('ExportMap', function () {
},
};
expect(tsConfigLoader.tsConfigLoader.callCount).to.equal(0);
ExportMap.parse('./baz.ts', 'export const baz = 5', customContext);
ExportMapBuilder.parse('./baz.ts', 'export const baz = 5', customContext);
expect(tsConfigLoader.tsConfigLoader.callCount).to.equal(1);
ExportMap.parse('./baz.ts', 'export const baz = 5', customContext);
ExportMapBuilder.parse('./baz.ts', 'export const baz = 5', customContext);
expect(tsConfigLoader.tsConfigLoader.callCount).to.equal(1);

const differentContext = {
Expand All @@ -426,17 +426,17 @@ describe('ExportMap', function () {
},
};

ExportMap.parse('./baz.ts', 'export const baz = 5', differentContext);
ExportMapBuilder.parse('./baz.ts', 'export const baz = 5', differentContext);
expect(tsConfigLoader.tsConfigLoader.callCount).to.equal(2);
});

it('should cache after parsing for an ambiguous module', function () {
const source = './typescript-declare-module.ts';
const parseSpy = sinon.spy(ExportMap, 'parse');
const parseSpy = sinon.spy(ExportMapBuilder, 'parse');

expect(ExportMap.get(source, context)).to.be.null;
expect(ExportMapBuilder.get(source, context)).to.be.null;

ExportMap.get(source, context);
ExportMapBuilder.get(source, context);

expect(parseSpy.callCount).to.equal(1);

Expand Down

0 comments on commit cc1b19e

Please sign in to comment.