From 31396b286daadee3c25c4891c8dd31a92d7f0604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Fri, 16 Oct 2020 15:46:49 +0200 Subject: [PATCH] Make `loadPartialConfig`'s options optional (#12200) --- packages/babel-core/src/config/partial.js | 10 ++++++++-- packages/babel-core/test/config-chain.js | 11 +++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/babel-core/src/config/partial.js b/packages/babel-core/src/config/partial.js index e69c9cd4c453..b42b4ec042a3 100644 --- a/packages/babel-core/src/config/partial.js +++ b/packages/babel-core/src/config/partial.js @@ -157,8 +157,14 @@ type LoadPartialConfigOpts = { }; export const loadPartialConfig = gensync<[any], PartialConfig | null>( - function* (inputOpts: LoadPartialConfigOpts): Handler { - const { showIgnoredFiles, ...opts } = inputOpts; + function* (opts?: LoadPartialConfigOpts): Handler { + let showIgnoredFiles = false; + // We only extract showIgnoredFiles if opts is an object, so that + // loadPrivatePartialConfig can throw the appropriate error if it's not. + if (typeof opts === "object" && opts !== null && !Array.isArray(opts)) { + ({ showIgnoredFiles, ...opts } = opts); + } + const result: ?PrivPartialConfig = yield* loadPrivatePartialConfig(opts); if (!result) return null; diff --git a/packages/babel-core/test/config-chain.js b/packages/babel-core/test/config-chain.js index 911e813734fd..167dc1e3bb91 100644 --- a/packages/babel-core/test/config-chain.js +++ b/packages/babel-core/test/config-chain.js @@ -1330,6 +1330,17 @@ describe("buildConfigChain", function () { ]), }); }); + + it("loadPartialConfig can be called with no arguments", () => { + const cwd = process.cwd(); + + try { + process.chdir(fixture("config-files", "babelrc-extended")); + expect(() => babel.loadPartialConfig()).not.toThrow(); + } finally { + process.chdir(cwd); + } + }); }); it("should throw when `test` presents but `filename` is not passed", () => {