From 99a54bafab5710b32fddb90136c7bbf4325ad1c4 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 18 Oct 2018 11:46:06 -0500 Subject: [PATCH] Allow `defaults` query in preset-env --- packages/babel-preset-env/src/targets-parser.js | 8 ++++++++ packages/babel-preset-env/test/targets-parser.spec.js | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/packages/babel-preset-env/src/targets-parser.js b/packages/babel-preset-env/src/targets-parser.js index c2a446d7ea84..ad165a6d1a65 100644 --- a/packages/babel-preset-env/src/targets-parser.js +++ b/packages/babel-preset-env/src/targets-parser.js @@ -50,6 +50,13 @@ const validateBrowsers = browsers => { typeof browsers === "undefined" || isBrowsersQueryValid(browsers), `Invalid Option: '${browsers}' is not a valid browserslist query`, ); + + // Since we overwrite browserslist.defaults, let's special case + // when a user actually wants `defaults`. + if (browsers === "defaults") { + return browserslistDefaults; + } + return browsers; }; @@ -176,6 +183,7 @@ const getTargets = (targets: Object = {}, options: Object = {}): Targets => { // Parse browsers target via browserslist const browsersquery = validateBrowsers(targets.browsers); + const shouldParseBrowsers = !!targets.browsers; const shouldSearchForConfig = !options.ignoreBrowserslistConfig && !Object.keys(targets).length; diff --git a/packages/babel-preset-env/test/targets-parser.spec.js b/packages/babel-preset-env/test/targets-parser.spec.js index fe6e2fac314a..f87cc5cfd42f 100644 --- a/packages/babel-preset-env/test/targets-parser.spec.js +++ b/packages/babel-preset-env/test/targets-parser.spec.js @@ -20,6 +20,15 @@ describe("getTargets", () => { }); }); + it("allows 'defaults' query", () => { + const browserslistDefaults = browserslist.defaults; + + const expected = getTargets({ browsers: browserslistDefaults }); + const actual = getTargets({ browsers: "defaults" }); + + expect(actual).toEqual(expected); + }); + it("does not clobber browserslists defaults", () => { const browserslistDefaults = browserslist.defaults;