From 5e5aaca55912b19adead80780872bc9b42c235a6 Mon Sep 17 00:00:00 2001 From: Oleg Isonen Date: Sun, 22 Sep 2019 20:05:46 +0200 Subject: [PATCH 1/3] fix fallbacks support in jss-plugin-vendor-prefixer --- packages/css-jss/.size-snapshot.json | 12 +++++----- .../.size-snapshot.json | 24 +++++++++---------- .../jss-plugin-vendor-prefixer/src/index.js | 15 ++++++++---- .../src/index.test.js | 18 ++++++++++++++ .../jss-preset-default/.size-snapshot.json | 12 +++++----- packages/jss-starter-kit/.size-snapshot.json | 12 +++++----- packages/react-jss/.size-snapshot.json | 12 +++++----- 7 files changed, 65 insertions(+), 40 deletions(-) diff --git a/packages/css-jss/.size-snapshot.json b/packages/css-jss/.size-snapshot.json index aeca99d4b..2a3c3d5f5 100644 --- a/packages/css-jss/.size-snapshot.json +++ b/packages/css-jss/.size-snapshot.json @@ -1,13 +1,13 @@ { "dist/css-jss.js": { - "bundled": 57635, - "minified": 20287, - "gzipped": 6833 + "bundled": 57848, + "minified": 20363, + "gzipped": 6871 }, "dist/css-jss.min.js": { - "bundled": 56873, - "minified": 19825, - "gzipped": 6619 + "bundled": 57086, + "minified": 19901, + "gzipped": 6656 }, "dist/css-jss.cjs.js": { "bundled": 2919, diff --git a/packages/jss-plugin-vendor-prefixer/.size-snapshot.json b/packages/jss-plugin-vendor-prefixer/.size-snapshot.json index f8ee37ef8..3bac1ac25 100644 --- a/packages/jss-plugin-vendor-prefixer/.size-snapshot.json +++ b/packages/jss-plugin-vendor-prefixer/.size-snapshot.json @@ -1,23 +1,23 @@ { "dist/jss-plugin-vendor-prefixer.js": { - "bundled": 17778, - "minified": 5702, - "gzipped": 2224 + "bundled": 17991, + "minified": 5778, + "gzipped": 2255 }, "dist/jss-plugin-vendor-prefixer.min.js": { - "bundled": 17778, - "minified": 5702, - "gzipped": 2224 + "bundled": 17991, + "minified": 5778, + "gzipped": 2255 }, "dist/jss-plugin-vendor-prefixer.cjs.js": { - "bundled": 1375, - "minified": 627, - "gzipped": 360 + "bundled": 1574, + "minified": 703, + "gzipped": 406 }, "dist/jss-plugin-vendor-prefixer.esm.js": { - "bundled": 1325, - "minified": 574, - "gzipped": 319, + "bundled": 1524, + "minified": 650, + "gzipped": 366, "treeshaked": { "rollup": { "code": 31, diff --git a/packages/jss-plugin-vendor-prefixer/src/index.js b/packages/jss-plugin-vendor-prefixer/src/index.js index 1aeac45e1..d1db12530 100644 --- a/packages/jss-plugin-vendor-prefixer/src/index.js +++ b/packages/jss-plugin-vendor-prefixer/src/index.js @@ -15,12 +15,13 @@ export default function jssVendorPrefixer(): Plugin { } } - function onProcessStyle(style, rule) { - if (rule.type !== 'style') return style - + function prefixStyle(style) { for (const prop in style) { const value = style[prop] - + if (prop === 'fallbacks' && Array.isArray(value)) { + style[prop] = value.map(prefixStyle) + continue + } let changeProp = false const supportedProp = vendor.supportedProperty(prop) if (supportedProp && supportedProp !== prop) changeProp = true @@ -38,6 +39,12 @@ export default function jssVendorPrefixer(): Plugin { return style } + function onProcessStyle(style, rule) { + if (rule.type !== 'style') return style + + return prefixStyle(style) + } + function onChangeValue(value, prop) { return vendor.supportedValue(prop, toCssValue(value)) || value } diff --git a/packages/jss-plugin-vendor-prefixer/src/index.test.js b/packages/jss-plugin-vendor-prefixer/src/index.test.js index f0432b204..9a7b60bdb 100644 --- a/packages/jss-plugin-vendor-prefixer/src/index.test.js +++ b/packages/jss-plugin-vendor-prefixer/src/index.test.js @@ -2,6 +2,7 @@ import expect from 'expect.js' import {create} from 'jss' import * as cssVendor from 'css-vendor' import browser from 'detect-browser' +import {stripIndent} from 'common-tags' import functionPlugin from 'jss-plugin-rule-value-function' import vendorPrefixer from './index' @@ -162,4 +163,21 @@ describe('jss-plugin-vendor-prefixer', () => { expect(sheet.toString()).to.be(`.a-id {\n display: ${supportedValue};\n}`) }) }) + + describe('prefix fallbacks', () => { + it('should prefix array of objects', () => { + const sheet = jss.createStyleSheet({ + a: { + display: 'run-in', + fallbacks: [{display: 'inline'}] + } + }) + expect(sheet.toString()).to.be(stripIndent` + .a-id { + display: inline; + display: run-in; + } + `) + }) + }) }) diff --git a/packages/jss-preset-default/.size-snapshot.json b/packages/jss-preset-default/.size-snapshot.json index e611c34fe..e874b3dd4 100644 --- a/packages/jss-preset-default/.size-snapshot.json +++ b/packages/jss-preset-default/.size-snapshot.json @@ -1,13 +1,13 @@ { "dist/jss-preset-default.js": { - "bundled": 54879, - "minified": 19521, - "gzipped": 6486 + "bundled": 55092, + "minified": 19597, + "gzipped": 6524 }, "dist/jss-preset-default.min.js": { - "bundled": 54117, - "minified": 19059, - "gzipped": 6271 + "bundled": 54330, + "minified": 19135, + "gzipped": 6310 }, "dist/jss-preset-default.cjs.js": { "bundled": 1329, diff --git a/packages/jss-starter-kit/.size-snapshot.json b/packages/jss-starter-kit/.size-snapshot.json index 9a9a9a6f3..2bae65644 100644 --- a/packages/jss-starter-kit/.size-snapshot.json +++ b/packages/jss-starter-kit/.size-snapshot.json @@ -1,13 +1,13 @@ { "dist/jss-starter-kit.js": { - "bundled": 70421, - "minified": 29561, - "gzipped": 9109 + "bundled": 70634, + "minified": 29637, + "gzipped": 9145 }, "dist/jss-starter-kit.min.js": { - "bundled": 69659, - "minified": 29099, - "gzipped": 8896 + "bundled": 69872, + "minified": 29175, + "gzipped": 8929 }, "dist/jss-starter-kit.cjs.js": { "bundled": 2592, diff --git a/packages/react-jss/.size-snapshot.json b/packages/react-jss/.size-snapshot.json index de036b18c..e5749aa60 100644 --- a/packages/react-jss/.size-snapshot.json +++ b/packages/react-jss/.size-snapshot.json @@ -1,13 +1,13 @@ { "dist/react-jss.js": { - "bundled": 169164, - "minified": 58306, - "gzipped": 19067 + "bundled": 169377, + "minified": 58382, + "gzipped": 19100 }, "dist/react-jss.min.js": { - "bundled": 112488, - "minified": 41697, - "gzipped": 14145 + "bundled": 112701, + "minified": 41773, + "gzipped": 14177 }, "dist/react-jss.cjs.js": { "bundled": 27027, From 32589859986dfe8309810dddad57cbef5c33bdfe Mon Sep 17 00:00:00 2001 From: Oleg Isonen Date: Sun, 22 Sep 2019 20:10:17 +0200 Subject: [PATCH 2/3] add changelog --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index fa19b95ba..db52530ab 100755 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,7 @@ Since you are interested in what happens next, in case, you work for a for-profi ## Bug fixes - [react-jss] Add fallback for `Number.MIN_SAFE_INTEGER`, because not supported by IE <= 11 ([1197](https://github.com/cssinjs/jss/pull/1197)) +- [jss-plugin-vendor-prefixer] Fix `fallbacks` syntax support regression ([1198](https://github.com/cssinjs/jss/pull/1198)) ## 10.0.0-alpha.26 (2019-9-22) From 10be61664724936e69c566c1bf941bc8b9366efc Mon Sep 17 00:00:00 2001 From: Oleg Isonen Date: Sun, 22 Sep 2019 20:22:36 +0200 Subject: [PATCH 3/3] test fallbacks with object --- .../jss-plugin-vendor-prefixer/src/index.test.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/jss-plugin-vendor-prefixer/src/index.test.js b/packages/jss-plugin-vendor-prefixer/src/index.test.js index 9a7b60bdb..595abd22e 100644 --- a/packages/jss-plugin-vendor-prefixer/src/index.test.js +++ b/packages/jss-plugin-vendor-prefixer/src/index.test.js @@ -179,5 +179,20 @@ describe('jss-plugin-vendor-prefixer', () => { } `) }) + + it('should prefix an object', () => { + const sheet = jss.createStyleSheet({ + a: { + display: 'run-in', + fallbacks: {display: 'inline'} + } + }) + expect(sheet.toString()).to.be(stripIndent` + .a-id { + display: inline; + display: run-in; + } + `) + }) }) })