From 36f47a9160cdd9c376c8c1ece9bcd6c12ffc83b6 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Fri, 13 Jul 2018 18:17:16 -0700 Subject: [PATCH] Add force option. [closes #501] --- src/package.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/package.js b/src/package.js index cce0d27f5..6d52159ca 100644 --- a/src/package.js +++ b/src/package.js @@ -73,6 +73,7 @@ const defaultOptions = { vars: false }, debug: false, + force: false, mainFields: ["main"], mode: "strict", sourceMap: void 0 @@ -349,6 +350,14 @@ function createOptions(value) { throw new ERR_INVALID_ESM_OPTION("debug", debug) } + const { force } = options + + if (isFlag(force)) { + options.force = !! force + } else { + throw new ERR_INVALID_ESM_OPTION("force", cache) + } + const defaultMainFields = defaultOptions.mainFields let { mainFields } = options @@ -418,7 +427,14 @@ function findRoot(dirPath) { } function getInfo(dirPath, force) { - let pkg + const defaultPkg = Package.state.default + + let pkg = null + + if (defaultPkg && + defaultPkg.options.force === true) { + return pkg + } if (Reflect.has(Package.state.cache, dirPath)) { pkg = Package.state.cache[dirPath] @@ -518,6 +534,7 @@ function readInfo(dirPath, force) { } finally { moduleState.parseOnly = parseOnly moduleState.parsing = parsing + Package.state.cache[dirPath] = null } } }