babel-plugin-transform-react-jsx-to-rn-stylesheet 4.0.1 → 4.0.2

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,15 +154,8 @@ 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
-
164
157
  MIT (weui):
165
- The following files embed [stencil-vue2-output-target](https://github.com/Tencent/weui) MIT:
158
+ The following files embed [weui](https://github.com/Tencent/weui) MIT:
166
159
  `/packages/taro-components/src/components/*.scss`
167
160
  See `/LICENSE.txt` for details of the license.
168
161
 
@@ -172,3 +165,10 @@ Apache-2.0 (intersection-observer):
172
165
  The following files embed [intersection-observer](https://github.com/GoogleChromeLabs/intersection-observer) Apache-2.0:
173
166
  `/packages/taro-api/src/polyfill/intersection-observer.ts`
174
167
  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"));
29
30
  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,18 +177,129 @@ 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
+ }
180
194
  function getMatchRule(enableMultipleClassName) {
181
195
  if (enableMultipleClassName) {
182
196
  return {
183
197
  styleMatchRule: /[sS]tyle$/,
184
- classNameMathRule: /[cC]lassName$/
198
+ classNameMatchRule: /[cC]lassName$/
185
199
  };
186
200
  }
187
201
  return {
188
202
  styleMatchRule: /^style$/,
189
- classNameMathRule: /^className$/
203
+ classNameMatchRule: /^className$/
190
204
  };
191
205
  }
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
+ }
192
303
  let existStyleImport = false;
193
304
  return {
194
305
  name: 'transform-react-jsx-to-rn-stylesheet',
@@ -261,99 +372,44 @@ function default_1(babel) {
261
372
  },
262
373
  JSXOpeningElement(astPath, state) {
263
374
  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';
269
375
  const attributes = node.attributes;
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
- });
284
- }
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
- });
292
- }
293
- }
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
- }
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;
301
398
  }
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
- }
399
+ if (t.isObjectExpression(args[1])) {
400
+ // { className: ..., style: ... }
401
+ attributes = args[1].properties;
354
402
  }
403
+ if (!attributes)
404
+ return;
405
+ processStyleAndClassName({
406
+ attributes,
407
+ state,
408
+ existStyleImport,
409
+ isFromJSX: false
410
+ });
355
411
  }
356
- }
412
+ },
357
413
  }
358
414
  };
359
415
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA+B;AAC/B,2CAA4B;AAC5B,uEAAuD;AAIvD,MAAM,gBAAgB,GAAG,aAAa,CAAA;AACtC,MAAM,mBAAmB,GAAG,WAAW,CAAA;AACvC,MAAM,sBAAsB,GAAG,cAAc,CAAA;AAC7C,MAAM,0BAA0B,GAAG,iBAAiB,CAAA;AACpD,MAAM,6BAA6B,GAAG,qBAAqB,CAAA;AAE3D,MAAM,sBAAsB,GAAG,eAAe,CAAA;AAC9C,MAAM,WAAW,GAAG,YAAY,CAAA;AAChC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAE1E,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/B,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACrC,CAAC,CAAA;AAED,4DAA4D;AAC5D,MAAM,cAAc,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;AAEjG,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACpC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE;;QACP,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7C,GAAG,CAAC,CAAC,CAAC,GAAG,MAAA,GAAG,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACrC,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;IACJ,mBAAmB;IACnB,IAAI;QACF,MAAM,SAAS,GAAG,IAAA,uCAAY,EAAC,OAAO,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;KACjB;IAAC,WAAM;QACN,OAAO,GAAG,CAAA;KACX;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAChE,OAAO,MAAA,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAA;AAClC,CAAC,CAAA;AAED,SAAS,mBAAmB,CAAE,IAAI;IAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE;YACrC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAA;YAChC,OAAO,IAAI,CAAA;SACZ;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,mBAAmB,GAAG;WACjB,sBAAsB;;;;;;;;;;;;;CAahC,CAAA;AACD,MAAM,oBAAoB,GAAG;WAClB,sBAAsB;;;;;;;;;;cAUnB,sBAAsB;;;;;;;;;;;;;;CAcnC,CAAA;AACD,4DAA4D;AAC5D,MAAM,wBAAwB,GAAG;WACtB,0BAA0B;;;CAGpC,CAAA;AACD,MAAM,gBAAgB,GAAG;WACd,mBAAmB;oBACV,sBAAsB;;;yDAGe,gBAAgB;;;CAGxE,CAAA;AACD,MAAM,0BAA0B,GAAG;WACxB,6BAA6B;;;;;;;CAOvC,CAAA;AAED,mBAAyB,KAGxB;IACC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAEpC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAA;IAEjE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAA;IAEzD,MAAM,4BAA4B,GAAG,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAA;IAEzE,MAAM,8BAA8B,GAAG,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAA;IAG7E,SAAS,MAAM,CAAE,GAAG;QAClB,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACxC,sEAAsE;YACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,gBAAgB,KAAK,SAAS,IAAI,CAAC,EAAE,CAAA;YAC9D,IAAI,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;gBACjC,OAAO,IAAI,CAAC,UAAU,CAAA;aACvB;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,kBAAkB,CAAE,KAAK;QAChC,IAAI,GAAG,CAAA;QAEP,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;YAChC,YAAY;YACZ,eAAe;YACf,OAAO,EAAE,CAAA;SACV;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE;YACpH,kCAAkC;YAClC,uDAAuD;YACvD,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;SACjF;aAAM;YACL,wBAAwB;YACxB,0BAA0B;YAC1B,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;SACvE;QAED,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,SAAS,YAAY,CAAE,uBAAgC;QACrD,IAAI,uBAAuB,EAAE;YAC3B,OAAO;gBACL,cAAc,EAAE,WAAW;gBAC3B,iBAAiB,EAAE,eAAe;aACnC,CAAA;SACF;QAED,OAAO;YACL,cAAc,EAAE,SAAS;YACzB,iBAAiB,EAAE,aAAa;SACjC,CAAA;IACH,CAAC;IACD,IAAI,gBAAgB,GAAG,KAAK,CAAA;IAE5B,OAAO;QACL,IAAI,EAAE,sCAAsC;QAC5C,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,KAAK,CAAE,OAAO,EAAE,KAAiB;oBAC/B,IAAI,iBAAiB,CAAA;oBACrB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;wBACtC,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;4BACpC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gCACnC,gBAAgB,GAAG,IAAI,CAAA;gCACvB,4BAA4B;gCAC5B,qEAAqE;gCACrE,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;6BAClC;4BACD,iBAAiB,GAAG,IAAI,CAAA;yBACzB;qBACF;oBACD,IAAI,gBAAgB,EAAE;wBACpB,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;wBACtB,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAA;wBACrE,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAA;wBACnE,MAAM,wBAAwB,GAAG,CAAC,GAAG,qBAAqB,EAAE,GAAG,oBAAoB,CAAC,CAAA;wBACpF,IAAI,UAAU,CAAA;wBACd,oCAAoC;wBACpC,IAAI,wBAAwB,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC/E,UAAU,GAAG,OAAO,gBAAgB,MAAM,wBAAwB,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,CAAA;yBAC1F;6BAAM,IAAI,wBAAwB,CAAC,MAAM,IAAI,CAAC,EAAE;4BAC/C,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,cAAc,MAAM,IAAI,CAAC,iBAAiB,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;4BACxJ,UAAU,GAAG,GAAG,mBAAmB;oBAC7B,gBAAgB,MAAM,sBAAsB,IAAI,MAAM,MAAM,CAAA;yBACnE;6BAAM;4BACL,UAAU,GAAG,OAAO,gBAAgB,OAAO,CAAA;yBAC5C;wBACD,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;wBAC9C,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;qBAC7C;gBACH,CAAC;gBACD,IAAI,CAAE,OAAO,EAAE,KAAiB;oBAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;oBACtB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;oBACzB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;oBACjD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAA;oBACnE,oCAAoC;oBACpC,IAAI,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACpD,IAAI,cAAc,EAAE;wBAClB,aAAa;wBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAA;wBAChE,aAAa;wBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAA;qBAC7D;oBACD,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;wBAC7B,aAAa;wBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,4BAA4B,CAAC,CAAA;qBACrE;oBACD,2CAA2C;oBAC3C,IAAI,oBAAoB,CAAC,MAAM,EAAE;wBAC/B,aAAa;wBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,8BAA8B,CAAC,CAAA;wBACtE,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE,EAAE;4BACrE,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,MAAM,6BAA6B,IAAI,cAAc,MAAM,iBAAiB,IAAI,CAAA;4BACjI,aAAa;4BACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;wBACtE,CAAC,CAAC,CAAA;qBACH;oBACD,gBAAgB,GAAG,KAAK,CAAA;gBAC1B,CAAC;aACF;YACD,iBAAiB,CAAE,OAAO,EAAE,KAAiB;gBAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;gBACxB,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,CAAA;gBACjC,MAAM,EAAE,uBAAuB,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;gBAChD,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAA;gBAEnF,MAAM,gBAAgB,GAAQ,EAAE,CAAA;gBAChC,MAAM,iBAAiB,GAAG,OAAO,CAAA;gBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC/B,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC;wBAAE,SAAQ;oBAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;oBAC3B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;wBAAE,SAAQ;oBACpD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAA;oBAEhC,IAAI,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;wBACxC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAA;wBAC9E,gBAAgB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;4BACvE,iBAAiB,EAAE,IAAI;4BACvB,cAAc,EAAE,SAAS;yBAC1B,CAAC,CAAA;qBACH;oBAED,kBAAkB;oBAClB,IAAI,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;wBAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAA;wBACjF,gBAAgB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;4BACvE,YAAY,EAAE,IAAI;4BAClB,kBAAkB,EAAE,SAAS;yBAC9B,CAAC,CAAA;qBACH;iBACF;gBAED,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE;oBAClC,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;oBACrG,IAAI,CAAC,CAAC,YAAY,IAAI,gBAAgB,CAAC,IAAI,iBAAiB,EAAE;wBAC5D,IAAI,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;4BAC3C,MAAM,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;4BAC3D,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;yBACxF;qBACF;oBAED,IAAI,YAAY,IAAI,gBAAgB,EAAE;wBACpC,0BAA0B;wBAC1B,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAA;wBAE5D,IACE,kBAAkB,CAAC,KAAK;4BACxB,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,wBAAwB;4BAC1D,OAAO,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAA,mCAAmC;0BAChG;4BACA,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;yBACjC;wBAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;wBAEpE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;4BAChC,OAAM;yBACP;wBAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC9B,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;yBAChC;wBAED,IAAI,iBAAiB,IAAI,cAAc,CAAC,KAAK,EAAE;4BAC7C,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;4BAC/B,IAAI,UAAU,CAAA;4BACd,0FAA0F;4BAC1F,IAAI,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gCAC3C,MAAM,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gCAC3D,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;6BACpD;iCAAM;gCACL,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAA;6BAC7C;4BACD,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAA;4BAEtC,IAAI,gBAAgB,CAAA;4BACpB,gCAAgC;4BAChC,+CAA+C;4BAC/C,IAAI,cAAc,KAAK,iBAAiB,EAAE;gCACxC,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;gCAC9D,oCAAoC;gCACpC,2CAA2C;gCAC3C,yCAAyC;gCACzC,4BAA4B;gCAC5B,oCAAoC;gCACpC,qEAAqE;gCACrE,4CAA4C;6BAC7C;iCAAM;gCACL,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;6BACtD;4BACD,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAA;yBAC9H;6BAAM;4BACL,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;gCAC3C,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,eAAe,CAAC;gCAC7E,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;4BACtB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,KAAK,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;yBAC1I;qBACF;iBACF;YACH,CAAC;SACF;KACF,CAAA;AACH,CAAC;AAvOD,4BAuOC;AAED,+CAA+C;AAC/C,SAAS,iBAAiB,CAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;IAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACzB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACrC,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAA;IACrE,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAA;IACnE,MAAM,eAAe,GAAG,MAAA,KAAK,CAAC,IAAI,0CAAE,eAAe,CAAA;IAEnD,sBAAsB;IACtB,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;QACxB,UAAU;QACV,IAAI,cAAc,GAAG,EAAE,CAAA;QACvB,wCAAwC;QACxC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;SAC1C;QAED,IAAI,eAAe,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE;YAClD,IAAI,cAAc,EAAE;gBAClB,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,cAAc,aAAa,CAAC,CAAA;gBACtF,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAA;gBAC/C,eAAe;gBACf,oBAAoB,CAAC,IAAI,CAAC;oBACxB,cAAc,EAAE,oBAAoB;oBACpC,iBAAiB,EAAE,cAAc;iBAClC,CAAC,CAAA;aACH;SACF;aAAM;YACL,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;YACvD,aAAa;YACb,MAAM,gBAAgB,GAAG,WAAW,CAAA;YACpC,IAAI,wBAAwB,CAAA;YAC5B,IAAI,cAAc,EAAE;gBAClB,wBAAwB,GAAG,cAAc,CAAA;aAC1C;iBAAM;gBACL,cAAc,GAAG,IAAA,kBAAQ,EAAC,GAAG,eAAe,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,CAAA;gBACpE,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;gBACpE,iFAAiF;aAClF;YACD,MAAM,oBAAoB,GAAG,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;YAEnE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,CAAA;YAClE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;YAC/C,qBAAqB,CAAC,IAAI,CAAC;gBACzB,cAAc,EAAE,oBAAoB,CAAC,IAAI;aAC1C,CAAC,CAAA;SACH;KACF;IAED,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAA;IACxD,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,34 +1,37 @@
1
1
  {
2
2
  "name": "babel-plugin-transform-react-jsx-to-rn-stylesheet",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "Transform stylesheet selector to style in JSX Elements.",
5
+ "author": "O2Team",
5
6
  "license": "MIT",
6
7
  "main": "dist/index.js",
8
+ "bugs": {
9
+ "url": "https://github.com/NervJS/taro/issues"
10
+ },
7
11
  "repository": {
8
12
  "type": "git",
9
13
  "url": "git+https://github.com/NervJS/taro.git"
10
14
  },
11
- "bugs": {
12
- "url": "https://github.com/NervJS/taro/issues"
13
- },
14
15
  "homepage": "https://github.com/NervJS/taro#readme",
15
16
  "engines": {
16
- "node": ">=12.0.0",
17
- "npm": ">=6.0.0"
17
+ "node": ">= 18"
18
18
  },
19
19
  "dependencies": {
20
- "camelize": "^1.0.0",
21
- "taro-css-to-react-native": "4.0.1"
20
+ "camelize": "^1.0.1",
21
+ "taro-css-to-react-native": "4.0.2"
22
22
  },
23
23
  "devDependencies": {
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"
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"
30
30
  },
31
31
  "scripts": {
32
+ "prod": "pnpm run build",
33
+ "prebuild": "pnpm run clean",
34
+ "clean": "rimraf --impl=move-remove ./dist",
32
35
  "test": "jest",
33
36
  "test:ci": "jest --ci -i --coverage --silent",
34
37
  "dev": "tsc -w",
package/src/index.ts CHANGED
@@ -1,9 +1,10 @@
1
- import { PluginObj, template as Template, types as Types } from 'babel__core'
1
+ import * as path from 'node:path'
2
+
2
3
  import camelize from 'camelize'
3
- import * as path from 'path'
4
4
  import { transformCSS } from 'taro-css-to-react-native'
5
5
 
6
- import { ConvertPluginPass as PluginPass } from './types'
6
+ import type { PluginObj, template as Template, types as Types } from '@babel/core'
7
+ import type { ConvertPluginPass as PluginPass } from './types'
7
8
 
8
9
  const STYLE_SHEET_NAME = '_styleSheet'
9
10
  const GET_STYLE_FUNC_NAME = '_getStyle'
@@ -140,11 +141,10 @@ export default function (babel: {
140
141
 
141
142
  const getModuleClassNameFunctionStmt = template(getModuleClassNameFunction)()
142
143
 
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}"]`)()
147
+ const stmt = template(`${STYLE_SHEET_NAME}["${className}"]`)() as Types.Node
148
148
  if (t.isExpressionStatement(stmt)) {
149
149
  return stmt.expression
150
150
  }
@@ -171,19 +171,149 @@ 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
+
174
190
  function getMatchRule (enableMultipleClassName: boolean) {
175
191
  if (enableMultipleClassName) {
176
192
  return {
177
193
  styleMatchRule: /[sS]tyle$/,
178
- classNameMathRule: /[cC]lassName$/
194
+ classNameMatchRule: /[cC]lassName$/
179
195
  }
180
196
  }
181
197
 
182
198
  return {
183
199
  styleMatchRule: /^style$/,
184
- classNameMathRule: /^className$/
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
+ }
185
314
  }
186
315
  }
316
+
187
317
  let existStyleImport = false
188
318
 
189
319
  return {
@@ -255,106 +385,49 @@ export default function (babel: {
255
385
  },
256
386
  JSXOpeningElement (astPath, state: PluginPass) {
257
387
  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'
264
388
  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
- }
279
389
 
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
- }
390
+ processStyleAndClassName({
391
+ attributes,
392
+ state,
393
+ existStyleImport,
394
+ isFromJSX: true
395
+ })
396
+ },
397
+ CallExpression (astPath, state: PluginPass) {
398
+ // 支持编译后代码的 style 替换
399
+ // React.createElement 参数
289
400
 
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
- }
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
297
416
  }
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
- }
417
+ if (t.isObjectExpression(args[1])) {
418
+ // { className: ..., style: ... }
419
+ attributes = args[1].properties
355
420
  }
421
+ if (!attributes) return
422
+
423
+ processStyleAndClassName({
424
+ attributes,
425
+ state,
426
+ existStyleImport,
427
+ isFromJSX: false
428
+ })
356
429
  }
357
- }
430
+ },
358
431
  }
359
432
  }
360
433
  }