babel-plugin-transform-react-jsx-to-rn-stylesheet 3.4.1 → 3.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/index.spec.js +48 -16
- package/dist/index.js +59 -20
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +40 -17
- package/tsconfig.json +6 -22
package/__tests__/index.spec.js
CHANGED
|
@@ -50,6 +50,10 @@ const getStyleFunctionTemplete = `function _getStyle(classNameExpression) {
|
|
|
50
50
|
return style;
|
|
51
51
|
}`
|
|
52
52
|
|
|
53
|
+
const mergeEleStylesFunctionTemplate = `function _mergeEleStyles() {
|
|
54
|
+
return [].concat.apply([], arguments).reduce((pre, cur) => Object.assign(pre, cur), {});
|
|
55
|
+
}`
|
|
56
|
+
|
|
53
57
|
describe('jsx style plugin', () => {
|
|
54
58
|
function getTransfromCode (source, debug = false, options = {}) {
|
|
55
59
|
const { enableCSSModule, enableMultipleClassName = false } = options
|
|
@@ -116,11 +120,14 @@ class App extends Component {
|
|
|
116
120
|
}
|
|
117
121
|
}`)).toBe(`import { createElement, Component } from 'rax';
|
|
118
122
|
import appCssStyleSheet from "./app.css";
|
|
123
|
+
|
|
124
|
+
${mergeEleStylesFunctionTemplate}
|
|
125
|
+
|
|
119
126
|
var _styleSheet = appCssStyleSheet;
|
|
120
127
|
|
|
121
128
|
class App extends Component {
|
|
122
129
|
render() {
|
|
123
|
-
return <div style={
|
|
130
|
+
return <div style={_mergeEleStyles(_styleSheet["header1"], _styleSheet["header2"])} />;
|
|
124
131
|
}
|
|
125
132
|
|
|
126
133
|
}`)
|
|
@@ -179,13 +186,15 @@ class App extends Component {
|
|
|
179
186
|
import app1CssStyleSheet from "./app1.css";
|
|
180
187
|
import app2CssStyleSheet from "./app2.css";
|
|
181
188
|
|
|
189
|
+
${mergeEleStylesFunctionTemplate}
|
|
190
|
+
|
|
182
191
|
${mergeStylesFunctionTemplate}
|
|
183
192
|
|
|
184
193
|
var _styleSheet = _mergeStyles(app1CssStyleSheet, app2CssStyleSheet);
|
|
185
194
|
|
|
186
195
|
class App extends Component {
|
|
187
196
|
render() {
|
|
188
|
-
return <div style={
|
|
197
|
+
return <div style={_mergeEleStyles(_styleSheet["header1"], _styleSheet["header2"])} />;
|
|
189
198
|
}
|
|
190
199
|
|
|
191
200
|
}`)
|
|
@@ -204,13 +213,15 @@ class App extends Component {
|
|
|
204
213
|
import appCssStyleSheet from "./app.css";
|
|
205
214
|
import appCssStyleSheet1 from "../app.css";
|
|
206
215
|
|
|
216
|
+
${mergeEleStylesFunctionTemplate}
|
|
217
|
+
|
|
207
218
|
${mergeStylesFunctionTemplate}
|
|
208
219
|
|
|
209
220
|
var _styleSheet = _mergeStyles(appCssStyleSheet, appCssStyleSheet1);
|
|
210
221
|
|
|
211
222
|
class App extends Component {
|
|
212
223
|
render() {
|
|
213
|
-
return <div style={
|
|
224
|
+
return <div style={_mergeEleStyles(_styleSheet["header1"], _styleSheet["header2"])} />;
|
|
214
225
|
}
|
|
215
226
|
|
|
216
227
|
}`)
|
|
@@ -229,13 +240,15 @@ class App extends Component {
|
|
|
229
240
|
import appCssStyleSheet from "./app.css";
|
|
230
241
|
import style from "./style.css";
|
|
231
242
|
|
|
243
|
+
${mergeEleStylesFunctionTemplate}
|
|
244
|
+
|
|
232
245
|
${mergeStylesFunctionTemplate}
|
|
233
246
|
|
|
234
247
|
var _styleSheet = _mergeStyles(appCssStyleSheet, style);
|
|
235
248
|
|
|
236
249
|
class App extends Component {
|
|
237
250
|
render() {
|
|
238
|
-
return <div style={
|
|
251
|
+
return <div style={_mergeEleStyles(_styleSheet["header2"], style.header1)} />;
|
|
239
252
|
}
|
|
240
253
|
|
|
241
254
|
}`)
|
|
@@ -254,13 +267,16 @@ class App extends Component {
|
|
|
254
267
|
}
|
|
255
268
|
}`)).toBe(`import { createElement, Component } from 'rax';
|
|
256
269
|
import appCssStyleSheet from "./app.css";
|
|
270
|
+
|
|
271
|
+
${mergeEleStylesFunctionTemplate}
|
|
272
|
+
|
|
257
273
|
var _styleSheet = appCssStyleSheet;
|
|
258
274
|
|
|
259
275
|
class App extends Component {
|
|
260
276
|
render() {
|
|
261
|
-
return <div style={
|
|
277
|
+
return <div style={_mergeEleStyles(_styleSheet["header"], {
|
|
262
278
|
height: 100
|
|
263
|
-
}
|
|
279
|
+
})} />;
|
|
264
280
|
}\n
|
|
265
281
|
}`)
|
|
266
282
|
})
|
|
@@ -279,13 +295,15 @@ class App extends Component {
|
|
|
279
295
|
import appCssStyleSheet from "./app.css";
|
|
280
296
|
import style from "./style.css";
|
|
281
297
|
|
|
298
|
+
${mergeEleStylesFunctionTemplate}
|
|
299
|
+
|
|
282
300
|
${mergeStylesFunctionTemplate}
|
|
283
301
|
|
|
284
302
|
var _styleSheet = _mergeStyles(appCssStyleSheet, style);
|
|
285
303
|
|
|
286
304
|
class App extends Component {
|
|
287
305
|
render() {
|
|
288
|
-
return <div style={
|
|
306
|
+
return <div style={_mergeEleStyles(_styleSheet["header2"], style.header1, style.header3)} />;
|
|
289
307
|
}\n
|
|
290
308
|
}`)
|
|
291
309
|
})
|
|
@@ -407,11 +425,14 @@ import './app.less';
|
|
|
407
425
|
render(<div className="header" style={{width: 100, height: 100}} />);
|
|
408
426
|
`)).toBe(`import { createElement, render } from 'rax';
|
|
409
427
|
import appLessStyleSheet from "./app.less";
|
|
428
|
+
|
|
429
|
+
${mergeEleStylesFunctionTemplate}
|
|
430
|
+
|
|
410
431
|
var _styleSheet = appLessStyleSheet;
|
|
411
|
-
render(<div style={
|
|
432
|
+
render(<div style={_mergeEleStyles(_styleSheet["header"], {
|
|
412
433
|
width: 100,
|
|
413
434
|
height: 100
|
|
414
|
-
}
|
|
435
|
+
})} />);`)
|
|
415
436
|
})
|
|
416
437
|
it('transform styleAttribute inline string', () => {
|
|
417
438
|
expect(getTransfromCode(`
|
|
@@ -436,15 +457,18 @@ import './app.less';
|
|
|
436
457
|
render(<div className="header" style="width:100px;height:100px;background-color:rgba(0, 0, 0, 0.5);border: 1px solid;" />);
|
|
437
458
|
`)).toBe(`import { createElement, render } from 'rax';
|
|
438
459
|
import appLessStyleSheet from "./app.less";
|
|
460
|
+
|
|
461
|
+
${mergeEleStylesFunctionTemplate}
|
|
462
|
+
|
|
439
463
|
var _styleSheet = appLessStyleSheet;
|
|
440
|
-
render(<div style={
|
|
464
|
+
render(<div style={_mergeEleStyles(_styleSheet["header"], {
|
|
441
465
|
"width": 100,
|
|
442
466
|
"height": 100,
|
|
443
467
|
"backgroundColor": "rgba(0, 0, 0, 0.5)",
|
|
444
468
|
"borderWidth": 1,
|
|
445
469
|
"borderStyle": "solid",
|
|
446
470
|
"borderColor": "black"
|
|
447
|
-
}
|
|
471
|
+
})} />);`)
|
|
448
472
|
})
|
|
449
473
|
|
|
450
474
|
it('ignore merge stylesheet when css module enable', () => {
|
|
@@ -460,11 +484,14 @@ class App extends Component {
|
|
|
460
484
|
}`, false, { enableCSSModule: true })).toBe(`import { createElement, Component } from 'rax';
|
|
461
485
|
import appScssStyleSheet from "./app.scss";
|
|
462
486
|
import styleSheet from './app.module.scss';
|
|
487
|
+
|
|
488
|
+
${mergeEleStylesFunctionTemplate}
|
|
489
|
+
|
|
463
490
|
var _styleSheet = appScssStyleSheet;
|
|
464
491
|
|
|
465
492
|
class App extends Component {
|
|
466
493
|
render() {
|
|
467
|
-
return <div style={
|
|
494
|
+
return <div style={_mergeEleStyles(_styleSheet["header"], styleSheet.red)} />;
|
|
468
495
|
}\n
|
|
469
496
|
}`)
|
|
470
497
|
})
|
|
@@ -585,13 +612,15 @@ class App extends Component {
|
|
|
585
612
|
import appScssStyleSheet from "./app.scss";
|
|
586
613
|
import styleSheet from "./app.module.scss";
|
|
587
614
|
|
|
615
|
+
${mergeEleStylesFunctionTemplate}
|
|
616
|
+
|
|
588
617
|
${mergeStylesFunctionTemplate}
|
|
589
618
|
|
|
590
619
|
var _styleSheet = _mergeStyles(appScssStyleSheet, styleSheet);
|
|
591
620
|
|
|
592
621
|
class App extends Component {
|
|
593
622
|
render() {
|
|
594
|
-
return <div style={
|
|
623
|
+
return <div style={_mergeEleStyles(_styleSheet["header"], styleSheet.red)} />;
|
|
595
624
|
}\n
|
|
596
625
|
}`)
|
|
597
626
|
})
|
|
@@ -649,15 +678,18 @@ class App extends Component {
|
|
|
649
678
|
}
|
|
650
679
|
}`, false, { enableMultipleClassName: true })).toBe(`import { createElement, Component } from 'rax';
|
|
651
680
|
import appCssStyleSheet from "./app.css";
|
|
681
|
+
|
|
682
|
+
${mergeEleStylesFunctionTemplate}
|
|
683
|
+
|
|
652
684
|
var _styleSheet = appCssStyleSheet;
|
|
653
685
|
|
|
654
686
|
class App extends Component {
|
|
655
687
|
render() {
|
|
656
|
-
return <div style={
|
|
688
|
+
return <div style={_mergeEleStyles(_styleSheet["container"], {
|
|
657
689
|
color: "red"
|
|
658
|
-
}
|
|
690
|
+
})} headerStyle={_mergeEleStyles(_styleSheet["header"], {
|
|
659
691
|
color: "green"
|
|
660
|
-
}
|
|
692
|
+
})} />;
|
|
661
693
|
}
|
|
662
694
|
|
|
663
695
|
}`)
|
package/dist/index.js
CHANGED
|
@@ -1,28 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
23
|
};
|
|
5
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
25
|
+
const path = __importStar(require("path"));
|
|
7
26
|
const camelize_1 = __importDefault(require("camelize"));
|
|
8
27
|
const taro_css_to_react_native_1 = require("taro-css-to-react-native");
|
|
9
28
|
const STYLE_SHEET_NAME = '_styleSheet';
|
|
10
29
|
const GET_STYLE_FUNC_NAME = '_getStyle';
|
|
11
30
|
const MERGE_STYLES_FUNC_NAME = '_mergeStyles';
|
|
31
|
+
const MERGE_ELE_STYLES_FUNC_NAME = '_mergeEleStyles';
|
|
12
32
|
const GET_CLS_NAME_FUNC_NAME = '_getClassName';
|
|
13
33
|
const NAME_SUFFIX = 'styleSheet';
|
|
14
34
|
const RN_CSS_EXT = ['.css', '.scss', '.sass', '.less', '.styl', '.stylus'];
|
|
15
35
|
const isStyle = value => {
|
|
16
|
-
const ext =
|
|
36
|
+
const ext = path.extname(value);
|
|
17
37
|
return RN_CSS_EXT.indexOf(ext) > -1;
|
|
18
38
|
};
|
|
19
|
-
|
|
39
|
+
// 样式文件带有 .module./.linaria. 若开启 css module 则走 css module 逻辑
|
|
40
|
+
const isModuleSource = value => value.indexOf('.module.') > -1 || value.indexOf('.linaria.') > -1;
|
|
20
41
|
const string2Object = str => {
|
|
21
42
|
const entries = str.replace(/;+$/g, '')
|
|
22
43
|
.split(';')
|
|
23
44
|
.map(l => {
|
|
24
45
|
var _a;
|
|
25
|
-
const arr = l.split(':');
|
|
46
|
+
const arr = l.split(':').map(it => it.trim());
|
|
26
47
|
arr[1] = (_a = arr[1]) === null || _a === void 0 ? void 0 : _a.replace(/px/g, 'PX');
|
|
27
48
|
return arr;
|
|
28
49
|
});
|
|
@@ -93,6 +114,12 @@ function ${GET_CLS_NAME_FUNC_NAME}() {
|
|
|
93
114
|
return className.join(' ').trim();
|
|
94
115
|
}
|
|
95
116
|
`;
|
|
117
|
+
// like: `[[styles.header, styles.header1], styles.header2]`
|
|
118
|
+
const getMergeEleStyleFunction = `
|
|
119
|
+
function ${MERGE_ELE_STYLES_FUNC_NAME}() {
|
|
120
|
+
return [].concat.apply([], arguments).reduce((pre, cur) => Object.assign(pre, cur), {})
|
|
121
|
+
}
|
|
122
|
+
`;
|
|
96
123
|
const getStyleFunction = `
|
|
97
124
|
function ${GET_STYLE_FUNC_NAME}(classNameExpression) {
|
|
98
125
|
var className = ${GET_CLS_NAME_FUNC_NAME}(classNameExpression);
|
|
@@ -104,10 +131,9 @@ function ${GET_STYLE_FUNC_NAME}(classNameExpression) {
|
|
|
104
131
|
`;
|
|
105
132
|
function default_1(babel) {
|
|
106
133
|
const { types: t, template } = babel;
|
|
107
|
-
const
|
|
108
|
-
const
|
|
109
|
-
const
|
|
110
|
-
const getStyleFunctionStmt = getStyleFunctionTemplete();
|
|
134
|
+
const getClassNameFunctionStmt = template(getClassNameFunction)();
|
|
135
|
+
const getStyleFunctionStmt = template(getStyleFunction)();
|
|
136
|
+
const getMergeEleStyleFunctionStmt = template(getMergeEleStyleFunction)();
|
|
111
137
|
function getMap(str) {
|
|
112
138
|
return str.split(/\s+/).map((className) => {
|
|
113
139
|
// return template(`${STYLE_SHEET_NAME}["${className}"]`)().expression
|
|
@@ -254,20 +280,24 @@ function default_1(babel) {
|
|
|
254
280
|
const node = astPath.node;
|
|
255
281
|
const injectGetStyle = file.get('injectGetStyle');
|
|
256
282
|
// 从最后一个import 开始插入表达式,后续插入的表达式追加在后面
|
|
257
|
-
|
|
283
|
+
let lastImportIndex = findLastImportIndex(node.body);
|
|
258
284
|
if (injectGetStyle) {
|
|
259
285
|
// @ts-ignore
|
|
260
|
-
node.body.splice(lastImportIndex
|
|
286
|
+
node.body.splice(++lastImportIndex, 0, getClassNameFunctionStmt);
|
|
261
287
|
// @ts-ignore
|
|
262
|
-
node.body.splice(lastImportIndex
|
|
288
|
+
node.body.splice(++lastImportIndex, 0, getStyleFunctionStmt);
|
|
289
|
+
}
|
|
290
|
+
if (file.get('hasMultiStyle')) {
|
|
291
|
+
// @ts-ignore
|
|
292
|
+
node.body.splice(++lastImportIndex, 0, getMergeEleStyleFunctionStmt);
|
|
263
293
|
}
|
|
264
294
|
existStyleImport = false;
|
|
265
295
|
}
|
|
266
296
|
},
|
|
267
297
|
JSXOpeningElement(astPath, state) {
|
|
268
298
|
const { node } = astPath;
|
|
269
|
-
const { file, opts } = state;
|
|
270
|
-
const { enableMultipleClassName } = opts;
|
|
299
|
+
const { file, opts = {} } = state;
|
|
300
|
+
const { enableMultipleClassName = false } = opts;
|
|
271
301
|
const { styleMatchRule, classNameMathRule } = getMatchRule(enableMultipleClassName);
|
|
272
302
|
const cssModuleStylesheets = file.get('cssModuleStylesheets') || [];
|
|
273
303
|
const styleNameMapping = {};
|
|
@@ -313,7 +343,11 @@ function default_1(babel) {
|
|
|
313
343
|
if (arrayExpression.length === 0) {
|
|
314
344
|
return;
|
|
315
345
|
}
|
|
346
|
+
if (arrayExpression.length > 1) {
|
|
347
|
+
file.set('hasMultiStyle', true);
|
|
348
|
+
}
|
|
316
349
|
if (hasStyleAttribute && styleAttribute.value) {
|
|
350
|
+
file.set('hasMultiStyle', true);
|
|
317
351
|
let expression;
|
|
318
352
|
// 支持 行内 style 转成oject:style="width:100;height:100;" => style={{width:'100',height:'100'}}
|
|
319
353
|
if (t.isStringLiteral(styleAttribute.value)) {
|
|
@@ -324,9 +358,11 @@ function default_1(babel) {
|
|
|
324
358
|
expression = styleAttribute.value.expression;
|
|
325
359
|
}
|
|
326
360
|
const expressionType = expression.type;
|
|
361
|
+
let _arrayExpression;
|
|
362
|
+
// 非rn场景,style不支持数组,因此需要将数组转换为对象
|
|
327
363
|
// style={[styles.a, styles.b]} ArrayExpression
|
|
328
364
|
if (expressionType === 'ArrayExpression') {
|
|
329
|
-
|
|
365
|
+
_arrayExpression = arrayExpression.concat(expression.elements);
|
|
330
366
|
// style={styles.a} MemberExpression
|
|
331
367
|
// style={{ height: 100 }} ObjectExpression
|
|
332
368
|
// style={{ ...custom }} ObjectExpression
|
|
@@ -336,11 +372,14 @@ function default_1(babel) {
|
|
|
336
372
|
// style={custom || other} LogicalExpression
|
|
337
373
|
}
|
|
338
374
|
else {
|
|
339
|
-
|
|
375
|
+
_arrayExpression = arrayExpression.concat(expression);
|
|
340
376
|
}
|
|
377
|
+
styleAttribute.value = t.jSXExpressionContainer(t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression));
|
|
341
378
|
}
|
|
342
379
|
else {
|
|
343
|
-
const expression = arrayExpression.length
|
|
380
|
+
const expression = arrayExpression.length > 1
|
|
381
|
+
? t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), arrayExpression)
|
|
382
|
+
: arrayExpression[0];
|
|
344
383
|
attributes.push(t.jSXAttribute(t.jSXIdentifier(key === DEFAULT_STYLE_KEY ? key : (key + 'Style')), t.jSXExpressionContainer(expression)));
|
|
345
384
|
}
|
|
346
385
|
}
|
|
@@ -363,7 +402,7 @@ function importDeclaration(astPath, state, t) {
|
|
|
363
402
|
const node = astPath.node;
|
|
364
403
|
const sourceValue = node.source.value;
|
|
365
404
|
const specifiers = node.specifiers;
|
|
366
|
-
const ext =
|
|
405
|
+
const ext = path.extname(sourceValue);
|
|
367
406
|
const styleSheetIdentifiers = file.get('styleSheetIdentifiers') || [];
|
|
368
407
|
const cssModuleStylesheets = file.get('cssModuleStylesheets') || [];
|
|
369
408
|
const enableCSSModule = (_a = state.opts) === null || _a === void 0 ? void 0 : _a.enableCSSModule;
|
|
@@ -375,14 +414,14 @@ function importDeclaration(astPath, state, t) {
|
|
|
375
414
|
if (specifiers.length > 0) {
|
|
376
415
|
styleSheetName = specifiers[0].local.name;
|
|
377
416
|
}
|
|
378
|
-
if (isModuleSource(sourceValue)
|
|
417
|
+
if (enableCSSModule && isModuleSource(sourceValue)) {
|
|
379
418
|
if (styleSheetName) {
|
|
380
419
|
cssModuleStylesheets.push(styleSheetName);
|
|
381
420
|
}
|
|
382
421
|
}
|
|
383
422
|
else {
|
|
384
|
-
const cssFileName =
|
|
385
|
-
const cssFileBaseName =
|
|
423
|
+
const cssFileName = path.basename(sourceValue);
|
|
424
|
+
const cssFileBaseName = path.basename(cssFileName, ext);
|
|
386
425
|
// 引入样式对应的变量名
|
|
387
426
|
const styleSheetSource = sourceValue;
|
|
388
427
|
let styleSheetIdentifierName;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "babel-plugin-transform-react-jsx-to-rn-stylesheet",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.4",
|
|
4
4
|
"description": "Transform stylesheet selector to style in JSX Elements.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"camelize": "^1.0.0",
|
|
27
|
-
"taro-css-to-react-native": "3.4.
|
|
27
|
+
"taro-css-to-react-native": "3.4.4"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/babel__core": "^7.1.14"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "099d062d74faa3f124ca2499de1154fae0adc4f9"
|
|
33
33
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import path from 'path'
|
|
1
|
+
import * as path from 'path'
|
|
2
2
|
import camelize from 'camelize'
|
|
3
3
|
import { transformCSS } from 'taro-css-to-react-native'
|
|
4
4
|
import { types as Types, template as Template, PluginObj } from 'babel__core'
|
|
@@ -7,6 +7,8 @@ import { ConvertPluginPass as PluginPass } from './types'
|
|
|
7
7
|
const STYLE_SHEET_NAME = '_styleSheet'
|
|
8
8
|
const GET_STYLE_FUNC_NAME = '_getStyle'
|
|
9
9
|
const MERGE_STYLES_FUNC_NAME = '_mergeStyles'
|
|
10
|
+
const MERGE_ELE_STYLES_FUNC_NAME = '_mergeEleStyles'
|
|
11
|
+
|
|
10
12
|
const GET_CLS_NAME_FUNC_NAME = '_getClassName'
|
|
11
13
|
const NAME_SUFFIX = 'styleSheet'
|
|
12
14
|
const RN_CSS_EXT = ['.css', '.scss', '.sass', '.less', '.styl', '.stylus']
|
|
@@ -16,13 +18,14 @@ const isStyle = value => {
|
|
|
16
18
|
return RN_CSS_EXT.indexOf(ext) > -1
|
|
17
19
|
}
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
// 样式文件带有 .module./.linaria. 若开启 css module 则走 css module 逻辑
|
|
22
|
+
const isModuleSource = value => value.indexOf('.module.') > -1 || value.indexOf('.linaria.') > -1
|
|
20
23
|
|
|
21
24
|
const string2Object = str => {
|
|
22
25
|
const entries = str.replace(/;+$/g, '')
|
|
23
26
|
.split(';')
|
|
24
27
|
.map(l => {
|
|
25
|
-
const arr = l.split(':')
|
|
28
|
+
const arr = l.split(':').map(it => it.trim())
|
|
26
29
|
arr[1] = arr[1]?.replace(/px/g, 'PX')
|
|
27
30
|
return arr
|
|
28
31
|
})
|
|
@@ -96,6 +99,12 @@ function ${GET_CLS_NAME_FUNC_NAME}() {
|
|
|
96
99
|
return className.join(' ').trim();
|
|
97
100
|
}
|
|
98
101
|
`
|
|
102
|
+
// like: `[[styles.header, styles.header1], styles.header2]`
|
|
103
|
+
const getMergeEleStyleFunction = `
|
|
104
|
+
function ${MERGE_ELE_STYLES_FUNC_NAME}() {
|
|
105
|
+
return [].concat.apply([], arguments).reduce((pre, cur) => Object.assign(pre, cur), {})
|
|
106
|
+
}
|
|
107
|
+
`
|
|
99
108
|
const getStyleFunction = `
|
|
100
109
|
function ${GET_STYLE_FUNC_NAME}(classNameExpression) {
|
|
101
110
|
var className = ${GET_CLS_NAME_FUNC_NAME}(classNameExpression);
|
|
@@ -112,10 +121,11 @@ export default function (babel: {
|
|
|
112
121
|
}): PluginObj {
|
|
113
122
|
const { types: t, template } = babel
|
|
114
123
|
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
const
|
|
118
|
-
|
|
124
|
+
const getClassNameFunctionStmt = template(getClassNameFunction)()
|
|
125
|
+
|
|
126
|
+
const getStyleFunctionStmt = template(getStyleFunction)()
|
|
127
|
+
|
|
128
|
+
const getMergeEleStyleFunctionStmt = template(getMergeEleStyleFunction)()
|
|
119
129
|
|
|
120
130
|
function getMap (str) {
|
|
121
131
|
return str.split(/\s+/).map((className) => {
|
|
@@ -272,21 +282,24 @@ export default function (babel: {
|
|
|
272
282
|
const node = astPath.node
|
|
273
283
|
const injectGetStyle = file.get('injectGetStyle')
|
|
274
284
|
// 从最后一个import 开始插入表达式,后续插入的表达式追加在后面
|
|
275
|
-
|
|
276
|
-
|
|
285
|
+
let lastImportIndex = findLastImportIndex(node.body)
|
|
277
286
|
if (injectGetStyle) {
|
|
278
287
|
// @ts-ignore
|
|
279
|
-
node.body.splice(lastImportIndex
|
|
288
|
+
node.body.splice(++lastImportIndex, 0, getClassNameFunctionStmt)
|
|
289
|
+
// @ts-ignore
|
|
290
|
+
node.body.splice(++lastImportIndex, 0, getStyleFunctionStmt)
|
|
291
|
+
}
|
|
292
|
+
if (file.get('hasMultiStyle')) {
|
|
280
293
|
// @ts-ignore
|
|
281
|
-
node.body.splice(lastImportIndex
|
|
294
|
+
node.body.splice(++lastImportIndex, 0, getMergeEleStyleFunctionStmt)
|
|
282
295
|
}
|
|
283
296
|
existStyleImport = false
|
|
284
297
|
}
|
|
285
298
|
},
|
|
286
299
|
JSXOpeningElement (astPath, state: PluginPass) {
|
|
287
300
|
const { node } = astPath
|
|
288
|
-
const { file, opts } = state
|
|
289
|
-
const { enableMultipleClassName } = opts
|
|
301
|
+
const { file, opts = {} } = state
|
|
302
|
+
const { enableMultipleClassName = false } = opts
|
|
290
303
|
const { styleMatchRule, classNameMathRule } = getMatchRule(enableMultipleClassName)
|
|
291
304
|
const cssModuleStylesheets = file.get('cssModuleStylesheets') || []
|
|
292
305
|
|
|
@@ -338,7 +351,12 @@ export default function (babel: {
|
|
|
338
351
|
return
|
|
339
352
|
}
|
|
340
353
|
|
|
354
|
+
if (arrayExpression.length > 1) {
|
|
355
|
+
file.set('hasMultiStyle', true)
|
|
356
|
+
}
|
|
357
|
+
|
|
341
358
|
if (hasStyleAttribute && styleAttribute.value) {
|
|
359
|
+
file.set('hasMultiStyle', true)
|
|
342
360
|
let expression
|
|
343
361
|
// 支持 行内 style 转成oject:style="width:100;height:100;" => style={{width:'100',height:'100'}}
|
|
344
362
|
if (t.isStringLiteral(styleAttribute.value)) {
|
|
@@ -349,9 +367,11 @@ export default function (babel: {
|
|
|
349
367
|
}
|
|
350
368
|
const expressionType = expression.type
|
|
351
369
|
|
|
370
|
+
let _arrayExpression
|
|
371
|
+
// 非rn场景,style不支持数组,因此需要将数组转换为对象
|
|
352
372
|
// style={[styles.a, styles.b]} ArrayExpression
|
|
353
373
|
if (expressionType === 'ArrayExpression') {
|
|
354
|
-
|
|
374
|
+
_arrayExpression = arrayExpression.concat(expression.elements)
|
|
355
375
|
// style={styles.a} MemberExpression
|
|
356
376
|
// style={{ height: 100 }} ObjectExpression
|
|
357
377
|
// style={{ ...custom }} ObjectExpression
|
|
@@ -360,10 +380,13 @@ export default function (babel: {
|
|
|
360
380
|
// style={this.props.useCustom ? custom : null} ConditionalExpression
|
|
361
381
|
// style={custom || other} LogicalExpression
|
|
362
382
|
} else {
|
|
363
|
-
|
|
383
|
+
_arrayExpression = arrayExpression.concat(expression)
|
|
364
384
|
}
|
|
385
|
+
styleAttribute.value = t.jSXExpressionContainer(t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression))
|
|
365
386
|
} else {
|
|
366
|
-
const expression = arrayExpression.length
|
|
387
|
+
const expression = arrayExpression.length > 1
|
|
388
|
+
? t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), arrayExpression)
|
|
389
|
+
: arrayExpression[0]
|
|
367
390
|
attributes.push(t.jSXAttribute(t.jSXIdentifier(key === DEFAULT_STYLE_KEY ? key : (key + 'Style')), t.jSXExpressionContainer(expression)))
|
|
368
391
|
}
|
|
369
392
|
} else if (hasStyleAttribute) {
|
|
@@ -398,7 +421,7 @@ function importDeclaration (astPath, state, t) {
|
|
|
398
421
|
styleSheetName = specifiers[0].local.name
|
|
399
422
|
}
|
|
400
423
|
|
|
401
|
-
if (isModuleSource(sourceValue)
|
|
424
|
+
if (enableCSSModule && isModuleSource(sourceValue)) {
|
|
402
425
|
if (styleSheetName) {
|
|
403
426
|
cssModuleStylesheets.push(styleSheetName)
|
|
404
427
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,31 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
+
"extends": "../../tsconfig.root.json",
|
|
2
3
|
"compilerOptions": {
|
|
3
4
|
"target": "ES2017",
|
|
4
|
-
"module": "
|
|
5
|
-
"removeComments": false,
|
|
6
|
-
"preserveConstEnums": false,
|
|
7
|
-
"moduleResolution": "node",
|
|
8
|
-
"experimentalDecorators": true,
|
|
9
|
-
"noImplicitAny": false,
|
|
10
|
-
"allowSyntheticDefaultImports": true,
|
|
11
|
-
"esModuleInterop": true,
|
|
5
|
+
"module": "commonjs",
|
|
12
6
|
"outDir": "dist",
|
|
13
|
-
"noUnusedLocals": true,
|
|
14
|
-
"noUnusedParameters": true,
|
|
15
|
-
"strictNullChecks": false,
|
|
16
|
-
"resolveJsonModule": true,
|
|
17
7
|
"sourceMap": true,
|
|
8
|
+
"esModuleInterop": true,
|
|
18
9
|
"rootDir": "./src",
|
|
19
10
|
"types": ["node"]
|
|
20
11
|
},
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
"dist",
|
|
25
|
-
"tests",
|
|
26
|
-
"jest",
|
|
27
|
-
"**/*.test.ts",
|
|
28
|
-
"**/*.spec.ts"
|
|
29
|
-
],
|
|
30
|
-
"compileOnSave": false
|
|
12
|
+
"include": [
|
|
13
|
+
"./src"
|
|
14
|
+
]
|
|
31
15
|
}
|