From 43e40f93ee18f555c6dbbe23c33076b8a2532830 Mon Sep 17 00:00:00 2001 From: Florent Detry Date: Thu, 3 Aug 2017 15:56:58 +0200 Subject: [PATCH 1/3] use rollup-plugin-babel --- .babelrc | 6 ++++++ karma.conf.js | 8 +------- package.json | 8 +++++--- rollup.config.js | 8 +++----- 4 files changed, 15 insertions(+), 15 deletions(-) create mode 100644 .babelrc diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..7d235f9 --- /dev/null +++ b/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": ["es2015"], + "plugins": [ + ["transform-react-jsx", { "pragma": "h" }] + ] +} diff --git a/karma.conf.js b/karma.conf.js index 7a11315..8049869 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -22,13 +22,7 @@ module.exports = function(config) { rules: [{ test: /\.jsx?$/, exclude: /node_modules/, - loader: 'babel-loader', - options: { - presets: ['es2015', 'stage-0'], - plugins: [ - ['transform-react-jsx', { pragma: 'h' }] - ] - } + loader: 'babel-loader' }] }, devtool: 'inline-source-map' diff --git a/package.json b/package.json index bf5c4b0..769a033 100644 --- a/package.json +++ b/package.json @@ -52,8 +52,9 @@ "babel-preset-es2015": "^6.9.0", "babel-preset-es2015-minimal-rollup": "^2.0.0", "babel-preset-stage-0": "^6.5.0", + "babelrc-rollup": "^3.0.0", "chai": "^4.0.2", - "chai-as-promised": "^6.0.0", + "chai-as-promised": "^7.1.1", "chai-subset": "^1.2.2", "diff": "^3.2.0", "documentation": "^4.0.0-rc.1", @@ -81,8 +82,8 @@ "preact": "^7.2.1", "preact-jsx-chai": "^2.2.1", "rimraf": "^2.5.4", - "rollup": "^0.42.0", - "rollup-plugin-babel": "^2.4.0", + "rollup": "^0.45.2", + "rollup-plugin-babel": "^2.7.1", "rollup-plugin-buble": "^0.15.0", "rollup-plugin-memory": "^2.0.0", "sinon": "^2.3.2", @@ -92,6 +93,7 @@ "webpack": "^2.6.1" }, "dependencies": { + "babelrc-rollup": "^3.0.0", "dlv": "^1.0.2" }, "peerDependencies": { diff --git a/rollup.config.js b/rollup.config.js index cf7968b..e3f15fa 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,5 +1,6 @@ -import buble from 'rollup-plugin-buble'; +import babel from 'rollup-plugin-babel'; import memory from 'rollup-plugin-memory'; +import babelrc from 'babelrc-rollup' export default { useStrict: false, @@ -17,9 +18,6 @@ export default { path: 'src/entry.js', contents: "export { default } from './index';" }), - buble({ - jsx: 'h', - objectAssign: 'assign' - }) + babel(babelrc()) ] }; From d0fd5c5fc0ba31782b0fe50039c20e1aedf8e200 Mon Sep 17 00:00:00 2001 From: Florent Detry Date: Thu, 3 Aug 2017 16:08:24 +0200 Subject: [PATCH 2/3] Clean package.json --- package.json | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 769a033..5dc15f6 100644 --- a/package.json +++ b/package.json @@ -53,10 +53,8 @@ "babel-preset-es2015-minimal-rollup": "^2.0.0", "babel-preset-stage-0": "^6.5.0", "babelrc-rollup": "^3.0.0", - "chai": "^4.0.2", + "chai": "^4.1.0", "chai-as-promised": "^7.1.1", - "chai-subset": "^1.2.2", - "diff": "^3.2.0", "documentation": "^4.0.0-rc.1", "documentation-theme-default": "^3.0.0-beta1", "eslint": "^3.19.0", @@ -78,22 +76,19 @@ "mkdirp": "^0.5.1", "mocha": "^3.4.2", "npm-run-all": "^4.0.2", - "phantomjs-prebuilt": "^2.1.7", "preact": "^7.2.1", "preact-jsx-chai": "^2.2.1", "rimraf": "^2.5.4", "rollup": "^0.45.2", "rollup-plugin-babel": "^2.7.1", - "rollup-plugin-buble": "^0.15.0", "rollup-plugin-memory": "^2.0.0", - "sinon": "^2.3.2", - "sinon-chai": "^2.8.0", + "sinon": "^2.4.1", + "sinon-chai": "^2.12.0", "strip-json-comments-cli": "^1.0.1", "uglify-js": "^2.8.28", "webpack": "^2.6.1" }, "dependencies": { - "babelrc-rollup": "^3.0.0", "dlv": "^1.0.2" }, "peerDependencies": { From 64c65a0d85ccf52f2a24628e0f39a0292371064c Mon Sep 17 00:00:00 2001 From: Bill Neff Date: Fri, 4 Aug 2017 12:34:31 -0400 Subject: [PATCH 3/3] rollup-babel use babel-plugin-transform-object-assign so we only polyfill Object.assign once; remove internal ponyfill --- .babelrc | 3 ++- package.json | 1 + src/components/intl-provider.js | 4 ++-- src/lib/translate-mapping.js | 4 ++-- src/lib/util.js | 14 +------------- 5 files changed, 8 insertions(+), 18 deletions(-) diff --git a/.babelrc b/.babelrc index 7d235f9..f5f9a04 100644 --- a/.babelrc +++ b/.babelrc @@ -1,6 +1,7 @@ { "presets": ["es2015"], "plugins": [ - ["transform-react-jsx", { "pragma": "h" }] + "transform-object-assign", + ["transform-react-jsx", { "pragma": "h", "useBuiltIns": true }] ] } diff --git a/package.json b/package.json index 5dc15f6..58fc451 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "babel-core": "^6.25.0", "babel-eslint": "^7.2.3", "babel-loader": "^7.0.0", + "babel-plugin-transform-object-assign": "^6.22.0", "babel-plugin-transform-react-jsx": "^6.8.0", "babel-polyfill": "^6.9.1", "babel-preset-es2015": "^6.9.0", diff --git a/src/components/intl-provider.js b/src/components/intl-provider.js index 01f2bd5..91a6fe4 100644 --- a/src/components/intl-provider.js +++ b/src/components/intl-provider.js @@ -1,5 +1,5 @@ import { h, Component } from 'preact'; -import { assign, deepAssign } from '../lib/util'; +import { deepAssign } from '../lib/util'; const URL_FLAG = /[?&#]intl=show/; @@ -35,7 +35,7 @@ const URL_FLAG = /[?&#]intl=show/; export class IntlProvider extends Component { getChildContext() { let { scope, definition, mark } = this.props, - intl = assign({}, this.context.intl || {}); + intl = Object.assign({}, this.context.intl || {}); // set active scope for the tree if given if (scope) intl.scope = scope; diff --git a/src/lib/translate-mapping.js b/src/lib/translate-mapping.js index 3eb5691..1825a90 100644 --- a/src/lib/translate-mapping.js +++ b/src/lib/translate-mapping.js @@ -1,4 +1,4 @@ -import { assign, select } from './util'; +import { select } from './util'; import translate from './translate'; import { Text } from '../components/text'; @@ -27,7 +27,7 @@ export default function translateMapping(props, intl, onlyTextNodes) { } else if (def.nodeName===Text) { // it's a , just grab its props: - def = assign({ + def = Object.assign({ fallback: def.children && def.children[0] }, def.attributes); out[name] = translate(def.id, intl.scope, intl.dictionary, def.fields, def.plural, def.fallback); diff --git a/src/lib/util.js b/src/lib/util.js index 7706135..ef88f14 100644 --- a/src/lib/util.js +++ b/src/lib/util.js @@ -10,7 +10,7 @@ export function defined(obj) { * @private */ export function deepAssign(target, source) { - let out = assign({}, target); + let out = Object.assign({}, target); for (let i in source) { if (source.hasOwnProperty(i)) { if (target[i] && source[i] && typeof target[i]==='object' && typeof source[i]==='object') { @@ -24,18 +24,6 @@ export function deepAssign(target, source) { return out; } - -/** Object.assign() ponyfill - * @private - */ -export function assign(obj, props) { - for (let i in props) if (props.hasOwnProperty(i)) { - obj[i] = props[i]; - } - return obj; -} - - /** select('foo,bar') creates a mapping: `{ foo, bar }` * @private */