From bb92b8697d05401ed2a7fc8c6b4be30e5dfb22ca Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 9 Oct 2014 17:17:12 -0700 Subject: [PATCH] Add isCorePath helper --- src/module-cache.coffee | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/module-cache.coffee b/src/module-cache.coffee index 5e5e3fd1d..d5f08e078 100644 --- a/src/module-cache.coffee +++ b/src/module-cache.coffee @@ -13,6 +13,7 @@ cache = ranges: {} registered: false resourcePath: null + resourcePathWithTrailingSlash: null # isAbsolute is inlined from fs-plus so that fs-plus itself can be required # from this cache. @@ -23,6 +24,9 @@ else isAbsolute = (pathToCheck) -> pathToCheck and pathToCheck[0] is '/' +isCorePath = (pathToCheck) -> + pathToCheck.indexOf(cache.resourcePathWithTrailingSlash) is 0 + loadDependencies = (modulePath, rootPath, rootMetadata, moduleCache) -> fs = require 'fs-plus' @@ -98,14 +102,15 @@ resolveFilePath = (relativePath, parentModule) -> return if relativePath[relativePath.length - 1] is '/' resolvedPath = path.resolve(path.dirname(parentModule.filename), relativePath) - if resolvedPath.indexOf(cache.resourcePath) is 0 - extension = path.extname(resolvedPath) - if extension - return resolvedPath if cache.extensions[extension]?.has(resolvedPath) - else - for extension, paths of cache.extensions - resolvedPathWithExtension = "#{resolvedPath}#{extension}" - return resolvedPathWithExtension if paths.has(resolvedPathWithExtension) + return unless isCorePath(resolvedPath) + + extension = path.extname(resolvedPath) + if extension + return resolvedPath if cache.extensions[extension]?.has(resolvedPath) + else + for extension, paths of cache.extensions + resolvedPathWithExtension = "#{resolvedPath}#{extension}" + return resolvedPathWithExtension if paths.has(resolvedPathWithExtension) return @@ -131,7 +136,7 @@ resolveModulePath = (relativePath, parentModule) -> return unless candidates? for version, resolvedPath of candidates - if Module._cache.hasOwnProperty(resolvedPath) or resolvedPath.indexOf(cache.resourcePath) is 0 + if Module._cache.hasOwnProperty(resolvedPath) or isCorePath(resolvedPath) return resolvedPath if satisfies(version, range) return @@ -214,6 +219,7 @@ exports.register = ({resourcePath, devMode}={}) -> cache.registered = true cache.resourcePath = resourcePath + cache.resourcePathWithTrailingSlash = "#{resourcePath}#{path.sep}" registerBuiltins(devMode) return