babel-plugin-transform-react-jsx-to-rn-stylesheet 3.4.2 → 3.4.5

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,19 +1,39 @@
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
39
  // 样式文件带有 .module./.linaria. 若开启 css module 则走 css module 逻辑
@@ -23,7 +43,7 @@ const string2Object = str => {
23
43
  .split(';')
24
44
  .map(l => {
25
45
  var _a;
26
- const arr = l.split(':');
46
+ const arr = l.split(':').map(it => it.trim());
27
47
  arr[1] = (_a = arr[1]) === null || _a === void 0 ? void 0 : _a.replace(/px/g, 'PX');
28
48
  return arr;
29
49
  });
@@ -94,6 +114,12 @@ function ${GET_CLS_NAME_FUNC_NAME}() {
94
114
  return className.join(' ').trim();
95
115
  }
96
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
+ `;
97
123
  const getStyleFunction = `
98
124
  function ${GET_STYLE_FUNC_NAME}(classNameExpression) {
99
125
  var className = ${GET_CLS_NAME_FUNC_NAME}(classNameExpression);
@@ -105,10 +131,9 @@ function ${GET_STYLE_FUNC_NAME}(classNameExpression) {
105
131
  `;
106
132
  function default_1(babel) {
107
133
  const { types: t, template } = babel;
108
- const getClassNameFunctionTemplate = template(getClassNameFunction);
109
- const getStyleFunctionTemplete = template(getStyleFunction);
110
- const getClassNameFunctionStmt = getClassNameFunctionTemplate();
111
- const getStyleFunctionStmt = getStyleFunctionTemplete();
134
+ const getClassNameFunctionStmt = template(getClassNameFunction)();
135
+ const getStyleFunctionStmt = template(getStyleFunction)();
136
+ const getMergeEleStyleFunctionStmt = template(getMergeEleStyleFunction)();
112
137
  function getMap(str) {
113
138
  return str.split(/\s+/).map((className) => {
114
139
  // return template(`${STYLE_SHEET_NAME}["${className}"]`)().expression
@@ -255,20 +280,24 @@ function default_1(babel) {
255
280
  const node = astPath.node;
256
281
  const injectGetStyle = file.get('injectGetStyle');
257
282
  // 从最后一个import 开始插入表达式,后续插入的表达式追加在后面
258
- const lastImportIndex = findLastImportIndex(node.body);
283
+ let lastImportIndex = findLastImportIndex(node.body);
259
284
  if (injectGetStyle) {
260
285
  // @ts-ignore
261
- node.body.splice(lastImportIndex + 1, 0, getClassNameFunctionStmt);
286
+ node.body.splice(++lastImportIndex, 0, getClassNameFunctionStmt);
262
287
  // @ts-ignore
263
- 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);
264
293
  }
265
294
  existStyleImport = false;
266
295
  }
267
296
  },
268
297
  JSXOpeningElement(astPath, state) {
269
298
  const { node } = astPath;
270
- const { file, opts } = state;
271
- const { enableMultipleClassName } = opts;
299
+ const { file, opts = {} } = state;
300
+ const { enableMultipleClassName = false } = opts;
272
301
  const { styleMatchRule, classNameMathRule } = getMatchRule(enableMultipleClassName);
273
302
  const cssModuleStylesheets = file.get('cssModuleStylesheets') || [];
274
303
  const styleNameMapping = {};
@@ -314,7 +343,11 @@ function default_1(babel) {
314
343
  if (arrayExpression.length === 0) {
315
344
  return;
316
345
  }
346
+ if (arrayExpression.length > 1) {
347
+ file.set('hasMultiStyle', true);
348
+ }
317
349
  if (hasStyleAttribute && styleAttribute.value) {
350
+ file.set('hasMultiStyle', true);
318
351
  let expression;
319
352
  // 支持 行内 style 转成oject:style="width:100;height:100;" => style={{width:'100',height:'100'}}
320
353
  if (t.isStringLiteral(styleAttribute.value)) {
@@ -325,9 +358,11 @@ function default_1(babel) {
325
358
  expression = styleAttribute.value.expression;
326
359
  }
327
360
  const expressionType = expression.type;
361
+ let _arrayExpression;
362
+ // 非rn场景,style不支持数组,因此需要将数组转换为对象
328
363
  // style={[styles.a, styles.b]} ArrayExpression
329
364
  if (expressionType === 'ArrayExpression') {
330
- expression.elements = arrayExpression.concat(expression.elements);
365
+ _arrayExpression = arrayExpression.concat(expression.elements);
331
366
  // style={styles.a} MemberExpression
332
367
  // style={{ height: 100 }} ObjectExpression
333
368
  // style={{ ...custom }} ObjectExpression
@@ -337,11 +372,14 @@ function default_1(babel) {
337
372
  // style={custom || other} LogicalExpression
338
373
  }
339
374
  else {
340
- styleAttribute.value = t.jSXExpressionContainer(t.arrayExpression(arrayExpression.concat(expression)));
375
+ _arrayExpression = arrayExpression.concat(expression);
341
376
  }
377
+ styleAttribute.value = t.jSXExpressionContainer(t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression));
342
378
  }
343
379
  else {
344
- 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];
345
383
  attributes.push(t.jSXAttribute(t.jSXIdentifier(key === DEFAULT_STYLE_KEY ? key : (key + 'Style')), t.jSXExpressionContainer(expression)));
346
384
  }
347
385
  }
@@ -364,7 +402,7 @@ function importDeclaration(astPath, state, t) {
364
402
  const node = astPath.node;
365
403
  const sourceValue = node.source.value;
366
404
  const specifiers = node.specifiers;
367
- const ext = path_1.default.extname(sourceValue);
405
+ const ext = path.extname(sourceValue);
368
406
  const styleSheetIdentifiers = file.get('styleSheetIdentifiers') || [];
369
407
  const cssModuleStylesheets = file.get('cssModuleStylesheets') || [];
370
408
  const enableCSSModule = (_a = state.opts) === null || _a === void 0 ? void 0 : _a.enableCSSModule;
@@ -382,8 +420,8 @@ function importDeclaration(astPath, state, t) {
382
420
  }
383
421
  }
384
422
  else {
385
- const cssFileName = path_1.default.basename(sourceValue);
386
- const cssFileBaseName = path_1.default.basename(cssFileName, ext);
423
+ const cssFileName = path.basename(sourceValue);
424
+ const cssFileBaseName = path.basename(cssFileName, ext);
387
425
  // 引入样式对应的变量名
388
426
  const styleSheetSource = sourceValue;
389
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.2",
3
+ "version": "3.4.5",
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.2"
27
+ "taro-css-to-react-native": "3.4.5"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/babel__core": "^7.1.14"
31
31
  },
32
- "gitHead": "26b329326c6a7da652e8d712ee33df01ab8d2d0e"
32
+ "gitHead": "789e873f7b9477124b44a900cd4f6a2810e4e06a"
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']
@@ -23,7 +25,7 @@ const string2Object = str => {
23
25
  const entries = str.replace(/;+$/g, '')
24
26
  .split(';')
25
27
  .map(l => {
26
- const arr = l.split(':')
28
+ const arr = l.split(':').map(it => it.trim())
27
29
  arr[1] = arr[1]?.replace(/px/g, 'PX')
28
30
  return arr
29
31
  })
@@ -97,6 +99,12 @@ function ${GET_CLS_NAME_FUNC_NAME}() {
97
99
  return className.join(' ').trim();
98
100
  }
99
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
+ `
100
108
  const getStyleFunction = `
101
109
  function ${GET_STYLE_FUNC_NAME}(classNameExpression) {
102
110
  var className = ${GET_CLS_NAME_FUNC_NAME}(classNameExpression);
@@ -113,10 +121,11 @@ export default function (babel: {
113
121
  }): PluginObj {
114
122
  const { types: t, template } = babel
115
123
 
116
- const getClassNameFunctionTemplate = template(getClassNameFunction)
117
- const getStyleFunctionTemplete = template(getStyleFunction)
118
- const getClassNameFunctionStmt = getClassNameFunctionTemplate()
119
- const getStyleFunctionStmt = getStyleFunctionTemplete()
124
+ const getClassNameFunctionStmt = template(getClassNameFunction)()
125
+
126
+ const getStyleFunctionStmt = template(getStyleFunction)()
127
+
128
+ const getMergeEleStyleFunctionStmt = template(getMergeEleStyleFunction)()
120
129
 
121
130
  function getMap (str) {
122
131
  return str.split(/\s+/).map((className) => {
@@ -273,21 +282,24 @@ export default function (babel: {
273
282
  const node = astPath.node
274
283
  const injectGetStyle = file.get('injectGetStyle')
275
284
  // 从最后一个import 开始插入表达式,后续插入的表达式追加在后面
276
- const lastImportIndex = findLastImportIndex(node.body)
277
-
285
+ let lastImportIndex = findLastImportIndex(node.body)
278
286
  if (injectGetStyle) {
279
287
  // @ts-ignore
280
- 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')) {
281
293
  // @ts-ignore
282
- node.body.splice(lastImportIndex + 2, 0, getStyleFunctionStmt)
294
+ node.body.splice(++lastImportIndex, 0, getMergeEleStyleFunctionStmt)
283
295
  }
284
296
  existStyleImport = false
285
297
  }
286
298
  },
287
299
  JSXOpeningElement (astPath, state: PluginPass) {
288
300
  const { node } = astPath
289
- const { file, opts } = state
290
- const { enableMultipleClassName } = opts
301
+ const { file, opts = {} } = state
302
+ const { enableMultipleClassName = false } = opts
291
303
  const { styleMatchRule, classNameMathRule } = getMatchRule(enableMultipleClassName)
292
304
  const cssModuleStylesheets = file.get('cssModuleStylesheets') || []
293
305
 
@@ -339,7 +351,12 @@ export default function (babel: {
339
351
  return
340
352
  }
341
353
 
354
+ if (arrayExpression.length > 1) {
355
+ file.set('hasMultiStyle', true)
356
+ }
357
+
342
358
  if (hasStyleAttribute && styleAttribute.value) {
359
+ file.set('hasMultiStyle', true)
343
360
  let expression
344
361
  // 支持 行内 style 转成oject:style="width:100;height:100;" => style={{width:'100',height:'100'}}
345
362
  if (t.isStringLiteral(styleAttribute.value)) {
@@ -350,9 +367,11 @@ export default function (babel: {
350
367
  }
351
368
  const expressionType = expression.type
352
369
 
370
+ let _arrayExpression
371
+ // 非rn场景,style不支持数组,因此需要将数组转换为对象
353
372
  // style={[styles.a, styles.b]} ArrayExpression
354
373
  if (expressionType === 'ArrayExpression') {
355
- expression.elements = arrayExpression.concat(expression.elements)
374
+ _arrayExpression = arrayExpression.concat(expression.elements)
356
375
  // style={styles.a} MemberExpression
357
376
  // style={{ height: 100 }} ObjectExpression
358
377
  // style={{ ...custom }} ObjectExpression
@@ -361,10 +380,13 @@ export default function (babel: {
361
380
  // style={this.props.useCustom ? custom : null} ConditionalExpression
362
381
  // style={custom || other} LogicalExpression
363
382
  } else {
364
- styleAttribute.value = t.jSXExpressionContainer(t.arrayExpression(arrayExpression.concat(expression)))
383
+ _arrayExpression = arrayExpression.concat(expression)
365
384
  }
385
+ styleAttribute.value = t.jSXExpressionContainer(t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression))
366
386
  } else {
367
- 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]
368
390
  attributes.push(t.jSXAttribute(t.jSXIdentifier(key === DEFAULT_STYLE_KEY ? key : (key + 'Style')), t.jSXExpressionContainer(expression)))
369
391
  }
370
392
  } else if (hasStyleAttribute) {
package/src/types.ts CHANGED
@@ -6,7 +6,8 @@ export interface PluginOptions {
6
6
  enableMultipleClassName?: boolean
7
7
  }
8
8
 
9
+ // @ts-ignore
9
10
  export interface ConvertPluginPass extends PluginPass {
10
11
  file: any
11
- opts: PluginOptions | undefined
12
+ opts?: PluginOptions
12
13
  }
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
  }