diff --git a/src/core/importType.js b/src/core/importType.js index 23bc6350d..c196ecd39 100644 --- a/src/core/importType.js +++ b/src/core/importType.js @@ -13,8 +13,9 @@ export function isAbsolute(name) { } export function isBuiltIn(name, settings) { + const baseModule = name.split('/')[0] const extras = (settings && settings['import/core-modules']) || [] - return builtinModules.indexOf(name) !== -1 || extras.indexOf(name) > -1 + return builtinModules.indexOf(baseModule) !== -1 || extras.indexOf(baseModule) > -1 } function isExternalPath(path, name, settings) { diff --git a/tests/src/core/importType.js b/tests/src/core/importType.js index 5b63910af..e5e6f85ea 100644 --- a/tests/src/core/importType.js +++ b/tests/src/core/importType.js @@ -5,7 +5,7 @@ import importType from 'core/importType' import { testContext } from '../utils' -describe('importType(name)', function () { +describe.only('importType(name)', function () { const context = testContext() it("should return 'absolute' for paths starting with a /", function() { @@ -74,6 +74,11 @@ describe('importType(name)', function () { expect(importType('electron', electronContext)).to.equal('builtin') }) + it("should return 'builtin' for resources inside additional core modules", function() { + const electronContext = testContext({ 'import/core-modules': ['electron'] }) + expect(importType('electron/some/path/to/resource.json', electronContext)).to.equal('builtin') + }) + it("should return 'external' for module from 'node_modules' with default config", function() { expect(importType('builtin-modules', context)).to.equal('external') })