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.
@@ -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={[_styleSheet["header1"], _styleSheet["header2"]]} />;
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={[_styleSheet["header1"], _styleSheet["header2"]]} />;
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={[_styleSheet["header1"], _styleSheet["header2"]]} />;
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={[_styleSheet["header2"], style.header1]} />;
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={[_styleSheet["header"], {
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={[_styleSheet["header2"], style.header1, style.header3]} />;
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={[_styleSheet["header"], {
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={[_styleSheet["header"], {
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={[_styleSheet["header"], styleSheet.red]} />;
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={[_styleSheet["header"], styleSheet.red]} />;
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={[_styleSheet["container"], {
688
+ return <div style={_mergeEleStyles(_styleSheet["container"], {
657
689
  color: "red"
658
- }]} headerStyle={[_styleSheet["header"], {
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 path_1 = __importDefault(require("path"));
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 = path_1.default.extname(value);
36
+ const ext = path.extname(value);
17
37
  return RN_CSS_EXT.indexOf(ext) > -1;
18
38
  };
19
- const isModuleSource = value => value.indexOf('.module.') > -1;
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 getClassNameFunctionTemplate = template(getClassNameFunction);
108
- const getStyleFunctionTemplete = template(getStyleFunction);
109
- const getClassNameFunctionStmt = getClassNameFunctionTemplate();
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
- const lastImportIndex = findLastImportIndex(node.body);
283
+ let lastImportIndex = findLastImportIndex(node.body);
258
284
  if (injectGetStyle) {
259
285
  // @ts-ignore
260
- node.body.splice(lastImportIndex + 1, 0, getClassNameFunctionStmt);
286
+ node.body.splice(++lastImportIndex, 0, getClassNameFunctionStmt);
261
287
  // @ts-ignore
262
- node.body.splice(lastImportIndex + 2, 0, getStyleFunctionStmt);
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
- expression.elements = arrayExpression.concat(expression.elements);
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
- styleAttribute.value = t.jSXExpressionContainer(t.arrayExpression(arrayExpression.concat(expression)));
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 === 1 ? arrayExpression[0] : t.arrayExpression(arrayExpression);
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 = path_1.default.extname(sourceValue);
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) && enableCSSModule) {
417
+ if (enableCSSModule && isModuleSource(sourceValue)) {
379
418
  if (styleSheetName) {
380
419
  cssModuleStylesheets.push(styleSheetName);
381
420
  }
382
421
  }
383
422
  else {
384
- const cssFileName = path_1.default.basename(sourceValue);
385
- const cssFileBaseName = path_1.default.basename(cssFileName, ext);
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.1",
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.1"
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": "a2437215b1966fd0b6dd09311bcb4fd894a871d0"
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
- const isModuleSource = value => value.indexOf('.module.') > -1
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 getClassNameFunctionTemplate = template(getClassNameFunction)
116
- const getStyleFunctionTemplete = template(getStyleFunction)
117
- const getClassNameFunctionStmt = getClassNameFunctionTemplate()
118
- const getStyleFunctionStmt = getStyleFunctionTemplete()
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
- const lastImportIndex = findLastImportIndex(node.body)
276
-
285
+ let lastImportIndex = findLastImportIndex(node.body)
277
286
  if (injectGetStyle) {
278
287
  // @ts-ignore
279
- node.body.splice(lastImportIndex + 1, 0, getClassNameFunctionStmt)
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 + 2, 0, getStyleFunctionStmt)
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
- expression.elements = arrayExpression.concat(expression.elements)
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
- styleAttribute.value = t.jSXExpressionContainer(t.arrayExpression(arrayExpression.concat(expression)))
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 === 1 ? arrayExpression[0] : t.arrayExpression(arrayExpression)
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) && enableCSSModule) {
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": "CommonJS",
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
- "exclude": [
22
- "__tests__",
23
- "node_modules",
24
- "dist",
25
- "tests",
26
- "jest",
27
- "**/*.test.ts",
28
- "**/*.spec.ts"
29
- ],
30
- "compileOnSave": false
12
+ "include": [
13
+ "./src"
14
+ ]
31
15
  }