From ae3e7cb4a96cddfcf27283fbc882e80ceaa58a00 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 30 Mar 2017 15:18:29 -0500 Subject: [PATCH 1/9] Add check for ArrayBuffer[Symbol.species] (#233) --- .../data/built-in-features.js | 4 +- .../babel-preset-env/data/built-ins.json | 10 +++ .../test/debug-fixtures/builtins/stdout.txt | 1 + .../test/debug-fixtures/electron/stdout.txt | 1 + .../specific-targets/stdout.txt | 1 + .../exclude-regenerator/expected.js | 1 + .../ie-11-built-ins/expected.js | 1 + .../fixtures/preset-options/ios-6/expected.js | 1 + .../use-builtins-all/expected.js | 1 + .../use-builtins-chrome-48/expected.js | 1 + .../use-builtins-chrome-49/expected.js | 1 + .../use-builtins-ie-9/actual.js | 1 + .../use-builtins-ie-9/expected.js | 87 +++++++++++++++++++ .../use-builtins-ie-9/options.json | 12 +++ 14 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/actual.js create mode 100644 experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/expected.js create mode 100644 experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json diff --git a/experimental/babel-preset-env/data/built-in-features.js b/experimental/babel-preset-env/data/built-in-features.js index 66e05b52b6..6073893ba0 100644 --- a/experimental/babel-preset-env/data/built-in-features.js +++ b/experimental/babel-preset-env/data/built-in-features.js @@ -25,11 +25,11 @@ const typedArrayMethods = [ "typed arrays / %TypedArray%.prototype.values", "typed arrays / %TypedArray%.prototype.entries", "typed arrays / %TypedArray%.prototype[Symbol.iterator]", - "typed arrays / %TypedArray%[Symbol.species]" + "typed arrays / %TypedArray%[Symbol.species]", ]; const es2015 = { - // "es6.typed/array-buffer": "typed arrays / ", + "es6.typed.array-buffer": "typed arrays / ArrayBuffer[Symbol.species]", "es6.typed.data-view": "typed arrays / DataView", "es6.typed.int8-array": { features: ["typed arrays / Int8Array"].concat(typedArrayMethods) diff --git a/experimental/babel-preset-env/data/built-ins.json b/experimental/babel-preset-env/data/built-ins.json index 1040f980ce..3c91bbf0f4 100644 --- a/experimental/babel-preset-env/data/built-ins.json +++ b/experimental/babel-preset-env/data/built-ins.json @@ -1,4 +1,14 @@ { + "es6.typed.array-buffer": { + "chrome": 51, + "edge": 13, + "firefox": 48, + "safari": 10, + "node": 6.5, + "ios": 10, + "opera": 38, + "electron": 1.2 + }, "es6.typed.data-view": { "chrome": 5, "opera": 12, diff --git a/experimental/babel-preset-env/test/debug-fixtures/builtins/stdout.txt b/experimental/babel-preset-env/test/debug-fixtures/builtins/stdout.txt index 6c5c4d0b50..40aaad888a 100644 --- a/experimental/babel-preset-env/test/debug-fixtures/builtins/stdout.txt +++ b/experimental/babel-preset-env/test/debug-fixtures/builtins/stdout.txt @@ -35,6 +35,7 @@ Using plugins: syntax-trailing-function-commas {"chrome":54,"ie":10,"node":6} Using polyfills: + es6.typed.array-buffer {"ie":10,"node":6} es6.typed.int8-array {"ie":10,"node":6} es6.typed.uint8-array {"ie":10,"node":6} es6.typed.uint8-clamped-array {"ie":10,"node":6} diff --git a/experimental/babel-preset-env/test/debug-fixtures/electron/stdout.txt b/experimental/babel-preset-env/test/debug-fixtures/electron/stdout.txt index ac5568ef0b..7c2efa828a 100644 --- a/experimental/babel-preset-env/test/debug-fixtures/electron/stdout.txt +++ b/experimental/babel-preset-env/test/debug-fixtures/electron/stdout.txt @@ -22,6 +22,7 @@ Using plugins: syntax-trailing-function-commas {"electron":0.36} Using polyfills: + es6.typed.array-buffer {"electron":0.36} es6.typed.int8-array {"electron":0.36} es6.typed.uint8-array {"electron":0.36} es6.typed.uint8-clamped-array {"electron":0.36} diff --git a/experimental/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt b/experimental/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt index 27609b545d..f2b273e78b 100644 --- a/experimental/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt +++ b/experimental/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt @@ -38,6 +38,7 @@ Using plugins: syntax-trailing-function-commas {"chrome":54,"edge":13,"firefox":49,"ie":10,"ios":9,"safari":7} Using polyfills: + es6.typed.array-buffer {"ie":10,"ios":9,"safari":7} es6.typed.int8-array {"ie":10,"ios":9,"safari":7} es6.typed.uint8-array {"ie":10,"ios":9,"safari":7} es6.typed.uint8-clamped-array {"ie":10,"ios":9,"safari":7} diff --git a/experimental/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/expected.js b/experimental/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/expected.js index 208322c5a7..0a6d1c0670 100644 --- a/experimental/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/expected.js +++ b/experimental/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/expected.js @@ -1,3 +1,4 @@ +import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.data-view"; import "core-js/modules/es6.typed.int8-array"; import "core-js/modules/es6.typed.uint8-array"; diff --git a/experimental/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/expected.js b/experimental/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/expected.js index c010222600..90d772a42e 100644 --- a/experimental/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/expected.js +++ b/experimental/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/expected.js @@ -1,3 +1,4 @@ +import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.int8-array"; import "core-js/modules/es6.typed.uint8-array"; import "core-js/modules/es6.typed.uint8-clamped-array"; diff --git a/experimental/babel-preset-env/test/fixtures/preset-options/ios-6/expected.js b/experimental/babel-preset-env/test/fixtures/preset-options/ios-6/expected.js index 1e0710e125..08cdf3a526 100644 --- a/experimental/babel-preset-env/test/fixtures/preset-options/ios-6/expected.js +++ b/experimental/babel-preset-env/test/fixtures/preset-options/ios-6/expected.js @@ -1,3 +1,4 @@ +import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.int8-array"; import "core-js/modules/es6.typed.uint8-array"; import "core-js/modules/es6.typed.uint8-clamped-array"; diff --git a/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-all/expected.js b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-all/expected.js index faf5265789..66f8810cb2 100644 --- a/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-all/expected.js +++ b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-all/expected.js @@ -1,3 +1,4 @@ +import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.data-view"; import "core-js/modules/es6.typed.int8-array"; import "core-js/modules/es6.typed.uint8-array"; diff --git a/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/expected.js b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/expected.js index a999f88828..3a73a58704 100644 --- a/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/expected.js +++ b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/expected.js @@ -1,3 +1,4 @@ +import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.int8-array"; import "core-js/modules/es6.typed.uint8-array"; import "core-js/modules/es6.typed.uint8-clamped-array"; diff --git a/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/expected.js b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/expected.js index f68f74685e..d4efb4056f 100644 --- a/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/expected.js +++ b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/expected.js @@ -1,3 +1,4 @@ +import "core-js/modules/es6.typed.array-buffer"; import "core-js/modules/es6.typed.int8-array"; import "core-js/modules/es6.typed.uint8-array"; import "core-js/modules/es6.typed.uint8-clamped-array"; diff --git a/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/actual.js b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/actual.js new file mode 100644 index 0000000000..d3984c50aa --- /dev/null +++ b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/actual.js @@ -0,0 +1 @@ +import "babel-polyfill"; diff --git a/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/expected.js b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/expected.js new file mode 100644 index 0000000000..abdda365ad --- /dev/null +++ b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/expected.js @@ -0,0 +1,87 @@ +import "core-js/modules/es6.typed.array-buffer"; +import "core-js/modules/es6.typed.data-view"; +import "core-js/modules/es6.typed.int8-array"; +import "core-js/modules/es6.typed.uint8-array"; +import "core-js/modules/es6.typed.uint8-clamped-array"; +import "core-js/modules/es6.typed.int16-array"; +import "core-js/modules/es6.typed.uint16-array"; +import "core-js/modules/es6.typed.int32-array"; +import "core-js/modules/es6.typed.uint32-array"; +import "core-js/modules/es6.typed.float32-array"; +import "core-js/modules/es6.typed.float64-array"; +import "core-js/modules/es6.map"; +import "core-js/modules/es6.set"; +import "core-js/modules/es6.weak-map"; +import "core-js/modules/es6.weak-set"; +import "core-js/modules/es6.reflect.apply"; +import "core-js/modules/es6.reflect.construct"; +import "core-js/modules/es6.reflect.define-property"; +import "core-js/modules/es6.reflect.delete-property"; +import "core-js/modules/es6.reflect.get"; +import "core-js/modules/es6.reflect.get-own-property-descriptor"; +import "core-js/modules/es6.reflect.get-prototype-of"; +import "core-js/modules/es6.reflect.has"; +import "core-js/modules/es6.reflect.is-extensible"; +import "core-js/modules/es6.reflect.own-keys"; +import "core-js/modules/es6.reflect.prevent-extensions"; +import "core-js/modules/es6.reflect.set"; +import "core-js/modules/es6.reflect.set-prototype-of"; +import "core-js/modules/es6.promise"; +import "core-js/modules/es6.symbol"; +import "core-js/modules/es6.object.assign"; +import "core-js/modules/es6.object.is"; +import "core-js/modules/es6.object.set-prototype-of"; +import "core-js/modules/es6.function.name"; +import "core-js/modules/es6.string.raw"; +import "core-js/modules/es6.string.from-code-point"; +import "core-js/modules/es6.string.code-point-at"; +import "core-js/modules/es6.string.repeat"; +import "core-js/modules/es6.string.starts-with"; +import "core-js/modules/es6.string.ends-with"; +import "core-js/modules/es6.string.includes"; +import "core-js/modules/es6.regexp.flags"; +import "core-js/modules/es6.regexp.match"; +import "core-js/modules/es6.regexp.replace"; +import "core-js/modules/es6.regexp.split"; +import "core-js/modules/es6.regexp.search"; +import "core-js/modules/es6.array.from"; +import "core-js/modules/es6.array.of"; +import "core-js/modules/es6.array.copy-within"; +import "core-js/modules/es6.array.find"; +import "core-js/modules/es6.array.find-index"; +import "core-js/modules/es6.array.fill"; +import "core-js/modules/es6.array.iterator"; +import "core-js/modules/es6.number.is-finite"; +import "core-js/modules/es6.number.is-integer"; +import "core-js/modules/es6.number.is-safe-integer"; +import "core-js/modules/es6.number.is-nan"; +import "core-js/modules/es6.number.epsilon"; +import "core-js/modules/es6.number.min-safe-integer"; +import "core-js/modules/es6.number.max-safe-integer"; +import "core-js/modules/es6.math.acosh"; +import "core-js/modules/es6.math.asinh"; +import "core-js/modules/es6.math.atanh"; +import "core-js/modules/es6.math.cbrt"; +import "core-js/modules/es6.math.clz32"; +import "core-js/modules/es6.math.cosh"; +import "core-js/modules/es6.math.expm1"; +import "core-js/modules/es6.math.fround"; +import "core-js/modules/es6.math.hypot"; +import "core-js/modules/es6.math.imul"; +import "core-js/modules/es6.math.log1p"; +import "core-js/modules/es6.math.log10"; +import "core-js/modules/es6.math.log2"; +import "core-js/modules/es6.math.sign"; +import "core-js/modules/es6.math.sinh"; +import "core-js/modules/es6.math.tanh"; +import "core-js/modules/es6.math.trunc"; +import "core-js/modules/es7.array.includes"; +import "core-js/modules/es7.object.values"; +import "core-js/modules/es7.object.entries"; +import "core-js/modules/es7.object.get-own-property-descriptors"; +import "core-js/modules/es7.string.pad-start"; +import "core-js/modules/es7.string.pad-end"; +import "core-js/modules/web.timers"; +import "core-js/modules/web.immediate"; +import "core-js/modules/web.dom.iterable"; +import "regenerator-runtime/runtime"; \ No newline at end of file diff --git a/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json new file mode 100644 index 0000000000..90a95efcfb --- /dev/null +++ b/experimental/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + ["../../../../lib", { + "targets": { + "ie": 9 + }, + "modules": false, + "useBuiltIns": true, + "modules": false + }] + ] +} From bd944ccf5626c337ef6fe4e3ad14de601b2e829f Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 30 Mar 2017 15:41:16 -0500 Subject: [PATCH 2/9] Update changelog --- experimental/babel-preset-env/CHANGELOG.md | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/experimental/babel-preset-env/CHANGELOG.md b/experimental/babel-preset-env/CHANGELOG.md index e8b65fa505..cadc79ca41 100644 --- a/experimental/babel-preset-env/CHANGELOG.md +++ b/experimental/babel-preset-env/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## v1.3.0 (2017-03-30) + +### :bug: Bug Fix + +- Add check for ArrayBuffer[Symbol.species] ([#233](https://github.com/babel/babel-preset-env/pull/233)) (@existentialism) + +We now properly check for `Symbol.species` support in ArrayBuffer and include the +polyfill if necessary. This should, as a side effect, fix ArrayBuffer-related +errors on IE9. + +### :nail_care: Polish + +- Fill data with electron as a target. ([#229](https://github.com/babel/babel-preset-env/pull/229)) (@yavorsky) + +We've simplified things by adding `electron` as a target instead of doing a bunch of +things at runtime. Electron targets should now also be displayed in the debug output. + +- separate default builtins for platforms ([#226](https://github.com/babel/babel-preset-env/pull/226)) (@restrry) + +If you are targeting the `node` environment exclusively, the always-included web polyfills +(like `dom.iterable`, and a few others) will now no longer be included. + +### :memo: Documentation + + * remove deprecated projects ([#223](https://github.com/babel/babel-preset-env/pull/223)) [skip ci] (@stevemao) + +### :house: Internal + + * npmignore: Add related to build data and codecov. ([#216](https://github.com/babel/babel-preset-env/pull/216)) (@yavorsky) + ## v1.2.2 (2017-03-14) ### :bug: Bug Fix From da97567ee9e1bbda0ccbb42550e473e242810146 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 30 Mar 2017 15:41:24 -0500 Subject: [PATCH 3/9] 1.3.0 --- experimental/babel-preset-env/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/babel-preset-env/package.json b/experimental/babel-preset-env/package.json index bbb661c88b..6a8e03fe49 100644 --- a/experimental/babel-preset-env/package.json +++ b/experimental/babel-preset-env/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-env", - "version": "1.2.2", + "version": "1.3.0", "description": "A Babel preset for each environment.", "author": "Henry Zhu ", "homepage": "https://babeljs.io/", From 4ffe1f2e52c4342a94adab76abe2558d5d0f4b96 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 30 Mar 2017 16:06:57 -0500 Subject: [PATCH 4/9] Revert npmignoring data --- experimental/babel-preset-env/.npmignore | 1 - 1 file changed, 1 deletion(-) diff --git a/experimental/babel-preset-env/.npmignore b/experimental/babel-preset-env/.npmignore index 4dd6ca6d94..af257d4817 100644 --- a/experimental/babel-preset-env/.npmignore +++ b/experimental/babel-preset-env/.npmignore @@ -5,5 +5,4 @@ scripts .eslintignore .travis.yml codecov.yml -data/*.js yarn.lock From 8663c37888c62ee117219de709e159cc78b3e8b6 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 30 Mar 2017 16:08:06 -0500 Subject: [PATCH 5/9] 1.3.1 --- experimental/babel-preset-env/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/babel-preset-env/package.json b/experimental/babel-preset-env/package.json index 6a8e03fe49..d9e82d8c77 100644 --- a/experimental/babel-preset-env/package.json +++ b/experimental/babel-preset-env/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-env", - "version": "1.3.0", + "version": "1.3.1", "description": "A Babel preset for each environment.", "author": "Henry Zhu ", "homepage": "https://babeljs.io/", From 234568cd51dd894be5d56eb2f229a70abf2ba72b Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 30 Mar 2017 17:24:58 -0500 Subject: [PATCH 6/9] 1.3.2 --- experimental/babel-preset-env/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/babel-preset-env/package.json b/experimental/babel-preset-env/package.json index d9e82d8c77..85a5dc980c 100644 --- a/experimental/babel-preset-env/package.json +++ b/experimental/babel-preset-env/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-env", - "version": "1.3.1", + "version": "1.3.2", "description": "A Babel preset for each environment.", "author": "Henry Zhu ", "homepage": "https://babeljs.io/", From 9733e89cd80e19943a26fe69140eacc4587feceb Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Thu, 30 Mar 2017 17:30:06 -0500 Subject: [PATCH 7/9] Add prepublish script --- experimental/babel-preset-env/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/experimental/babel-preset-env/package.json b/experimental/babel-preset-env/package.json index 85a5dc980c..3fd51c63c0 100644 --- a/experimental/babel-preset-env/package.json +++ b/experimental/babel-preset-env/package.json @@ -16,6 +16,7 @@ "dev": "babel -w src -d lib", "fix": "eslint . --fix", "lint": "eslint .", + "prepublish": "npm run build", "test": "npm run build && npm run test-only", "test-ci": "nyc npm run test", "test-only": "mocha ./test --compilers js:babel-register -t 10000" From db1fd15616cef8f7ecc0e4f97e67911f858a68ab Mon Sep 17 00:00:00 2001 From: George Chung Date: Fri, 31 Mar 2017 09:25:32 +0800 Subject: [PATCH 8/9] Fix README: debug option shows info in stdout. (#236) --- experimental/babel-preset-env/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/babel-preset-env/README.md b/experimental/babel-preset-env/README.md index 90cdc34256..1805bdb886 100644 --- a/experimental/babel-preset-env/README.md +++ b/experimental/babel-preset-env/README.md @@ -339,7 +339,7 @@ exports.A = A; } ``` -**stdin** +**stdout** ```sh Using targets: From af2b1621754a5d395520a8b8bd6ef480546d6ead Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Fri, 31 Mar 2017 12:11:26 -0500 Subject: [PATCH 9/9] Add simple smoke-test (#240) --- experimental/babel-preset-env/.gitignore | 2 + experimental/babel-preset-env/.npmignore | 3 + experimental/babel-preset-env/.travis.yml | 7 +- .../babel-preset-env/scripts/smoke-test.js | 69 +++++++++++++++++++ 4 files changed, 79 insertions(+), 2 deletions(-) create mode 100755 experimental/babel-preset-env/scripts/smoke-test.js diff --git a/experimental/babel-preset-env/.gitignore b/experimental/babel-preset-env/.gitignore index c632df2afb..b8733fbb98 100644 --- a/experimental/babel-preset-env/.gitignore +++ b/experimental/babel-preset-env/.gitignore @@ -6,3 +6,5 @@ test/tmp *.log .vscode .nyc_output +tmp +babel-preset-env-*.tgz diff --git a/experimental/babel-preset-env/.npmignore b/experimental/babel-preset-env/.npmignore index af257d4817..bf67f6570e 100644 --- a/experimental/babel-preset-env/.npmignore +++ b/experimental/babel-preset-env/.npmignore @@ -6,3 +6,6 @@ scripts .travis.yml codecov.yml yarn.lock +.nyc_output +.vscode +babel-preset-env-*.tgz diff --git a/experimental/babel-preset-env/.travis.yml b/experimental/babel-preset-env/.travis.yml index 20b64eb31f..568aa88c93 100644 --- a/experimental/babel-preset-env/.travis.yml +++ b/experimental/babel-preset-env/.travis.yml @@ -27,7 +27,8 @@ install: - $PKG_CMD install script: - 'if [ -n "${LINT-}" ]; then $PKG_CMD run lint ; fi' - - 'if [ -z "${LINT-}" ]; then $PKG_CMD run test-ci ; fi' + - 'if [ -n "${SMOKE_TEST-}" ]; then node scripts/smoke-test.js ; fi' + - 'if [ -z "${LINT-}" ] && [ -z "${SMOKE_TEST-}" ]; then $PKG_CMD run test-ci ; fi' matrix: fast_finish: true exclude: @@ -38,5 +39,7 @@ matrix: include: - node_js: "node" env: LINT=true PKG_CMD="npm" + - node_js: "node" + env: SMOKE_TEST=true PKG_CMD="npm" -after_success: 'if [ -z "${LINT-}" ]; then npm run coverage-ci ; fi' +after_success: 'if [ -z "${LINT-}" ] && [ -z "${SMOKE_TEST-}" ]; then npm run coverage-ci ; fi' diff --git a/experimental/babel-preset-env/scripts/smoke-test.js b/experimental/babel-preset-env/scripts/smoke-test.js new file mode 100755 index 0000000000..f845d6da3b --- /dev/null +++ b/experimental/babel-preset-env/scripts/smoke-test.js @@ -0,0 +1,69 @@ +const fs = require("fs-extra"); +const execSync = require("child_process").execSync; +const path = require("path"); +const pkg = require("../package.json"); + +let errorOccurred = false; + +const tempFolderPath = path.join(__dirname, "../tmp"); +const packPath = path.join(__dirname, `../babel-preset-env-${pkg.version}.tgz`); + +try { + console.log("Creating package"); + execSync("npm pack"); + + console.log("Setting up smoke test"); + fs.ensureDir(tempFolderPath); + + fs.writeFileSync( + path.join(tempFolderPath, "package.json"), + ` +{ + "name": "babel-preset-env-smoke-test", + "private": true, + "version": "1.0.0", + "scripts": { + "build": "babel index.js --out-file index.es6" + }, + "dependencies": { + "babel-cli": "*", + "babel-preset-env": "${packPath}" + } +} + `); + + fs.writeFileSync( + path.join(tempFolderPath, ".babelrc"), + ` +{ + "presets": [ + ["env", { + modules: false, + useBuiltIns: true + }] + ] +} + ` + ); + + fs.writeFileSync( + path.join(tempFolderPath, "index.js"), + ` +import "babel-polyfill"; +1 ** 2; + ` + ); + + process.chdir(tempFolderPath); + + console.log("Running smoke test"); + execSync("npm install && npm run build"); +} catch (e) { + errorOccurred = true; +} + +console.log("Cleaning up"); +fs.removeSync(tempFolderPath); +fs.removeSync(packPath); + +process.exit(errorOccurred ? 1 : 0);