Skip to content

Commit

Permalink
Allow defaults query in preset-env
Browse files Browse the repository at this point in the history
  • Loading branch information
existentialism committed Oct 18, 2018
1 parent e541d60 commit 0a2a20b
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 0 deletions.
8 changes: 8 additions & 0 deletions packages/babel-preset-env/src/targets-parser.js
Expand Up @@ -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;
};

Expand Down Expand Up @@ -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;
Expand Down
@@ -0,0 +1 @@
const test = () => "";
@@ -0,0 +1,12 @@
{
"presets": [
[
"../../../../lib",
{
"targets": {
"browsers": "defaults"
}
}
]
]
}
@@ -0,0 +1,5 @@
"use strict";

var test = function test() {
return "";
};
9 changes: 9 additions & 0 deletions packages/babel-preset-env/test/targets-parser.spec.js
Expand Up @@ -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;

Expand Down

0 comments on commit 0a2a20b

Please sign in to comment.