diff --git a/README.md b/README.md index 37cfa6f..7744b7b 100644 --- a/README.md +++ b/README.md @@ -95,12 +95,13 @@ From the command line, the feature sets are provided to the `-f` or `--feature` |`firefox`|This feature set represents Firefox 54+[1](#note-1)| |`ie11`|This feature set represents Internet Explorer 11| |`ios`|This feature set represents iOS 10.3+[2](#note-2)| -|`node`|This feature set represents Node.js 7+[2](#note-2)| +|`node`|This feature set represents Node.js 6/7[2](#note-2)| +|`node8`|This feature set represents Node.js 8+| |`safari`|This feature set represents Safari 10+[2](#note-2)| [1]: Many of these features were present in earlier versions, but the specific version was the GA release at the time of writing when this was validated. -[2]: At least on of the features was not present in previous releases. +[2]: At least one of the features was not present in previous releases. An example of generating a build that _hardwires_ features for Microsoft Edge and Chrome, you would use the following on the command line: diff --git a/src/features/android.json b/src/features/android.json index 6bd2c8b..d69194b 100644 --- a/src/features/android.json +++ b/src/features/android.json @@ -1,45 +1,35 @@ { "arraybuffer": true, "blob": true, - "microtasks": true, + "dom-mutationobserver": true, "es-observable": false, - "es6-array-copywithin": true, + "es2017-object": true, + "es2017-string": true, + "es6-array": true, "es6-array-fill": true, - "es6-array-find": true, - "es6-array-findindex": true, - "es6-array-from": true, - "es6-array-of": true, - "es6-object-assign": true, "es6-map": true, - "es6-math-acosh": true, - "es6-math-clz32": true, + "es6-math": true, "es6-math-imul": true, + "es6-object": true, "es6-promise": true, "es6-set": true, - "es6-string-codepointat": true, - "es6-string-endswith": true, - "es6-string-fromcodepoint": true, - "es6-string-includes": true, - "es6-string-normalize": true, - "es6-string-padstart": true, - "es6-string-padend": true, + "es6-string": true, "es6-string-raw": true, - "es6-string-repeat": true, - "es6-string-startswith": true, "es6-symbol": true, "es6-weakmap": true, - "es7-array-includes": true, + "es7-array": true, "fetch": true, "filereader": true, "float32array": true, "formdata": true, "host-node": false, "host-browser": true, + "microtasks": true, "node-buffer": false, "object-assign": true, "postmessage": true, "raf": true, - "setimmediate": true, + "setimmediate": false, "xhr": true, "xhr2": true } diff --git a/src/features/chrome.json b/src/features/chrome.json index 6bd2c8b..d69194b 100644 --- a/src/features/chrome.json +++ b/src/features/chrome.json @@ -1,45 +1,35 @@ { "arraybuffer": true, "blob": true, - "microtasks": true, + "dom-mutationobserver": true, "es-observable": false, - "es6-array-copywithin": true, + "es2017-object": true, + "es2017-string": true, + "es6-array": true, "es6-array-fill": true, - "es6-array-find": true, - "es6-array-findindex": true, - "es6-array-from": true, - "es6-array-of": true, - "es6-object-assign": true, "es6-map": true, - "es6-math-acosh": true, - "es6-math-clz32": true, + "es6-math": true, "es6-math-imul": true, + "es6-object": true, "es6-promise": true, "es6-set": true, - "es6-string-codepointat": true, - "es6-string-endswith": true, - "es6-string-fromcodepoint": true, - "es6-string-includes": true, - "es6-string-normalize": true, - "es6-string-padstart": true, - "es6-string-padend": true, + "es6-string": true, "es6-string-raw": true, - "es6-string-repeat": true, - "es6-string-startswith": true, "es6-symbol": true, "es6-weakmap": true, - "es7-array-includes": true, + "es7-array": true, "fetch": true, "filereader": true, "float32array": true, "formdata": true, "host-node": false, "host-browser": true, + "microtasks": true, "node-buffer": false, "object-assign": true, "postmessage": true, "raf": true, - "setimmediate": true, + "setimmediate": false, "xhr": true, "xhr2": true } diff --git a/src/features/edge.json b/src/features/edge.json index 6bd2c8b..b799d75 100644 --- a/src/features/edge.json +++ b/src/features/edge.json @@ -1,40 +1,30 @@ { "arraybuffer": true, "blob": true, - "microtasks": true, + "dom-mutationobserver": true, "es-observable": false, - "es6-array-copywithin": true, + "es2017-object": true, + "es2017-string": true, + "es6-array": true, "es6-array-fill": true, - "es6-array-find": true, - "es6-array-findindex": true, - "es6-array-from": true, - "es6-array-of": true, - "es6-object-assign": true, "es6-map": true, - "es6-math-acosh": true, - "es6-math-clz32": true, + "es6-math": true, "es6-math-imul": true, + "es6-object": true, "es6-promise": true, "es6-set": true, - "es6-string-codepointat": true, - "es6-string-endswith": true, - "es6-string-fromcodepoint": true, - "es6-string-includes": true, - "es6-string-normalize": true, - "es6-string-padstart": true, - "es6-string-padend": true, + "es6-string": true, "es6-string-raw": true, - "es6-string-repeat": true, - "es6-string-startswith": true, "es6-symbol": true, "es6-weakmap": true, - "es7-array-includes": true, + "es7-array": true, "fetch": true, "filereader": true, "float32array": true, "formdata": true, "host-node": false, "host-browser": true, + "microtasks": true, "node-buffer": false, "object-assign": true, "postmessage": true, diff --git a/src/features/firefox.json b/src/features/firefox.json index 6bd2c8b..d69194b 100644 --- a/src/features/firefox.json +++ b/src/features/firefox.json @@ -1,45 +1,35 @@ { "arraybuffer": true, "blob": true, - "microtasks": true, + "dom-mutationobserver": true, "es-observable": false, - "es6-array-copywithin": true, + "es2017-object": true, + "es2017-string": true, + "es6-array": true, "es6-array-fill": true, - "es6-array-find": true, - "es6-array-findindex": true, - "es6-array-from": true, - "es6-array-of": true, - "es6-object-assign": true, "es6-map": true, - "es6-math-acosh": true, - "es6-math-clz32": true, + "es6-math": true, "es6-math-imul": true, + "es6-object": true, "es6-promise": true, "es6-set": true, - "es6-string-codepointat": true, - "es6-string-endswith": true, - "es6-string-fromcodepoint": true, - "es6-string-includes": true, - "es6-string-normalize": true, - "es6-string-padstart": true, - "es6-string-padend": true, + "es6-string": true, "es6-string-raw": true, - "es6-string-repeat": true, - "es6-string-startswith": true, "es6-symbol": true, "es6-weakmap": true, - "es7-array-includes": true, + "es7-array": true, "fetch": true, "filereader": true, "float32array": true, "formdata": true, "host-node": false, "host-browser": true, + "microtasks": true, "node-buffer": false, "object-assign": true, "postmessage": true, "raf": true, - "setimmediate": true, + "setimmediate": false, "xhr": true, "xhr2": true } diff --git a/src/features/ie11.json b/src/features/ie11.json index 446655e..6b25fac 100644 --- a/src/features/ie11.json +++ b/src/features/ie11.json @@ -1,40 +1,30 @@ { "arraybuffer": true, "blob": true, - "microtasks": true, + "dom-mutationobserver": true, "es-observable": false, - "es6-array-copywithin": false, + "es2017-object": false, + "es2017-string": false, + "es6-array": false, "es6-array-fill": false, - "es6-array-find": false, - "es6-array-findindex": false, - "es6-array-from": false, - "es6-array-of": false, - "es6-object-assign": false, "es6-map": false, - "es6-math-acosh": false, - "es6-math-clz32": false, + "es6-math": false, "es6-math-imul": false, + "es6-object": false, "es6-promise": false, "es6-set": false, - "es6-string-codepointat": false, - "es6-string-endswith": false, - "es6-string-fromcodepoint": false, - "es6-string-includes": false, - "es6-string-normalize": false, - "es6-string-padstart": false, - "es6-string-padend": false, + "es6-string": false, "es6-string-raw": false, - "es6-string-repeat": false, - "es6-string-startswith": false, "es6-symbol": false, "es6-weakmap": false, - "es7-array-includes": false, + "es7-array": false, "fetch": false, "filereader": true, "float32array": true, - "formdata": true, + "formdata": false, "host-node": false, "host-browser": true, + "microtasks": true, "node-buffer": false, "object-assign": false, "postmessage": true, diff --git a/src/features/ios.json b/src/features/ios.json index 6bd2c8b..92e0d46 100644 --- a/src/features/ios.json +++ b/src/features/ios.json @@ -1,45 +1,35 @@ { "arraybuffer": true, "blob": true, - "microtasks": true, + "dom-mutationobserver": true, "es-observable": false, - "es6-array-copywithin": true, + "es2017-object": false, + "es2017-string": false, + "es6-array": true, "es6-array-fill": true, - "es6-array-find": true, - "es6-array-findindex": true, - "es6-array-from": true, - "es6-array-of": true, - "es6-object-assign": true, "es6-map": true, - "es6-math-acosh": true, - "es6-math-clz32": true, + "es6-math": true, "es6-math-imul": true, + "es6-object": true, "es6-promise": true, "es6-set": true, - "es6-string-codepointat": true, - "es6-string-endswith": true, - "es6-string-fromcodepoint": true, - "es6-string-includes": true, - "es6-string-normalize": true, - "es6-string-padstart": true, - "es6-string-padend": true, + "es6-string": true, "es6-string-raw": true, - "es6-string-repeat": true, - "es6-string-startswith": true, "es6-symbol": true, "es6-weakmap": true, - "es7-array-includes": true, + "es7-array": false, "fetch": true, "filereader": true, "float32array": true, "formdata": true, "host-node": false, "host-browser": true, + "microtasks": true, "node-buffer": false, "object-assign": true, "postmessage": true, "raf": true, - "setimmediate": true, + "setimmediate": false, "xhr": true, "xhr2": true } diff --git a/src/features/node.json b/src/features/node.json index 3abcab4..d84e5ed 100644 --- a/src/features/node.json +++ b/src/features/node.json @@ -1,44 +1,34 @@ { "arraybuffer": true, "blob": true, - "microtasks": true, + "dom-mutationobserver": false, "es-observable": false, - "es6-array-copywithin": true, + "es2017-object": false, + "es2017-string": false, + "es6-array": true, "es6-array-fill": true, - "es6-array-find": true, - "es6-array-findindex": true, - "es6-array-from": true, - "es6-array-of": true, - "es6-object-assign": true, "es6-map": true, - "es6-math-acosh": true, - "es6-math-clz32": true, + "es6-math": true, "es6-math-imul": true, + "es6-object": true, "es6-promise": true, "es6-set": true, - "es6-string-codepointat": true, - "es6-string-endswith": true, - "es6-string-fromcodepoint": true, - "es6-string-includes": true, - "es6-string-normalize": true, - "es6-string-padstart": true, - "es6-string-padend": true, + "es6-string": true, "es6-string-raw": true, - "es6-string-repeat": true, - "es6-string-startswith": true, "es6-symbol": true, "es6-weakmap": true, - "es7-array-includes": true, - "fetch": true, - "filereader": true, + "es7-array": true, + "fetch": false, + "filereader": false, "float32array": true, - "formdata": true, + "formdata": false, "host-node": true, "host-browser": false, + "microtasks": true, "node-buffer": true, "object-assign": true, - "postmessage": true, - "raf": true, + "postmessage": false, + "raf": false, "setimmediate": true, "xhr": false, "xhr2": false diff --git a/src/features/node8.json b/src/features/node8.json new file mode 100644 index 0000000..71a4e32 --- /dev/null +++ b/src/features/node8.json @@ -0,0 +1,35 @@ +{ + "arraybuffer": true, + "blob": true, + "dom-mutationobserver": false, + "es-observable": false, + "es2017-object": true, + "es2017-string": true, + "es6-array": true, + "es6-array-fill": true, + "es6-map": true, + "es6-math": true, + "es6-math-imul": true, + "es6-object": true, + "es6-promise": true, + "es6-set": true, + "es6-string": true, + "es6-string-raw": true, + "es6-symbol": true, + "es6-weakmap": true, + "es7-array": true, + "fetch": false, + "filereader": false, + "float32array": true, + "formdata": false, + "host-node": true, + "host-browser": false, + "microtasks": true, + "node-buffer": true, + "object-assign": true, + "postmessage": false, + "raf": false, + "setimmediate": true, + "xhr": false, + "xhr2": false +} diff --git a/src/features/safari.json b/src/features/safari.json index 6bd2c8b..01b9ea3 100644 --- a/src/features/safari.json +++ b/src/features/safari.json @@ -1,45 +1,35 @@ { "arraybuffer": true, "blob": true, - "microtasks": true, + "dom-mutationobserver": true, "es-observable": false, - "es6-array-copywithin": true, + "es2017-object": false, + "es2017-string": true, + "es6-array": true, "es6-array-fill": true, - "es6-array-find": true, - "es6-array-findindex": true, - "es6-array-from": true, - "es6-array-of": true, - "es6-object-assign": true, "es6-map": true, - "es6-math-acosh": true, - "es6-math-clz32": true, + "es6-math": true, "es6-math-imul": true, + "es6-object": true, "es6-promise": true, "es6-set": true, - "es6-string-codepointat": true, - "es6-string-endswith": true, - "es6-string-fromcodepoint": true, - "es6-string-includes": true, - "es6-string-normalize": true, - "es6-string-padstart": true, - "es6-string-padend": true, + "es6-string": true, "es6-string-raw": true, - "es6-string-repeat": true, - "es6-string-startswith": true, "es6-symbol": true, "es6-weakmap": true, - "es7-array-includes": true, + "es7-array": true, "fetch": true, "filereader": true, "float32array": true, "formdata": true, "host-node": false, "host-browser": true, + "microtasks": true, "node-buffer": false, "object-assign": true, "postmessage": true, "raf": true, - "setimmediate": true, + "setimmediate": false, "xhr": true, "xhr2": true } diff --git a/src/main.ts b/src/main.ts index fe6638d..22c2a1c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -209,7 +209,7 @@ const command: Command = { options('f', { alias: 'features', - describe: 'Features sets to optimize the build with\n\nValid values are: android, chrome, edge, firefox, ie11, ios, node, safari', + describe: 'Features sets to optimize the build with\n\nValid values are: android, chrome, edge, firefox, ie11, ios, node, node8, safari', type: 'array' }); }, diff --git a/tests/unit/getFeatures.ts b/tests/unit/getFeatures.ts index ef71854..670e8de 100644 --- a/tests/unit/getFeatures.ts +++ b/tests/unit/getFeatures.ts @@ -14,40 +14,30 @@ registerSuite({ assert.deepEqual(getFeatures({ features: 'ie11' }), { 'arraybuffer': true, 'blob': true, - 'microtasks': true, + 'dom-mutationobserver': true, 'es-observable': false, - 'es6-array-copywithin': false, + 'es2017-object': false, + 'es2017-string': false, + 'es6-array': false, 'es6-array-fill': false, - 'es6-array-find': false, - 'es6-array-findindex': false, - 'es6-array-from': false, - 'es6-array-of': false, - 'es6-object-assign': false, 'es6-map': false, - 'es6-math-acosh': false, - 'es6-math-clz32': false, + 'es6-math': false, 'es6-math-imul': false, + 'es6-object': false, 'es6-promise': false, 'es6-set': false, - 'es6-string-codepointat': false, - 'es6-string-endswith': false, - 'es6-string-fromcodepoint': false, - 'es6-string-includes': false, - 'es6-string-normalize': false, - 'es6-string-padstart': false, - 'es6-string-padend': false, + 'es6-string': false, 'es6-string-raw': false, - 'es6-string-repeat': false, - 'es6-string-startswith': false, 'es6-symbol': false, 'es6-weakmap': false, - 'es7-array-includes': false, + 'es7-array': false, 'fetch': false, 'filereader': true, 'float32array': true, - 'formdata': true, + 'formdata': false, 'host-node': false, 'host-browser': true, + 'microtasks': true, 'node-buffer': false, 'object-assign': false, 'postmessage': true, @@ -62,13 +52,13 @@ registerSuite({ assert.deepEqual(getFeatures({ features: [ 'ie11', 'node' ] }), { arraybuffer: true, blob: true, + 'es2017-object': false, + 'es2017-string': false, 'es-observable': false, - filereader: true, + fetch: false, float32array: true, - formdata: true, + formdata: false, microtasks: true, - postmessage: true, - raf: true, setimmediate: true }); },