@tarojs/taroize 3.8.0-canary.0 → 4.0.0-alpha.10

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/lib/src/utils.js CHANGED
@@ -1,19 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_Component_SET = exports.codeFrameError = exports.setting = exports.buildImportStatement = exports.buildRender = exports.pascalName = exports.buildBlockElement = exports.buildTemplate = exports.parseCode = exports.isValidVarName = exports.isAliasThis = void 0;
3
+ exports.addLocInfo = exports.IReportError = exports.createErrorCodeMsg = exports.astToCode = exports.printToLogFile = exports.updateLogFileContent = exports.getLineBreak = exports.isCommonjsModule = exports.DEFAULT_Component_SET = exports.codeFrameError = exports.setting = exports.buildImportStatement = exports.buildRender = exports.pascalName = exports.buildBlockElement = exports.buildTemplate = exports.parseCode = exports.isValidVarName = exports.normalizePath = void 0;
4
4
  const code_frame_1 = require("@babel/code-frame");
5
- const babel_core_1 = require("babel-core");
6
- const template = require("babel-template");
7
- const t = require("babel-types");
5
+ const generator_1 = require("@babel/generator");
6
+ const parser_1 = require("@babel/parser");
7
+ const template_1 = require("@babel/template");
8
+ const traverse_1 = require("@babel/traverse");
9
+ const t = require("@babel/types");
10
+ const helper_1 = require("@tarojs/helper");
8
11
  const lodash_1 = require("lodash");
9
- function isAliasThis(p, name) {
10
- const binding = p.scope.getBinding(name);
11
- if (binding) {
12
- return binding.path.isVariableDeclarator() && binding.path.get('init').isThisExpression();
12
+ const prettier = require("prettier");
13
+ const global_1 = require("./global");
14
+ const prettierJSConfig = {
15
+ semi: false,
16
+ singleQuote: true,
17
+ parser: 'babel',
18
+ };
19
+ // export function isAliasThis (p: NodePath<t.Node>, name: string) {
20
+ // const binding = p.scope.getBinding(name)
21
+ // if (binding) {
22
+ // return binding.path.isVariableDeclarator() && t.isThisExpression(binding.path.get('init'))
23
+ // }
24
+ // return false
25
+ // }
26
+ /**
27
+ * 标准化传入路径
28
+ *
29
+ * @param path 如D:\\admin格式路径
30
+ * @returns 替换\\返回标准路径
31
+ */
32
+ function normalizePath(path) {
33
+ if (typeof path === 'undefined') {
34
+ return '';
13
35
  }
14
- return false;
36
+ return path.replace(/\\/g, '/');
15
37
  }
16
- exports.isAliasThis = isAliasThis;
38
+ exports.normalizePath = normalizePath;
17
39
  function isValidVarName(str) {
18
40
  if (typeof str !== 'string') {
19
41
  return false;
@@ -31,28 +53,78 @@ function isValidVarName(str) {
31
53
  return true;
32
54
  }
33
55
  exports.isValidVarName = isValidVarName;
34
- function parseCode(code) {
35
- return (0, babel_core_1.transform)(code, {
36
- parserOpts: {
37
- sourceType: 'module',
38
- plugins: [
39
- 'classProperties',
40
- 'jsx',
41
- 'flow',
42
- 'flowComment',
43
- 'trailingFunctionCommas',
44
- 'asyncFunctions',
45
- 'exponentiationOperator',
46
- 'asyncGenerators',
47
- 'objectRestSpread',
48
- 'decorators',
49
- 'dynamicImport'
50
- ]
56
+ function parseCode(code, scriptPath) {
57
+ updateLogFileContent(`INFO [taroize] parseCode - 入参${getLineBreak()}scriptPath: ${scriptPath} ${getLineBreak()}`);
58
+ let ast = {};
59
+ try {
60
+ if (typeof scriptPath !== 'undefined') {
61
+ ast = (0, parser_1.parse)(code, {
62
+ sourceFilename: scriptPath,
63
+ sourceType: 'module',
64
+ plugins: [
65
+ 'jsx',
66
+ 'flow',
67
+ 'decorators-legacy',
68
+ ['optionalChainingAssign', { version: '2023-07' }],
69
+ 'sourcePhaseImports',
70
+ 'throwExpressions',
71
+ 'deferredImportEvaluation',
72
+ 'exportDefaultFrom'
73
+ ],
74
+ });
75
+ }
76
+ else {
77
+ ast = (0, parser_1.parse)(code, {
78
+ sourceType: 'module',
79
+ plugins: [
80
+ 'jsx',
81
+ 'flow',
82
+ 'decorators-legacy',
83
+ ['optionalChainingAssign', { version: '2023-07' }],
84
+ 'sourcePhaseImports',
85
+ 'throwExpressions',
86
+ 'deferredImportEvaluation',
87
+ 'exportDefaultFrom'
88
+ ],
89
+ });
90
+ }
91
+ }
92
+ catch (error) {
93
+ updateLogFileContent(`ERROR [taroize] parseCode - 转换代码异常 ${getLineBreak()}${error} ${getLineBreak()}`);
94
+ // 结尾注释会引起 parseCode 报错,因此收录到报告中
95
+ if (error.message.includes('Unterminated comment')) {
96
+ throw new IReportError('WXML代码解析失败, 代码中存在不完整的注释', 'UnterminatedComment', 'WXML_FILE', code || '');
51
97
  }
52
- }).ast;
98
+ }
99
+ // 移除Flow类型注释
100
+ (0, traverse_1.default)(ast, {
101
+ TypeAnnotation(path) {
102
+ path.remove();
103
+ },
104
+ });
105
+ return ast;
53
106
  }
54
107
  exports.parseCode = parseCode;
55
- const buildTemplate = (str) => template(str)().expression;
108
+ const buildTemplate = (str) => {
109
+ // 检查字符串中是否包含占位符
110
+ const hasPlaceholder = /{{\s*(\w+)\s*}/.test(str);
111
+ let ast;
112
+ if (hasPlaceholder) {
113
+ // 如果存在占位符,则使用模板创建AST
114
+ const astTemplate = (0, template_1.default)(str);
115
+ ast = astTemplate({});
116
+ }
117
+ else {
118
+ // 否则直接解析字符串为AST
119
+ ast = (0, parser_1.parse)(str).program.body[0];
120
+ }
121
+ if (t.isExpressionStatement(ast)) {
122
+ return ast.expression;
123
+ }
124
+ else {
125
+ throw new IReportError(`Invalid AST. Expected an ExpressionStatement`, 'InvalidASTError', 'WXML_FILE', str);
126
+ }
127
+ };
56
128
  exports.buildTemplate = buildTemplate;
57
129
  function buildBlockElement() {
58
130
  return t.jSXElement(t.jSXOpeningElement(t.jSXIdentifier('Block'), []), t.jSXClosingElement(t.jSXIdentifier('Block')), []);
@@ -67,44 +139,58 @@ function buildRender(returned, stateKeys, propsKeys, templateType) {
67
139
  const returnStatement = [t.returnStatement(returned)];
68
140
  if (stateKeys.length) {
69
141
  const stateDecl = t.variableDeclaration('const', [
70
- t.variableDeclarator(t.objectPattern(Array.from(new Set(stateKeys)).filter(s => !propsKeys.includes(s)).map(s => t.objectProperty(t.identifier(s), t.identifier(s), false, true))), t.memberExpression(t.thisExpression(), t.identifier('data')))
142
+ t.variableDeclarator(t.objectPattern(Array.from(new Set(stateKeys))
143
+ .filter((s) => !propsKeys.includes(s))
144
+ .map((s) => t.objectProperty(t.identifier(s), t.identifier(s), false, true))), t.memberExpression(t.thisExpression(), t.identifier('data'))),
71
145
  ]);
72
146
  returnStatement.unshift(stateDecl);
73
147
  }
74
148
  if (propsKeys.length) {
75
- let patterns = t.objectPattern(Array.from(new Set(propsKeys)).map(s => t.objectProperty(t.identifier(s), t.identifier(s), false, true)));
149
+ let patterns = t.objectPattern(Array.from(new Set(propsKeys)).map((s) => t.objectProperty(t.identifier(s), t.identifier(s), false, true)));
76
150
  if (typeof templateType === 'string') {
77
151
  patterns = t.objectPattern([
78
152
  t.objectProperty(t.identifier('data'), templateType === 'wxParseData'
79
- ? t.objectPattern([t.objectProperty(t.identifier('wxParseData'), t.identifier('wxParseData'))])
80
- : t.identifier(templateType))
153
+ ? t.objectPattern([
154
+ t.objectProperty(t.identifier('wxParseData'), t.identifier('wxParseData')),
155
+ ])
156
+ : t.identifier(templateType)),
81
157
  ]);
82
158
  }
83
159
  else if (Array.isArray(templateType)) {
84
- patterns = t.objectPattern([
85
- t.objectProperty(t.identifier('data'), patterns)
86
- ]);
160
+ patterns = t.objectPattern([t.objectProperty(t.identifier('data'), patterns)]);
87
161
  }
88
162
  const stateDecl = t.variableDeclaration('const', [
89
- t.variableDeclarator(patterns, t.memberExpression(t.thisExpression(), t.identifier('props')))
163
+ t.variableDeclarator(patterns, t.memberExpression(t.thisExpression(), t.identifier('props'))),
90
164
  ]);
91
165
  returnStatement.unshift(stateDecl);
92
166
  }
93
167
  return t.classMethod('method', t.identifier('render'), [], t.blockStatement(returnStatement));
94
168
  }
95
169
  exports.buildRender = buildRender;
96
- function buildImportStatement(source, specifiers = [], defaultSpec) {
97
- return t.importDeclaration(defaultSpec ? [defaultSpec, ...specifiers].map((spec, index) => {
98
- if (index === 0) {
99
- return t.importDefaultSpecifier(t.identifier(defaultSpec));
170
+ function buildImportStatement(source, specifiers = [], defaultSpec, isCommonjsModule) {
171
+ if (isCommonjsModule) {
172
+ if (defaultSpec && specifiers.length > 0) {
173
+ throw new Error(`commomjs模块不支持同时引入default和非default模块,default:${defaultSpec}, 非default:${specifiers}`);
100
174
  }
101
- return t.importSpecifier(t.identifier(spec), t.identifier(spec));
102
- }) : specifiers.map(s => t.importSpecifier(t.identifier(s), t.identifier(s))), t.stringLiteral(source));
175
+ return t.variableDeclaration('const', [
176
+ t.variableDeclarator(defaultSpec
177
+ ? t.identifier(defaultSpec)
178
+ : t.objectPattern(specifiers.map((specifier) => t.objectProperty(t.identifier(specifier), t.identifier(specifier)))), t.callExpression(t.identifier('require'), [t.stringLiteral(source)])),
179
+ ]);
180
+ }
181
+ return t.importDeclaration(defaultSpec
182
+ ? [defaultSpec, ...specifiers].map((spec, index) => {
183
+ if (index === 0) {
184
+ return t.importDefaultSpecifier(t.identifier(defaultSpec));
185
+ }
186
+ return t.importSpecifier(t.identifier(spec), t.identifier(spec));
187
+ })
188
+ : specifiers.map((s) => t.importSpecifier(t.identifier(s), t.identifier(s))), t.stringLiteral(source));
103
189
  }
104
190
  exports.buildImportStatement = buildImportStatement;
105
191
  exports.setting = {
106
192
  sourceCode: '',
107
- rootPath: ''
193
+ rootPath: '',
108
194
  };
109
195
  function codeFrameError(node, msg) {
110
196
  let errMsg = '';
@@ -169,6 +255,148 @@ exports.DEFAULT_Component_SET = new Set([
169
255
  'NavigationBar',
170
256
  'PageMeta',
171
257
  'VoipRoom',
172
- 'AdCustom'
258
+ 'AdCustom',
173
259
  ]);
260
+ /**
261
+ * 根据关键字exports判断是否为commonjs模块
262
+ *
263
+ * @param {} bodyNode
264
+ * @returns {boolean}
265
+ */
266
+ function isCommonjsModule(bodyNode) {
267
+ return bodyNode.some((p) => {
268
+ if (t.isExpressionStatement(p) && t.isAssignmentExpression(p.expression)) {
269
+ const expression = p.expression;
270
+ // 1、module.exports.num = num 2、module.exports = {}
271
+ const isModuleExports = (expression.left.type === 'MemberExpression' &&
272
+ expression.left.object.type === 'MemberExpression' &&
273
+ expression.left.object.property.type === 'Identifier' &&
274
+ expression.left.object.property.name === 'exports') ||
275
+ (expression.left.type === 'MemberExpression' &&
276
+ expression.left.property.type === 'Identifier' &&
277
+ expression.left.property.name === 'exports');
278
+ // exports.num = num
279
+ const isExports = expression.left.type === 'MemberExpression' &&
280
+ expression.left.object.type === 'Identifier' &&
281
+ expression.left.object.name === 'exports';
282
+ return isModuleExports || isExports;
283
+ }
284
+ return false;
285
+ });
286
+ }
287
+ exports.isCommonjsModule = isCommonjsModule;
288
+ /**
289
+ * 获取不同操作系统下的换行符
290
+ *
291
+ * @returns { string } 换行符
292
+ */
293
+ function getLineBreak() {
294
+ if (process.platform === 'win32') {
295
+ return '\r\n';
296
+ }
297
+ return '\n';
298
+ }
299
+ exports.getLineBreak = getLineBreak;
300
+ /**
301
+ * 记录数据到logFileContent中
302
+ *
303
+ * @param data 日志数据
304
+ */
305
+ function updateLogFileContent(data) {
306
+ try {
307
+ global_1.globals.logFileContent += data;
308
+ }
309
+ catch (error) {
310
+ console.error(`记录日志数据异常 ${error.message}`);
311
+ }
312
+ }
313
+ exports.updateLogFileContent = updateLogFileContent;
314
+ /**
315
+ * 写入数据到日志文件中
316
+ *
317
+ */
318
+ function printToLogFile() {
319
+ try {
320
+ helper_1.fs.appendFile(global_1.globals.logFilePath, global_1.globals.logFileContent);
321
+ global_1.globals.logFileContent = '';
322
+ }
323
+ catch (error) {
324
+ console.error(`写入日志文件异常 ${error.message}`);
325
+ throw new IReportError('写日志文件异常', 'WriteLogException', global_1.globals.logFilePath, '');
326
+ }
327
+ }
328
+ exports.printToLogFile = printToLogFile;
329
+ /**
330
+ * 将部分 ast 节点转为代码片段
331
+ * @param ast
332
+ * @returns
333
+ */
334
+ function astToCode(ast) {
335
+ if (!ast)
336
+ return '';
337
+ try {
338
+ let formatCode = prettier.format((0, generator_1.default)(ast).code, prettierJSConfig);
339
+ if (formatCode.startsWith(';')) {
340
+ formatCode = formatCode.slice(1);
341
+ }
342
+ return formatCode;
343
+ }
344
+ catch (err) {
345
+ //
346
+ }
347
+ }
348
+ exports.astToCode = astToCode;
349
+ /**
350
+ * 创建 errorCodeMsg 对象
351
+ * @param msgType 错误类型
352
+ * @param describe 错误描述
353
+ * @param code 错误代码
354
+ * @param filePath 错误信息所在文件路径
355
+ * @returns
356
+ */
357
+ function createErrorCodeMsg(msgType, describe, code, filePath, position) {
358
+ const errorCodeMsg = {
359
+ msgType,
360
+ describe,
361
+ codeBeforeConvert: {
362
+ filePath,
363
+ code,
364
+ location: { start: position || { col: 0, row: 0 } },
365
+ },
366
+ };
367
+ global_1.globals.errCodeMsgs.push(errorCodeMsg);
368
+ }
369
+ exports.createErrorCodeMsg = createErrorCodeMsg;
370
+ /**
371
+ * 拓展原生 Error 属性
372
+ */
373
+ class IReportError extends Error {
374
+ constructor(message, msgType, filePath, code, location) {
375
+ super(message);
376
+ this.msgType = msgType || '';
377
+ this.filePath = filePath || '';
378
+ this.code = code || '';
379
+ this.location = location || { col: 0, row: 0 };
380
+ }
381
+ }
382
+ exports.IReportError = IReportError;
383
+ /**
384
+ * 将oldElement的position信息赋值给newElement的position属性
385
+ *
386
+ * @param newElement 新节点
387
+ * @param oldElement 旧节点
388
+ * @returns newElement 添加位置信息的新节点
389
+ */
390
+ function addLocInfo(newElement, oldElement) {
391
+ if (oldElement && oldElement.position) {
392
+ const position = oldElement.position;
393
+ const newPosition = {
394
+ start: { line: (position === null || position === void 0 ? void 0 : position.start.line) + 1, column: (position === null || position === void 0 ? void 0 : position.start.column) + 1 },
395
+ end: { line: (position === null || position === void 0 ? void 0 : position.end.line) + 1, column: (position === null || position === void 0 ? void 0 : position.end.column) + 1 }
396
+ };
397
+ newElement.position = newPosition;
398
+ }
399
+ return newElement;
400
+ }
401
+ exports.addLocInfo = addLocInfo;
174
402
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}