babel-plugin-transform-react-jsx-to-rn-stylesheet 4.0.1-alpha.0 → 4.0.1

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/LICENSE CHANGED
@@ -154,8 +154,15 @@ See `/LICENSE` for details of the license.
154
154
 
155
155
  ==================
156
156
 
157
+ MIT (stencil-vue2-output-target):
158
+ The following files embed [stencil-vue2-output-target](https://github.com/diondree/stencil-vue2-output-target) MIT:
159
+ `/packages/taro-components-library-vue2/src/vue-component-lib/utils.ts`
160
+ See `/LICENSE` for details of the license.
161
+
162
+ ==================
163
+
157
164
  MIT (weui):
158
- The following files embed [weui](https://github.com/Tencent/weui) MIT:
165
+ The following files embed [stencil-vue2-output-target](https://github.com/Tencent/weui) MIT:
159
166
  `/packages/taro-components/src/components/*.scss`
160
167
  See `/LICENSE.txt` for details of the license.
161
168
 
@@ -165,10 +172,3 @@ Apache-2.0 (intersection-observer):
165
172
  The following files embed [intersection-observer](https://github.com/GoogleChromeLabs/intersection-observer) Apache-2.0:
166
173
  `/packages/taro-api/src/polyfill/intersection-observer.ts`
167
174
  See `/LICENSE.txt` for details of the license.
168
-
169
- ==================
170
-
171
- MIT (babel-plugin-jsx-dom-expressions):
172
- The following files embed [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/blob/main/packages/babel-plugin-jsx-dom-expressions) MIT:
173
- `/packages/babel-plugin-transform-solid-jsx/src/*`
174
- See `/LICENSE` for details of the license.
package/dist/index.js CHANGED
@@ -26,8 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const path = __importStar(require("node:path"));
30
29
  const camelize_1 = __importDefault(require("camelize"));
30
+ const path = __importStar(require("path"));
31
31
  const taro_css_to_react_native_1 = require("taro-css-to-react-native");
32
32
  const STYLE_SHEET_NAME = '_styleSheet';
33
33
  const GET_STYLE_FUNC_NAME = '_getStyle';
@@ -177,129 +177,18 @@ function default_1(babel) {
177
177
  }
178
178
  return str === '' ? [] : getMap(str);
179
179
  }
180
- function getArrayExpressionFromObjectProperty(value) {
181
- let str;
182
- if (!value || value.value === '') {
183
- // className: ""
184
- return [];
185
- }
186
- else if ((value.type === 'CallExpression' || value.type === 'Identifier') && typeof value.value !== 'string') {
187
- // className: "".concat(classPrefix, "-left")
188
- // className: classNames([ classPrefix, className ])
189
- // className: cls
190
- return [t.callExpression(t.identifier(GET_STYLE_FUNC_NAME), [value])];
191
- }
192
- return !str ? [] : getMap(str);
193
- }
194
180
  function getMatchRule(enableMultipleClassName) {
195
181
  if (enableMultipleClassName) {
196
182
  return {
197
183
  styleMatchRule: /[sS]tyle$/,
198
- classNameMatchRule: /[cC]lassName$/
184
+ classNameMathRule: /[cC]lassName$/
199
185
  };
200
186
  }
201
187
  return {
202
188
  styleMatchRule: /^style$/,
203
- classNameMatchRule: /^className$/
189
+ classNameMathRule: /^className$/
204
190
  };
205
191
  }
206
- function processStyleAndClassName({ attributes, state, existStyleImport, isFromJSX, }) {
207
- var _a;
208
- const { file, opts = {} } = state;
209
- const { enableMultipleClassName = false } = opts;
210
- const { styleMatchRule, classNameMatchRule } = getMatchRule(enableMultipleClassName);
211
- const styleNameMapping = {};
212
- const DEFAULT_STYLE_KEY = 'style';
213
- attributes.forEach(attribute => {
214
- var _a, _b;
215
- if (isFromJSX && !t.isJSXAttribute(attribute))
216
- return;
217
- const attrNameString = t.isJSXAttribute(attribute) ? (_a = attribute.name) === null || _a === void 0 ? void 0 : _a.name : (_b = attribute.key) === null || _b === void 0 ? void 0 : _b.name;
218
- if (!attrNameString || typeof attrNameString !== 'string')
219
- return;
220
- if (attrNameString.match(styleMatchRule)) {
221
- const prefix = attrNameString.replace(styleMatchRule, '') || DEFAULT_STYLE_KEY;
222
- styleNameMapping[prefix] = Object.assign(Object.assign({}, styleNameMapping[prefix] || {}), { hasStyleAttribute: true, styleAttribute: attribute });
223
- }
224
- if (attrNameString.match(classNameMatchRule)) {
225
- const prefix = attrNameString.replace(classNameMatchRule, '') || DEFAULT_STYLE_KEY;
226
- styleNameMapping[prefix] = Object.assign(Object.assign({}, styleNameMapping[prefix] || {}), { hasClassName: true, classNameAttribute: attribute });
227
- }
228
- });
229
- for (const key in styleNameMapping) {
230
- const { hasClassName, classNameAttribute, hasStyleAttribute, styleAttribute } = styleNameMapping[key];
231
- if (!(hasClassName && existStyleImport) && hasStyleAttribute && t.isStringLiteral(styleAttribute === null || styleAttribute === void 0 ? void 0 : styleAttribute.value)) {
232
- const cssObject = string2Object((_a = styleAttribute === null || styleAttribute === void 0 ? void 0 : styleAttribute.value) === null || _a === void 0 ? void 0 : _a.value);
233
- styleAttribute.value = isFromJSX
234
- ? t.jSXExpressionContainer(object2Expression(template, cssObject))
235
- : object2Expression(template, cssObject);
236
- }
237
- if (hasClassName && existStyleImport) {
238
- attributes.splice(attributes.indexOf(classNameAttribute), 1);
239
- if (isFromJSX) {
240
- if (classNameAttribute.value &&
241
- t.isJSXExpressionContainer(classNameAttribute.value) &&
242
- typeof classNameAttribute.value.expression.value !== 'string' // not like className={'container'}
243
- ) {
244
- file.set('injectGetStyle', true);
245
- }
246
- }
247
- else {
248
- if (classNameAttribute.value) {
249
- file.set('injectGetStyle', true);
250
- }
251
- }
252
- const arrayExpression = isFromJSX
253
- ? getArrayExpression(classNameAttribute.value)
254
- : getArrayExpressionFromObjectProperty(classNameAttribute.value);
255
- if (arrayExpression.length === 0)
256
- return;
257
- if (arrayExpression.length > 1)
258
- file.set('hasMultiStyle', true);
259
- if (hasStyleAttribute && (styleAttribute === null || styleAttribute === void 0 ? void 0 : styleAttribute.value)) {
260
- file.set('hasMultiStyle', true);
261
- let expression;
262
- // 支持 行内 style 转成oject:style="width:100;height:100;" => style={{width:'100',height:'100'}}
263
- if (t.isStringLiteral(styleAttribute.value)) {
264
- const cssObject = string2Object(styleAttribute.value.value);
265
- expression = object2Expression(template, cssObject);
266
- }
267
- else {
268
- expression = isFromJSX ? styleAttribute.value.expression : styleAttribute.value;
269
- }
270
- const expressionType = expression.type;
271
- let _arrayExpression;
272
- // 非rn场景,style不支持数组,因此需要将数组转换为对象
273
- // style={[styles.a, styles.b]} ArrayExpression
274
- if (expressionType === 'ArrayExpression') {
275
- _arrayExpression = arrayExpression.concat(expression.elements);
276
- // style={styles.a} MemberExpression
277
- // style={{ height: 100 }} ObjectExpression
278
- // style={{ ...custom }} ObjectExpression
279
- // style={custom} Identifier
280
- // style={getStyle()} CallExpression
281
- // style={this.props.useCustom ? custom : null} ConditionalExpression
282
- // style={custom || other} LogicalExpression
283
- }
284
- else {
285
- _arrayExpression = arrayExpression.concat(expression);
286
- }
287
- styleAttribute.value = isFromJSX
288
- ? t.jSXExpressionContainer(t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression))
289
- : t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression);
290
- }
291
- else {
292
- const expression = arrayExpression.length > 1
293
- ? t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), arrayExpression)
294
- : arrayExpression[0];
295
- const newAttribute = isFromJSX
296
- ? t.jSXAttribute(t.jSXIdentifier(key === DEFAULT_STYLE_KEY ? key : `${key}Style`), t.jSXExpressionContainer(expression))
297
- : t.objectProperty(t.identifier(key === DEFAULT_STYLE_KEY ? key : (key + 'Style')), expression);
298
- attributes.push(newAttribute);
299
- }
300
- }
301
- }
302
- }
303
192
  let existStyleImport = false;
304
193
  return {
305
194
  name: 'transform-react-jsx-to-rn-stylesheet',
@@ -372,44 +261,99 @@ function default_1(babel) {
372
261
  },
373
262
  JSXOpeningElement(astPath, state) {
374
263
  const { node } = astPath;
264
+ const { file, opts = {} } = state;
265
+ const { enableMultipleClassName = false } = opts;
266
+ const { styleMatchRule, classNameMathRule } = getMatchRule(enableMultipleClassName);
267
+ const styleNameMapping = {};
268
+ const DEFAULT_STYLE_KEY = 'style';
375
269
  const attributes = node.attributes;
376
- processStyleAndClassName({
377
- attributes,
378
- state,
379
- existStyleImport,
380
- isFromJSX: true
381
- });
382
- },
383
- CallExpression(astPath, state) {
384
- // 支持编译后代码的 style 替换
385
- // React.createElement 参数
386
- const { node } = astPath;
387
- // 检查是否是 React.createElement 调用
388
- if (t.isMemberExpression(node.callee) &&
389
- t.isIdentifier(node.callee.object, { name: 'React' }) &&
390
- t.isIdentifier(node.callee.property, { name: 'createElement' })) {
391
- const args = node.arguments;
392
- if (args.length <= 1)
393
- return;
394
- let attributes;
395
- if (t.isCallExpression(args[1]) && t.isObjectExpression(args[1].arguments[0])) {
396
- // _object_spread({ className: rootClass(), style: rootStyle() }, rest)
397
- attributes = args[1].arguments[0].properties;
270
+ for (let i = 0; i < attributes.length; i++) {
271
+ const attribute = attributes[i];
272
+ if (!t.isJSXAttribute(attribute))
273
+ continue;
274
+ const name = attribute.name;
275
+ if (!name || typeof name.name !== 'string')
276
+ continue;
277
+ const attrNameString = name.name;
278
+ if (attrNameString.match(styleMatchRule)) {
279
+ const prefix = attrNameString.replace(styleMatchRule, '') || DEFAULT_STYLE_KEY;
280
+ styleNameMapping[prefix] = Object.assign(styleNameMapping[prefix] || {}, {
281
+ hasStyleAttribute: true,
282
+ styleAttribute: attribute
283
+ });
398
284
  }
399
- if (t.isObjectExpression(args[1])) {
400
- // { className: ..., style: ... }
401
- attributes = args[1].properties;
285
+ // 以className结尾的时候
286
+ if (attrNameString.match(classNameMathRule)) {
287
+ const prefix = attrNameString.replace(classNameMathRule, '') || DEFAULT_STYLE_KEY;
288
+ styleNameMapping[prefix] = Object.assign(styleNameMapping[prefix] || {}, {
289
+ hasClassName: true,
290
+ classNameAttribute: attribute
291
+ });
402
292
  }
403
- if (!attributes)
404
- return;
405
- processStyleAndClassName({
406
- attributes,
407
- state,
408
- existStyleImport,
409
- isFromJSX: false
410
- });
411
293
  }
412
- },
294
+ for (const key in styleNameMapping) {
295
+ const { hasClassName, classNameAttribute, hasStyleAttribute, styleAttribute } = styleNameMapping[key];
296
+ if (!(hasClassName && existStyleImport) && hasStyleAttribute) {
297
+ if (t.isStringLiteral(styleAttribute.value)) {
298
+ const cssObject = string2Object(styleAttribute.value.value);
299
+ styleAttribute.value = t.jSXExpressionContainer(object2Expression(template, cssObject));
300
+ }
301
+ }
302
+ if (hasClassName && existStyleImport) {
303
+ // Remove origin className
304
+ attributes.splice(attributes.indexOf(classNameAttribute), 1);
305
+ if (classNameAttribute.value &&
306
+ classNameAttribute.value.type === 'JSXExpressionContainer' &&
307
+ typeof classNameAttribute.value.expression.value !== 'string' // not like className={'container'}
308
+ ) {
309
+ file.set('injectGetStyle', true);
310
+ }
311
+ const arrayExpression = getArrayExpression(classNameAttribute.value);
312
+ if (arrayExpression.length === 0) {
313
+ return;
314
+ }
315
+ if (arrayExpression.length > 1) {
316
+ file.set('hasMultiStyle', true);
317
+ }
318
+ if (hasStyleAttribute && styleAttribute.value) {
319
+ file.set('hasMultiStyle', true);
320
+ let expression;
321
+ // 支持 行内 style 转成oject:style="width:100;height:100;" => style={{width:'100',height:'100'}}
322
+ if (t.isStringLiteral(styleAttribute.value)) {
323
+ const cssObject = string2Object(styleAttribute.value.value);
324
+ expression = object2Expression(template, cssObject);
325
+ }
326
+ else {
327
+ expression = styleAttribute.value.expression;
328
+ }
329
+ const expressionType = expression.type;
330
+ let _arrayExpression;
331
+ // 非rn场景,style不支持数组,因此需要将数组转换为对象
332
+ // style={[styles.a, styles.b]} ArrayExpression
333
+ if (expressionType === 'ArrayExpression') {
334
+ _arrayExpression = arrayExpression.concat(expression.elements);
335
+ // style={styles.a} MemberExpression
336
+ // style={{ height: 100 }} ObjectExpression
337
+ // style={{ ...custom }} ObjectExpression
338
+ // style={custom} Identifier
339
+ // style={getStyle()} CallExpression
340
+ // style={this.props.useCustom ? custom : null} ConditionalExpression
341
+ // style={custom || other} LogicalExpression
342
+ }
343
+ else {
344
+ _arrayExpression = arrayExpression.concat(expression);
345
+ }
346
+ styleAttribute.value = t.jSXExpressionContainer(t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression));
347
+ }
348
+ else {
349
+ const expression = arrayExpression.length > 1
350
+ ? t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), arrayExpression)
351
+ : arrayExpression[0];
352
+ attributes.push(t.jSXAttribute(t.jSXIdentifier(key === DEFAULT_STYLE_KEY ? key : (key + 'Style')), t.jSXExpressionContainer(expression)));
353
+ }
354
+ }
355
+ }
356
+ }
413
357
  }
414
358
  };
415
359
  }
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,37 +1,34 @@
1
1
  {
2
2
  "name": "babel-plugin-transform-react-jsx-to-rn-stylesheet",
3
- "version": "4.0.1-alpha.0",
3
+ "version": "4.0.1",
4
4
  "description": "Transform stylesheet selector to style in JSX Elements.",
5
- "author": "O2Team",
6
5
  "license": "MIT",
7
6
  "main": "dist/index.js",
8
- "bugs": {
9
- "url": "https://github.com/NervJS/taro/issues"
10
- },
11
7
  "repository": {
12
8
  "type": "git",
13
9
  "url": "git+https://github.com/NervJS/taro.git"
14
10
  },
11
+ "bugs": {
12
+ "url": "https://github.com/NervJS/taro/issues"
13
+ },
15
14
  "homepage": "https://github.com/NervJS/taro#readme",
16
15
  "engines": {
17
- "node": ">= 18"
16
+ "node": ">=12.0.0",
17
+ "npm": ">=6.0.0"
18
18
  },
19
19
  "dependencies": {
20
- "camelize": "^1.0.1",
21
- "taro-css-to-react-native": "4.0.1-alpha.0"
20
+ "camelize": "^1.0.0",
21
+ "taro-css-to-react-native": "4.0.1"
22
22
  },
23
23
  "devDependencies": {
24
- "@babel/core": "7.24.4",
25
- "@types/babel__core": "7.20.5",
26
- "babel-plugin-syntax-jsx": "6.18.0"
27
- },
28
- "peerDependencies": {
29
- "@babel/core": "^7.0.0"
24
+ "@babel/core": "^7.14.5",
25
+ "babel-jest": "^29.5.0",
26
+ "jest": "^29.3.1",
27
+ "jest-cli": "^29.3.1",
28
+ "ts-jest": "^29.0.5",
29
+ "typescript": "^4.7.4"
30
30
  },
31
31
  "scripts": {
32
- "prod": "pnpm run build",
33
- "prebuild": "pnpm run clean",
34
- "clean": "rimraf --impl=move-remove ./dist",
35
32
  "test": "jest",
36
33
  "test:ci": "jest --ci -i --coverage --silent",
37
34
  "dev": "tsc -w",
package/src/index.ts CHANGED
@@ -1,10 +1,9 @@
1
- import * as path from 'node:path'
2
-
1
+ import { PluginObj, template as Template, types as Types } from 'babel__core'
3
2
  import camelize from 'camelize'
3
+ import * as path from 'path'
4
4
  import { transformCSS } from 'taro-css-to-react-native'
5
5
 
6
- import type { PluginObj, template as Template, types as Types } from '@babel/core'
7
- import type { ConvertPluginPass as PluginPass } from './types'
6
+ import { ConvertPluginPass as PluginPass } from './types'
8
7
 
9
8
  const STYLE_SHEET_NAME = '_styleSheet'
10
9
  const GET_STYLE_FUNC_NAME = '_getStyle'
@@ -141,10 +140,11 @@ export default function (babel: {
141
140
 
142
141
  const getModuleClassNameFunctionStmt = template(getModuleClassNameFunction)()
143
142
 
143
+
144
144
  function getMap (str) {
145
145
  return str.split(/\s+/).map((className) => {
146
146
  // return template(`${STYLE_SHEET_NAME}["${className}"]`)().expression
147
- const stmt = template(`${STYLE_SHEET_NAME}["${className}"]`)() as Types.Node
147
+ const stmt = template(`${STYLE_SHEET_NAME}["${className}"]`)()
148
148
  if (t.isExpressionStatement(stmt)) {
149
149
  return stmt.expression
150
150
  }
@@ -171,149 +171,19 @@ export default function (babel: {
171
171
  return str === '' ? [] : getMap(str)
172
172
  }
173
173
 
174
- function getArrayExpressionFromObjectProperty (value) {
175
- let str
176
-
177
- if (!value || value.value === '') {
178
- // className: ""
179
- return []
180
- } else if ((value.type === 'CallExpression' || value.type === 'Identifier') && typeof value.value !== 'string') {
181
- // className: "".concat(classPrefix, "-left")
182
- // className: classNames([ classPrefix, className ])
183
- // className: cls
184
- return [t.callExpression(t.identifier(GET_STYLE_FUNC_NAME), [value])]
185
- }
186
-
187
- return !str ? [] : getMap(str)
188
- }
189
-
190
174
  function getMatchRule (enableMultipleClassName: boolean) {
191
175
  if (enableMultipleClassName) {
192
176
  return {
193
177
  styleMatchRule: /[sS]tyle$/,
194
- classNameMatchRule: /[cC]lassName$/
178
+ classNameMathRule: /[cC]lassName$/
195
179
  }
196
180
  }
197
181
 
198
182
  return {
199
183
  styleMatchRule: /^style$/,
200
- classNameMatchRule: /^className$/
201
- }
202
- }
203
-
204
- function processStyleAndClassName ({
205
- attributes,
206
- state,
207
- existStyleImport,
208
- isFromJSX,
209
- }) {
210
- const { file, opts = {} } = state
211
- const { enableMultipleClassName = false } = opts
212
- const { styleMatchRule, classNameMatchRule } = getMatchRule(enableMultipleClassName)
213
- const styleNameMapping = {}
214
- const DEFAULT_STYLE_KEY = 'style'
215
-
216
- attributes.forEach(attribute => {
217
- if (isFromJSX && !t.isJSXAttribute(attribute)) return
218
- const attrNameString = t.isJSXAttribute(attribute) ? attribute.name?.name : attribute.key?.name
219
- if (!attrNameString || typeof attrNameString !== 'string') return
220
- if (attrNameString.match(styleMatchRule)) {
221
- const prefix = attrNameString.replace(styleMatchRule, '') || DEFAULT_STYLE_KEY
222
- styleNameMapping[prefix] = {
223
- ...styleNameMapping[prefix] || {},
224
- hasStyleAttribute: true,
225
- styleAttribute: attribute
226
- }
227
- }
228
- if (attrNameString.match(classNameMatchRule)) {
229
- const prefix = attrNameString.replace(classNameMatchRule, '') || DEFAULT_STYLE_KEY
230
- styleNameMapping[prefix] = {
231
- ...styleNameMapping[prefix] || {},
232
- hasClassName: true,
233
- classNameAttribute: attribute
234
- }
235
- }
236
- })
237
-
238
- for (const key in styleNameMapping) {
239
- const { hasClassName, classNameAttribute, hasStyleAttribute, styleAttribute } = styleNameMapping[key]
240
-
241
- if (!(hasClassName && existStyleImport) && hasStyleAttribute && t.isStringLiteral(styleAttribute?.value)) {
242
- const cssObject = string2Object(styleAttribute?.value?.value)
243
- styleAttribute.value = isFromJSX
244
- ? t.jSXExpressionContainer(object2Expression(template, cssObject))
245
- : object2Expression(template, cssObject)
246
- }
247
-
248
- if (hasClassName && existStyleImport) {
249
- attributes.splice(attributes.indexOf(classNameAttribute), 1)
250
-
251
- if (isFromJSX) {
252
- if (
253
- classNameAttribute.value &&
254
- t.isJSXExpressionContainer(classNameAttribute.value) &&
255
- typeof classNameAttribute.value.expression.value !== 'string'// not like className={'container'}
256
- ) {
257
- file.set('injectGetStyle', true)
258
- }
259
- } else {
260
- if (classNameAttribute.value) {
261
- file.set('injectGetStyle', true)
262
- }
263
- }
264
-
265
- const arrayExpression = isFromJSX
266
- ? getArrayExpression(classNameAttribute.value)
267
- : getArrayExpressionFromObjectProperty(classNameAttribute.value)
268
-
269
- if (arrayExpression.length === 0) return
270
- if (arrayExpression.length > 1) file.set('hasMultiStyle', true)
271
-
272
- if (hasStyleAttribute && styleAttribute?.value) {
273
- file.set('hasMultiStyle', true)
274
- let expression
275
- // 支持 行内 style 转成oject:style="width:100;height:100;" => style={{width:'100',height:'100'}}
276
- if (t.isStringLiteral(styleAttribute.value)) {
277
- const cssObject = string2Object(styleAttribute.value.value)
278
- expression = object2Expression(template, cssObject)
279
- } else {
280
- expression = isFromJSX ? styleAttribute.value.expression : styleAttribute.value
281
- }
282
- const expressionType = expression.type
283
-
284
- let _arrayExpression
285
- // 非rn场景,style不支持数组,因此需要将数组转换为对象
286
- // style={[styles.a, styles.b]} ArrayExpression
287
- if (expressionType === 'ArrayExpression') {
288
- _arrayExpression = arrayExpression.concat(expression.elements)
289
- // style={styles.a} MemberExpression
290
- // style={{ height: 100 }} ObjectExpression
291
- // style={{ ...custom }} ObjectExpression
292
- // style={custom} Identifier
293
- // style={getStyle()} CallExpression
294
- // style={this.props.useCustom ? custom : null} ConditionalExpression
295
- // style={custom || other} LogicalExpression
296
- } else {
297
- _arrayExpression = arrayExpression.concat(expression)
298
- }
299
-
300
- styleAttribute.value = isFromJSX
301
- ? t.jSXExpressionContainer(t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression))
302
- : t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression)
303
- } else {
304
- const expression = arrayExpression.length > 1
305
- ? t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), arrayExpression)
306
- : arrayExpression[0]
307
-
308
- const newAttribute = isFromJSX
309
- ? t.jSXAttribute(t.jSXIdentifier(key === DEFAULT_STYLE_KEY ? key : `${key}Style`), t.jSXExpressionContainer(expression))
310
- : t.objectProperty(t.identifier(key === DEFAULT_STYLE_KEY ? key : (key + 'Style')), expression)
311
- attributes.push(newAttribute)
312
- }
313
- }
184
+ classNameMathRule: /^className$/
314
185
  }
315
186
  }
316
-
317
187
  let existStyleImport = false
318
188
 
319
189
  return {
@@ -385,49 +255,106 @@ export default function (babel: {
385
255
  },
386
256
  JSXOpeningElement (astPath, state: PluginPass) {
387
257
  const { node } = astPath
258
+ const { file, opts = {} } = state
259
+ const { enableMultipleClassName = false } = opts
260
+ const { styleMatchRule, classNameMathRule } = getMatchRule(enableMultipleClassName)
261
+
262
+ const styleNameMapping: any = {}
263
+ const DEFAULT_STYLE_KEY = 'style'
388
264
  const attributes = node.attributes
265
+ for (let i = 0; i < attributes.length; i++) {
266
+ const attribute = attributes[i]
267
+ if (!t.isJSXAttribute(attribute)) continue
268
+ const name = attribute.name
269
+ if (!name || typeof name.name !== 'string') continue
270
+ const attrNameString = name.name
271
+
272
+ if (attrNameString.match(styleMatchRule)) {
273
+ const prefix = attrNameString.replace(styleMatchRule, '') || DEFAULT_STYLE_KEY
274
+ styleNameMapping[prefix] = Object.assign(styleNameMapping[prefix] || {}, {
275
+ hasStyleAttribute: true,
276
+ styleAttribute: attribute
277
+ })
278
+ }
389
279
 
390
- processStyleAndClassName({
391
- attributes,
392
- state,
393
- existStyleImport,
394
- isFromJSX: true
395
- })
396
- },
397
- CallExpression (astPath, state: PluginPass) {
398
- // 支持编译后代码的 style 替换
399
- // React.createElement 参数
280
+ // 以className结尾的时候
281
+ if (attrNameString.match(classNameMathRule)) {
282
+ const prefix = attrNameString.replace(classNameMathRule, '') || DEFAULT_STYLE_KEY
283
+ styleNameMapping[prefix] = Object.assign(styleNameMapping[prefix] || {}, {
284
+ hasClassName: true,
285
+ classNameAttribute: attribute
286
+ })
287
+ }
288
+ }
400
289
 
401
- const { node } = astPath
402
- // 检查是否是 React.createElement 调用
403
- if (
404
- t.isMemberExpression(node.callee) &&
405
- t.isIdentifier(node.callee.object, { name: 'React' }) &&
406
- t.isIdentifier(node.callee.property, { name: 'createElement' })
407
- ) {
408
- const args = node.arguments
409
- if (args.length <= 1) return
410
-
411
- let attributes
412
-
413
- if (t.isCallExpression(args[1]) && t.isObjectExpression(args[1].arguments[0])) {
414
- // _object_spread({ className: rootClass(), style: rootStyle() }, rest)
415
- attributes = args[1].arguments[0].properties
290
+ for (const key in styleNameMapping) {
291
+ const { hasClassName, classNameAttribute, hasStyleAttribute, styleAttribute } = styleNameMapping[key]
292
+ if (!(hasClassName && existStyleImport) && hasStyleAttribute) {
293
+ if (t.isStringLiteral(styleAttribute.value)) {
294
+ const cssObject = string2Object(styleAttribute.value.value)
295
+ styleAttribute.value = t.jSXExpressionContainer(object2Expression(template, cssObject))
296
+ }
416
297
  }
417
- if (t.isObjectExpression(args[1])) {
418
- // { className: ..., style: ... }
419
- attributes = args[1].properties
298
+
299
+ if (hasClassName && existStyleImport) {
300
+ // Remove origin className
301
+ attributes.splice(attributes.indexOf(classNameAttribute), 1)
302
+
303
+ if (
304
+ classNameAttribute.value &&
305
+ classNameAttribute.value.type === 'JSXExpressionContainer' &&
306
+ typeof classNameAttribute.value.expression.value !== 'string'// not like className={'container'}
307
+ ) {
308
+ file.set('injectGetStyle', true)
309
+ }
310
+
311
+ const arrayExpression = getArrayExpression(classNameAttribute.value)
312
+
313
+ if (arrayExpression.length === 0) {
314
+ return
315
+ }
316
+
317
+ if (arrayExpression.length > 1) {
318
+ file.set('hasMultiStyle', true)
319
+ }
320
+
321
+ if (hasStyleAttribute && styleAttribute.value) {
322
+ file.set('hasMultiStyle', true)
323
+ let expression
324
+ // 支持 行内 style 转成oject:style="width:100;height:100;" => style={{width:'100',height:'100'}}
325
+ if (t.isStringLiteral(styleAttribute.value)) {
326
+ const cssObject = string2Object(styleAttribute.value.value)
327
+ expression = object2Expression(template, cssObject)
328
+ } else {
329
+ expression = styleAttribute.value.expression
330
+ }
331
+ const expressionType = expression.type
332
+
333
+ let _arrayExpression
334
+ // 非rn场景,style不支持数组,因此需要将数组转换为对象
335
+ // style={[styles.a, styles.b]} ArrayExpression
336
+ if (expressionType === 'ArrayExpression') {
337
+ _arrayExpression = arrayExpression.concat(expression.elements)
338
+ // style={styles.a} MemberExpression
339
+ // style={{ height: 100 }} ObjectExpression
340
+ // style={{ ...custom }} ObjectExpression
341
+ // style={custom} Identifier
342
+ // style={getStyle()} CallExpression
343
+ // style={this.props.useCustom ? custom : null} ConditionalExpression
344
+ // style={custom || other} LogicalExpression
345
+ } else {
346
+ _arrayExpression = arrayExpression.concat(expression)
347
+ }
348
+ styleAttribute.value = t.jSXExpressionContainer(t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), _arrayExpression))
349
+ } else {
350
+ const expression = arrayExpression.length > 1
351
+ ? t.callExpression(t.identifier(MERGE_ELE_STYLES_FUNC_NAME), arrayExpression)
352
+ : arrayExpression[0]
353
+ attributes.push(t.jSXAttribute(t.jSXIdentifier(key === DEFAULT_STYLE_KEY ? key : (key + 'Style')), t.jSXExpressionContainer(expression)))
354
+ }
420
355
  }
421
- if (!attributes) return
422
-
423
- processStyleAndClassName({
424
- attributes,
425
- state,
426
- existStyleImport,
427
- isFromJSX: false
428
- })
429
356
  }
430
- },
357
+ }
431
358
  }
432
359
  }
433
360
  }