@teambit/typescript 0.0.0-02c0c8ffc2ebaf66ef5cbfc2e31c48e2b4acbfc7
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/cmds/check-types.cmd.ts +76 -0
- package/dist/cmds/check-types.cmd.d.ts +34 -0
- package/dist/cmds/check-types.cmd.js +101 -0
- package/dist/cmds/check-types.cmd.js.map +1 -0
- package/dist/compiler-options.d.ts +22 -0
- package/dist/compiler-options.js +3 -0
- package/dist/compiler-options.js.map +1 -0
- package/dist/esm.mjs +21 -0
- package/dist/exceptions/index.d.ts +1 -0
- package/dist/exceptions/index.js +20 -0
- package/dist/exceptions/index.js.map +1 -0
- package/dist/exceptions/transformer-not-found.d.ts +8 -0
- package/dist/exceptions/transformer-not-found.js +26 -0
- package/dist/exceptions/transformer-not-found.js.map +1 -0
- package/dist/export-identifier.d.ts +6 -0
- package/dist/export-identifier.js +29 -0
- package/dist/export-identifier.js.map +1 -0
- package/dist/extractor-options.d.ts +26 -0
- package/dist/extractor-options.js +3 -0
- package/dist/extractor-options.js.map +1 -0
- package/dist/identifier-list.d.ts +7 -0
- package/dist/identifier-list.js +21 -0
- package/dist/identifier-list.js.map +1 -0
- package/dist/identifier.d.ts +11 -0
- package/dist/identifier.js +45 -0
- package/dist/identifier.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1752542268171.js +7 -0
- package/dist/remove-types-task.d.ts +12 -0
- package/dist/remove-types-task.js +64 -0
- package/dist/remove-types-task.js.map +1 -0
- package/dist/schema-extractor-context.d.ts +162 -0
- package/dist/schema-extractor-context.js +745 -0
- package/dist/schema-extractor-context.js.map +1 -0
- package/dist/schema-transformer.d.ts +19 -0
- package/dist/schema-transformer.js +3 -0
- package/dist/schema-transformer.js.map +1 -0
- package/dist/schema-transformer.plugin.d.ts +9 -0
- package/dist/schema-transformer.plugin.js +22 -0
- package/dist/schema-transformer.plugin.js.map +1 -0
- package/dist/sourceFileTransformers/class.d.ts +2 -0
- package/dist/sourceFileTransformers/class.js +57 -0
- package/dist/sourceFileTransformers/class.js.map +1 -0
- package/dist/sourceFileTransformers/empty-line-encoder.d.ts +14 -0
- package/dist/sourceFileTransformers/empty-line-encoder.js +62 -0
- package/dist/sourceFileTransformers/empty-line-encoder.js.map +1 -0
- package/dist/sourceFileTransformers/export.d.ts +2 -0
- package/dist/sourceFileTransformers/export.js +58 -0
- package/dist/sourceFileTransformers/export.js.map +1 -0
- package/dist/sourceFileTransformers/expression-statement.d.ts +2 -0
- package/dist/sourceFileTransformers/expression-statement.js +58 -0
- package/dist/sourceFileTransformers/expression-statement.js.map +1 -0
- package/dist/sourceFileTransformers/function.d.ts +2 -0
- package/dist/sourceFileTransformers/function.js +119 -0
- package/dist/sourceFileTransformers/function.js.map +1 -0
- package/dist/sourceFileTransformers/import.d.ts +2 -0
- package/dist/sourceFileTransformers/import.js +71 -0
- package/dist/sourceFileTransformers/import.js.map +1 -0
- package/dist/sourceFileTransformers/index.d.ts +12 -0
- package/dist/sourceFileTransformers/index.js +137 -0
- package/dist/sourceFileTransformers/index.js.map +1 -0
- package/dist/sourceFileTransformers/interface.d.ts +2 -0
- package/dist/sourceFileTransformers/interface.js +50 -0
- package/dist/sourceFileTransformers/interface.js.map +1 -0
- package/dist/sourceFileTransformers/replaceName.d.ts +1 -0
- package/dist/sourceFileTransformers/replaceName.js +19 -0
- package/dist/sourceFileTransformers/replaceName.js.map +1 -0
- package/dist/sourceFileTransformers/transform.d.ts +12 -0
- package/dist/sourceFileTransformers/transform.js +76 -0
- package/dist/sourceFileTransformers/transform.js.map +1 -0
- package/dist/sourceFileTransformers/type-reference.d.ts +2 -0
- package/dist/sourceFileTransformers/type-reference.js +38 -0
- package/dist/sourceFileTransformers/type-reference.js.map +1 -0
- package/dist/sourceFileTransformers/typeAlias.d.ts +2 -0
- package/dist/sourceFileTransformers/typeAlias.js +41 -0
- package/dist/sourceFileTransformers/typeAlias.js.map +1 -0
- package/dist/sourceFileTransformers/variable.d.ts +2 -0
- package/dist/sourceFileTransformers/variable.js +41 -0
- package/dist/sourceFileTransformers/variable.js.map +1 -0
- package/dist/transform-source-file.spec.d.ts +1 -0
- package/dist/transform-source-file.spec.js +182 -0
- package/dist/transform-source-file.spec.js.map +1 -0
- package/dist/transformers/array-literal-expression.d.ts +10 -0
- package/dist/transformers/array-literal-expression.js +51 -0
- package/dist/transformers/array-literal-expression.js.map +1 -0
- package/dist/transformers/array-type.d.ts +10 -0
- package/dist/transformers/array-type.js +37 -0
- package/dist/transformers/array-type.js.map +1 -0
- package/dist/transformers/binding-element.d.ts +17 -0
- package/dist/transformers/binding-element.js +63 -0
- package/dist/transformers/binding-element.js.map +1 -0
- package/dist/transformers/class-declaration.d.ts +12 -0
- package/dist/transformers/class-declaration.js +116 -0
- package/dist/transformers/class-declaration.js.map +1 -0
- package/dist/transformers/conditional-type.d.ts +10 -0
- package/dist/transformers/conditional-type.js +38 -0
- package/dist/transformers/conditional-type.js.map +1 -0
- package/dist/transformers/constructor.d.ts +10 -0
- package/dist/transformers/constructor.js +49 -0
- package/dist/transformers/constructor.js.map +1 -0
- package/dist/transformers/decorator.d.ts +10 -0
- package/dist/transformers/decorator.js +54 -0
- package/dist/transformers/decorator.js.map +1 -0
- package/dist/transformers/enum-declaration.d.ts +10 -0
- package/dist/transformers/enum-declaration.js +60 -0
- package/dist/transformers/enum-declaration.js.map +1 -0
- package/dist/transformers/export-assignment.d.ts +14 -0
- package/dist/transformers/export-assignment.js +52 -0
- package/dist/transformers/export-assignment.js.map +1 -0
- package/dist/transformers/export-declaration.d.ts +10 -0
- package/dist/transformers/export-declaration.js +154 -0
- package/dist/transformers/export-declaration.js.map +1 -0
- package/dist/transformers/expression-statement.d.ts +10 -0
- package/dist/transformers/expression-statement.js +36 -0
- package/dist/transformers/expression-statement.js.map +1 -0
- package/dist/transformers/function-like.d.ts +11 -0
- package/dist/transformers/function-like.js +81 -0
- package/dist/transformers/function-like.js.map +1 -0
- package/dist/transformers/get-accessor.d.ts +10 -0
- package/dist/transformers/get-accessor.js +46 -0
- package/dist/transformers/get-accessor.js.map +1 -0
- package/dist/transformers/import-declaration.d.ts +10 -0
- package/dist/transformers/import-declaration.js +72 -0
- package/dist/transformers/import-declaration.js.map +1 -0
- package/dist/transformers/index-signature.d.ts +10 -0
- package/dist/transformers/index-signature.js +41 -0
- package/dist/transformers/index-signature.js.map +1 -0
- package/dist/transformers/index.d.ts +43 -0
- package/dist/transformers/index.js +566 -0
- package/dist/transformers/index.js.map +1 -0
- package/dist/transformers/indexed-access-type.d.ts +10 -0
- package/dist/transformers/indexed-access-type.js +36 -0
- package/dist/transformers/indexed-access-type.js.map +1 -0
- package/dist/transformers/interface-declaration.d.ts +11 -0
- package/dist/transformers/interface-declaration.js +86 -0
- package/dist/transformers/interface-declaration.js.map +1 -0
- package/dist/transformers/intersection-type.d.ts +10 -0
- package/dist/transformers/intersection-type.js +47 -0
- package/dist/transformers/intersection-type.js.map +1 -0
- package/dist/transformers/keyword-type.d.ts +13 -0
- package/dist/transformers/keyword-type.js +54 -0
- package/dist/transformers/keyword-type.js.map +1 -0
- package/dist/transformers/literal-type.d.ts +13 -0
- package/dist/transformers/literal-type.js +39 -0
- package/dist/transformers/literal-type.js.map +1 -0
- package/dist/transformers/literal-value.d.ts +11 -0
- package/dist/transformers/literal-value.js +35 -0
- package/dist/transformers/literal-value.js.map +1 -0
- package/dist/transformers/module-declaration.d.ts +10 -0
- package/dist/transformers/module-declaration.js +36 -0
- package/dist/transformers/module-declaration.js.map +1 -0
- package/dist/transformers/named-tuple.d.ts +10 -0
- package/dist/transformers/named-tuple.js +37 -0
- package/dist/transformers/named-tuple.js.map +1 -0
- package/dist/transformers/object-literal-expression.d.ts +9 -0
- package/dist/transformers/object-literal-expression.js +51 -0
- package/dist/transformers/object-literal-expression.js.map +1 -0
- package/dist/transformers/parameter.d.ts +13 -0
- package/dist/transformers/parameter.js +109 -0
- package/dist/transformers/parameter.js.map +1 -0
- package/dist/transformers/parenthesized-type.d.ts +10 -0
- package/dist/transformers/parenthesized-type.js +35 -0
- package/dist/transformers/parenthesized-type.js.map +1 -0
- package/dist/transformers/property-assignment.d.ts +9 -0
- package/dist/transformers/property-assignment.js +39 -0
- package/dist/transformers/property-assignment.js.map +1 -0
- package/dist/transformers/property-declaration.d.ts +11 -0
- package/dist/transformers/property-declaration.js +56 -0
- package/dist/transformers/property-declaration.js.map +1 -0
- package/dist/transformers/set-accessor.d.ts +10 -0
- package/dist/transformers/set-accessor.js +44 -0
- package/dist/transformers/set-accessor.js.map +1 -0
- package/dist/transformers/source-file-transformer.d.ts +15 -0
- package/dist/transformers/source-file-transformer.js +108 -0
- package/dist/transformers/source-file-transformer.js.map +1 -0
- package/dist/transformers/template-literal-type-span.d.ts +10 -0
- package/dist/transformers/template-literal-type-span.js +36 -0
- package/dist/transformers/template-literal-type-span.js.map +1 -0
- package/dist/transformers/template-literal-type.d.ts +10 -0
- package/dist/transformers/template-literal-type.js +44 -0
- package/dist/transformers/template-literal-type.js.map +1 -0
- package/dist/transformers/this-type.d.ts +10 -0
- package/dist/transformers/this-type.js +34 -0
- package/dist/transformers/this-type.js.map +1 -0
- package/dist/transformers/tuple-type.d.ts +10 -0
- package/dist/transformers/tuple-type.js +46 -0
- package/dist/transformers/tuple-type.js.map +1 -0
- package/dist/transformers/type-alias.d.ts +11 -0
- package/dist/transformers/type-alias.js +48 -0
- package/dist/transformers/type-alias.js.map +1 -0
- package/dist/transformers/type-literal.d.ts +14 -0
- package/dist/transformers/type-literal.js +48 -0
- package/dist/transformers/type-literal.js.map +1 -0
- package/dist/transformers/type-operator.d.ts +14 -0
- package/dist/transformers/type-operator.js +51 -0
- package/dist/transformers/type-operator.js.map +1 -0
- package/dist/transformers/type-predicate.d.ts +10 -0
- package/dist/transformers/type-predicate.js +37 -0
- package/dist/transformers/type-predicate.js.map +1 -0
- package/dist/transformers/type-query.d.ts +13 -0
- package/dist/transformers/type-query.js +41 -0
- package/dist/transformers/type-query.js.map +1 -0
- package/dist/transformers/type-reference.d.ts +17 -0
- package/dist/transformers/type-reference.js +58 -0
- package/dist/transformers/type-reference.js.map +1 -0
- package/dist/transformers/union-type.d.ts +10 -0
- package/dist/transformers/union-type.js +47 -0
- package/dist/transformers/union-type.js.map +1 -0
- package/dist/transformers/utils/jsdoc-to-doc-schema.d.ts +5 -0
- package/dist/transformers/utils/jsdoc-to-doc-schema.js +114 -0
- package/dist/transformers/utils/jsdoc-to-doc-schema.js.map +1 -0
- package/dist/transformers/utils/parse-type-from-quick-info.d.ts +36 -0
- package/dist/transformers/utils/parse-type-from-quick-info.js +111 -0
- package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -0
- package/dist/transformers/variable-declaration.d.ts +11 -0
- package/dist/transformers/variable-declaration.js +102 -0
- package/dist/transformers/variable-declaration.js.map +1 -0
- package/dist/transformers/variable-statement.d.ts +14 -0
- package/dist/transformers/variable-statement.js +67 -0
- package/dist/transformers/variable-statement.js.map +1 -0
- package/dist/tsconfig.default.json +25 -0
- package/dist/typescript.aspect.d.ts +2 -0
- package/dist/typescript.aspect.js +18 -0
- package/dist/typescript.aspect.js.map +1 -0
- package/dist/typescript.composition.d.ts +1 -0
- package/dist/typescript.composition.js +29 -0
- package/dist/typescript.composition.js.map +1 -0
- package/dist/typescript.docs.mdx +8 -0
- package/dist/typescript.extractor.d.ts +51 -0
- package/dist/typescript.extractor.js +254 -0
- package/dist/typescript.extractor.js.map +1 -0
- package/dist/typescript.main.runtime.d.ts +129 -0
- package/dist/typescript.main.runtime.js +400 -0
- package/dist/typescript.main.runtime.js.map +1 -0
- package/dist/typescript.parser.d.ts +12 -0
- package/dist/typescript.parser.js +141 -0
- package/dist/typescript.parser.js.map +1 -0
- package/dist/typescript.parser.spec.d.ts +1 -0
- package/dist/typescript.parser.spec.js +189 -0
- package/dist/typescript.parser.spec.js.map +1 -0
- package/esm.mjs +21 -0
- package/exceptions/index.ts +1 -0
- package/exceptions/transformer-not-found.ts +19 -0
- package/package.json +86 -0
- package/sourceFileTransformers/class.ts +73 -0
- package/sourceFileTransformers/empty-line-encoder.ts +56 -0
- package/sourceFileTransformers/export.ts +65 -0
- package/sourceFileTransformers/expression-statement.ts +48 -0
- package/sourceFileTransformers/function.ts +170 -0
- package/sourceFileTransformers/import.ts +101 -0
- package/sourceFileTransformers/index.ts +14 -0
- package/sourceFileTransformers/interface.ts +41 -0
- package/sourceFileTransformers/replaceName.ts +11 -0
- package/sourceFileTransformers/transform.ts +70 -0
- package/sourceFileTransformers/type-reference.ts +19 -0
- package/sourceFileTransformers/typeAlias.ts +25 -0
- package/sourceFileTransformers/variable.ts +25 -0
- package/transformers/array-literal-expression.ts +33 -0
- package/transformers/array-type.ts +21 -0
- package/transformers/binding-element.ts +34 -0
- package/transformers/class-declaration.ts +108 -0
- package/transformers/conditional-type.ts +23 -0
- package/transformers/constructor.ts +40 -0
- package/transformers/decorator.ts +28 -0
- package/transformers/enum-declaration.ts +31 -0
- package/transformers/export-assignment.ts +33 -0
- package/transformers/export-declaration.ts +182 -0
- package/transformers/expression-statement.ts +20 -0
- package/transformers/function-like.ts +70 -0
- package/transformers/get-accessor.ts +24 -0
- package/transformers/import-declaration.ts +56 -0
- package/transformers/index-signature.ts +25 -0
- package/transformers/index.ts +43 -0
- package/transformers/indexed-access-type.ts +21 -0
- package/transformers/interface-declaration.ts +66 -0
- package/transformers/intersection-type.ts +25 -0
- package/transformers/keyword-type.ts +39 -0
- package/transformers/literal-type.ts +23 -0
- package/transformers/literal-value.ts +38 -0
- package/transformers/module-declaration.ts +20 -0
- package/transformers/named-tuple.ts +22 -0
- package/transformers/object-literal-expression.ts +28 -0
- package/transformers/parameter.ts +122 -0
- package/transformers/parenthesized-type.ts +20 -0
- package/transformers/property-assignment.ts +23 -0
- package/transformers/property-declaration.ts +34 -0
- package/transformers/set-accessor.ts +25 -0
- package/transformers/source-file-transformer.ts +94 -0
- package/transformers/template-literal-type-span.ts +21 -0
- package/transformers/template-literal-type.ts +24 -0
- package/transformers/this-type.ts +19 -0
- package/transformers/tuple-type.ts +24 -0
- package/transformers/type-alias.ts +26 -0
- package/transformers/type-literal.ts +26 -0
- package/transformers/type-operator.ts +37 -0
- package/transformers/type-predicate.ts +22 -0
- package/transformers/type-query.ts +25 -0
- package/transformers/type-reference.ts +36 -0
- package/transformers/union-type.ts +25 -0
- package/transformers/utils/jsdoc-to-doc-schema.ts +121 -0
- package/transformers/utils/parse-type-from-quick-info.ts +99 -0
- package/transformers/variable-declaration.ts +111 -0
- package/transformers/variable-statement.ts +32 -0
- package/tsconfig.default.json +25 -0
- package/types/asset.d.ts +41 -0
- package/types/style.d.ts +42 -0
- package/typescript.composition.tsx +7 -0
- package/typescript.docs.mdx +8 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.functionNamesTransformer = void 0;
|
|
7
|
+
function _typescript() {
|
|
8
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
9
|
+
_typescript = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _replaceName() {
|
|
15
|
+
const data = require("./replaceName");
|
|
16
|
+
_replaceName = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
+
const functionNamesTransformer = mapping => {
|
|
23
|
+
return context => {
|
|
24
|
+
const updateTypeReference = node => {
|
|
25
|
+
try {
|
|
26
|
+
if (_typescript().default.isTypeReferenceNode(node) && node.typeName) {
|
|
27
|
+
const typeName = node.typeName.getText(node.getSourceFile());
|
|
28
|
+
const newTypeName = (0, _replaceName().replaceName)(typeName, mapping);
|
|
29
|
+
if (newTypeName) {
|
|
30
|
+
return _typescript().default.factory.updateTypeReferenceNode(node, _typescript().default.factory.createIdentifier(newTypeName), node.typeArguments);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return _typescript().default.visitEachChild(node, updateTypeReference, context);
|
|
34
|
+
} catch {
|
|
35
|
+
return node;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const visit = node => {
|
|
39
|
+
if (_typescript().default.isFunctionDeclaration(node) || _typescript().default.isArrowFunction(node) || _typescript().default.isFunctionExpression(node)) {
|
|
40
|
+
const functionName = node.name?.getText() ?? '';
|
|
41
|
+
const newName = Object.entries(mapping).find(([key]) => functionName.includes(key))?.[1] ?? functionName;
|
|
42
|
+
const parameters = node.parameters.map(param => {
|
|
43
|
+
const newParamType = param.type ? _typescript().default.visitNode(param.type, updateTypeReference) : param.type;
|
|
44
|
+
if (_typescript().default.isIdentifier(param.name)) {
|
|
45
|
+
const oldName = param.name.getText();
|
|
46
|
+
const newParamName = Object.keys(mapping).find(key => oldName.includes(key));
|
|
47
|
+
if (newParamName) {
|
|
48
|
+
return _typescript().default.factory.updateParameterDeclaration(param, param.modifiers, param.dotDotDotToken, _typescript().default.factory.createIdentifier(newParamName), param.questionToken, newParamType, param.initializer);
|
|
49
|
+
}
|
|
50
|
+
} else if (_typescript().default.isObjectBindingPattern(param.name)) {
|
|
51
|
+
const elements = param.name.elements.map(element => {
|
|
52
|
+
const newElementName = mapping[element.name.getText()];
|
|
53
|
+
if (newElementName) {
|
|
54
|
+
return _typescript().default.factory.updateBindingElement(element, element.dotDotDotToken, element.propertyName, _typescript().default.factory.createIdentifier(newElementName), element.initializer);
|
|
55
|
+
}
|
|
56
|
+
return element;
|
|
57
|
+
});
|
|
58
|
+
const newParamName = _typescript().default.factory.createObjectBindingPattern(elements);
|
|
59
|
+
return _typescript().default.factory.updateParameterDeclaration(param, param.modifiers, param.dotDotDotToken, newParamName, param.questionToken, newParamType, param.initializer);
|
|
60
|
+
}
|
|
61
|
+
return param;
|
|
62
|
+
});
|
|
63
|
+
if (_typescript().default.isFunctionDeclaration(node)) {
|
|
64
|
+
const updatedBody = node.body && _typescript().default.isBlock(node.body) ? updateReturnStatement(node.body) : node.body;
|
|
65
|
+
return _typescript().default.factory.updateFunctionDeclaration(node, node.modifiers, node.asteriskToken, newName ? _typescript().default.factory.createIdentifier(newName) : node.name, node.typeParameters, parameters, node.type, updatedBody);
|
|
66
|
+
}
|
|
67
|
+
if (_typescript().default.isArrowFunction(node)) {
|
|
68
|
+
const updatedBody = node.body && _typescript().default.isBlock(node.body) ? updateReturnStatement(node.body) : node.body;
|
|
69
|
+
return _typescript().default.factory.updateArrowFunction(node, node.modifiers, node.typeParameters, parameters, node.type, node.equalsGreaterThanToken, updatedBody);
|
|
70
|
+
}
|
|
71
|
+
if (_typescript().default.isFunctionExpression(node)) {
|
|
72
|
+
const updatedBody = node.body && _typescript().default.isBlock(node.body) ? updateReturnStatement(node.body) : node.body;
|
|
73
|
+
return _typescript().default.factory.updateFunctionExpression(node, node.modifiers, node.asteriskToken, newName ? _typescript().default.factory.createIdentifier(newName) : node.name, node.typeParameters, parameters, node.type, updatedBody);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return _typescript().default.visitEachChild(node, visit, context);
|
|
77
|
+
};
|
|
78
|
+
function updateReturnStatement(body) {
|
|
79
|
+
if (_typescript().default.isBlock(body)) {
|
|
80
|
+
const updatedStatements = [];
|
|
81
|
+
for (const statement of body.statements) {
|
|
82
|
+
if (_typescript().default.isReturnStatement(statement) && statement.expression && _typescript().default.isJsxElement(statement.expression)) {
|
|
83
|
+
const jsxElement = statement.expression;
|
|
84
|
+
const openingElement = jsxElement.openingElement;
|
|
85
|
+
const tagName = openingElement.tagName.getText();
|
|
86
|
+
const newTagName = mapping[tagName];
|
|
87
|
+
if (newTagName) {
|
|
88
|
+
const updatedTagName = _typescript().default.factory.createIdentifier(newTagName);
|
|
89
|
+
const updatedOpeningElement = _typescript().default.factory.updateJsxOpeningElement(openingElement, updatedTagName, openingElement.typeArguments, openingElement.attributes);
|
|
90
|
+
const updatedClosingElement = jsxElement.closingElement ? _typescript().default.factory.updateJsxClosingElement(jsxElement.closingElement, updatedTagName) : _typescript().default.factory.createJsxClosingElement(updatedTagName);
|
|
91
|
+
const updatedJsxElement = _typescript().default.factory.createJsxElement(updatedOpeningElement, jsxElement.children, updatedClosingElement);
|
|
92
|
+
const updatedStatement = _typescript().default.factory.createReturnStatement(updatedJsxElement);
|
|
93
|
+
updatedStatements.push(updatedStatement);
|
|
94
|
+
} else {
|
|
95
|
+
updatedStatements.push(statement);
|
|
96
|
+
}
|
|
97
|
+
} else {
|
|
98
|
+
updatedStatements.push(statement);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return _typescript().default.factory.updateBlock(body, updatedStatements);
|
|
102
|
+
}
|
|
103
|
+
if (_typescript().default.isExpressionStatement(body) && _typescript().default.isReturnStatement(body.expression) && body.expression.expression && _typescript().default.isIdentifier(body.expression.expression)) {
|
|
104
|
+
const oldName = body.expression.expression.text;
|
|
105
|
+
const newName = mapping[oldName];
|
|
106
|
+
if (newName) {
|
|
107
|
+
const updatedExpression = _typescript().default.factory.createIdentifier(newName);
|
|
108
|
+
const updatedReturnStatement = _typescript().default.factory.createReturnStatement(updatedExpression);
|
|
109
|
+
return _typescript().default.factory.createBlock([updatedReturnStatement], true);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return _typescript().default.factory.createBlock([], true);
|
|
113
|
+
}
|
|
114
|
+
return node => _typescript().default.visitNode(node, visit);
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
exports.functionNamesTransformer = functionNamesTransformer;
|
|
118
|
+
|
|
119
|
+
//# sourceMappingURL=function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","_replaceName","e","__esModule","default","functionNamesTransformer","mapping","context","updateTypeReference","node","ts","isTypeReferenceNode","typeName","getText","getSourceFile","newTypeName","replaceName","factory","updateTypeReferenceNode","createIdentifier","typeArguments","visitEachChild","visit","isFunctionDeclaration","isArrowFunction","isFunctionExpression","functionName","name","newName","Object","entries","find","key","includes","parameters","map","param","newParamType","type","visitNode","isIdentifier","oldName","newParamName","keys","updateParameterDeclaration","modifiers","dotDotDotToken","questionToken","initializer","isObjectBindingPattern","elements","element","newElementName","updateBindingElement","propertyName","createObjectBindingPattern","updatedBody","body","isBlock","updateReturnStatement","updateFunctionDeclaration","asteriskToken","typeParameters","updateArrowFunction","equalsGreaterThanToken","updateFunctionExpression","updatedStatements","statement","statements","isReturnStatement","expression","isJsxElement","jsxElement","openingElement","tagName","newTagName","updatedTagName","updatedOpeningElement","updateJsxOpeningElement","attributes","updatedClosingElement","closingElement","updateJsxClosingElement","createJsxClosingElement","updatedJsxElement","createJsxElement","children","updatedStatement","createReturnStatement","push","updateBlock","isExpressionStatement","text","updatedExpression","updatedReturnStatement","createBlock","exports"],"sources":["function.ts"],"sourcesContent":["import ts from 'typescript';\nimport { SourceFileTransformer } from './index';\nimport { replaceName } from './replaceName';\n\nexport const functionNamesTransformer: SourceFileTransformer = (mapping: Record<string, string>) => {\n return (context) => {\n const updateTypeReference: ts.Visitor = (node) => {\n try {\n if (ts.isTypeReferenceNode(node) && node.typeName) {\n const typeName = node.typeName.getText(node.getSourceFile());\n const newTypeName = replaceName(typeName, mapping);\n if (newTypeName) {\n return ts.factory.updateTypeReferenceNode(\n node,\n ts.factory.createIdentifier(newTypeName),\n node.typeArguments\n );\n }\n }\n return ts.visitEachChild(node, updateTypeReference, context);\n } catch {\n return node;\n }\n };\n\n const visit: ts.Visitor = (node) => {\n if (ts.isFunctionDeclaration(node) || ts.isArrowFunction(node) || ts.isFunctionExpression(node)) {\n const functionName = node.name?.getText() ?? '';\n const newName = Object.entries(mapping).find(([key]) => functionName.includes(key))?.[1] ?? functionName;\n const parameters = node.parameters.map((param) => {\n const newParamType = param.type ? (ts.visitNode(param.type, updateTypeReference) as ts.TypeNode) : param.type;\n if (ts.isIdentifier(param.name)) {\n const oldName = param.name.getText();\n const newParamName = Object.keys(mapping).find((key) => oldName.includes(key));\n if (newParamName) {\n return ts.factory.updateParameterDeclaration(\n param,\n param.modifiers,\n param.dotDotDotToken,\n ts.factory.createIdentifier(newParamName),\n param.questionToken,\n newParamType,\n param.initializer\n );\n }\n } else if (ts.isObjectBindingPattern(param.name)) {\n const elements = param.name.elements.map((element) => {\n const newElementName = mapping[element.name.getText()];\n if (newElementName) {\n return ts.factory.updateBindingElement(\n element,\n element.dotDotDotToken,\n element.propertyName,\n ts.factory.createIdentifier(newElementName),\n element.initializer\n );\n }\n return element;\n });\n const newParamName = ts.factory.createObjectBindingPattern(elements);\n return ts.factory.updateParameterDeclaration(\n param,\n param.modifiers,\n param.dotDotDotToken,\n newParamName,\n param.questionToken,\n newParamType,\n param.initializer\n );\n }\n return param;\n });\n\n if (ts.isFunctionDeclaration(node)) {\n const updatedBody = node.body && ts.isBlock(node.body) ? updateReturnStatement(node.body) : node.body;\n return ts.factory.updateFunctionDeclaration(\n node,\n node.modifiers,\n node.asteriskToken,\n newName ? ts.factory.createIdentifier(newName) : node.name,\n node.typeParameters,\n parameters,\n node.type,\n updatedBody\n );\n }\n if (ts.isArrowFunction(node)) {\n const updatedBody = node.body && ts.isBlock(node.body) ? updateReturnStatement(node.body) : node.body;\n return ts.factory.updateArrowFunction(\n node,\n node.modifiers,\n node.typeParameters,\n parameters,\n node.type,\n node.equalsGreaterThanToken,\n updatedBody\n );\n }\n if (ts.isFunctionExpression(node)) {\n const updatedBody = node.body && ts.isBlock(node.body) ? updateReturnStatement(node.body) : node.body;\n return ts.factory.updateFunctionExpression(\n node,\n node.modifiers,\n node.asteriskToken,\n newName ? ts.factory.createIdentifier(newName) : node.name,\n node.typeParameters,\n parameters,\n node.type,\n updatedBody\n );\n }\n }\n return ts.visitEachChild(node, visit, context);\n };\n\n function updateReturnStatement(body: ts.ConciseBody): ts.Block {\n if (ts.isBlock(body)) {\n const updatedStatements: ts.Statement[] = [];\n for (const statement of body.statements) {\n if (ts.isReturnStatement(statement) && statement.expression && ts.isJsxElement(statement.expression)) {\n const jsxElement = statement.expression;\n const openingElement = jsxElement.openingElement;\n const tagName = openingElement.tagName.getText();\n const newTagName = mapping[tagName];\n if (newTagName) {\n const updatedTagName = ts.factory.createIdentifier(newTagName);\n const updatedOpeningElement = ts.factory.updateJsxOpeningElement(\n openingElement,\n updatedTagName,\n openingElement.typeArguments,\n openingElement.attributes\n );\n const updatedClosingElement = jsxElement.closingElement\n ? ts.factory.updateJsxClosingElement(jsxElement.closingElement, updatedTagName)\n : ts.factory.createJsxClosingElement(updatedTagName);\n const updatedJsxElement = ts.factory.createJsxElement(\n updatedOpeningElement,\n jsxElement.children,\n updatedClosingElement\n );\n const updatedStatement = ts.factory.createReturnStatement(updatedJsxElement);\n updatedStatements.push(updatedStatement);\n } else {\n updatedStatements.push(statement);\n }\n } else {\n updatedStatements.push(statement);\n }\n }\n return ts.factory.updateBlock(body, updatedStatements);\n }\n if (\n ts.isExpressionStatement(body) &&\n ts.isReturnStatement(body.expression) &&\n body.expression.expression &&\n ts.isIdentifier(body.expression.expression)\n ) {\n const oldName = body.expression.expression.text;\n const newName = mapping[oldName];\n if (newName) {\n const updatedExpression = ts.factory.createIdentifier(newName);\n const updatedReturnStatement = ts.factory.createReturnStatement(updatedExpression);\n return ts.factory.createBlock([updatedReturnStatement], true);\n }\n }\n return ts.factory.createBlock([], true);\n }\n return (node) => ts.visitNode(node, visit) as ts.SourceFile;\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.importTransformer = void 0;
|
|
7
|
+
function _typescript() {
|
|
8
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
9
|
+
_typescript = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
const importTransformer = mapping => {
|
|
16
|
+
return context => {
|
|
17
|
+
const visit = node => {
|
|
18
|
+
if (_typescript().default.isImportDeclaration(node)) {
|
|
19
|
+
let moduleSpecifier = node.moduleSpecifier.getText().slice(1, -1);
|
|
20
|
+
for (const [oldName, newName] of Object.entries(mapping)) {
|
|
21
|
+
if (moduleSpecifier.includes(oldName)) {
|
|
22
|
+
moduleSpecifier = moduleSpecifier.replace(oldName, newName);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (node.importClause?.namedBindings && _typescript().default.isNamedImports(node.importClause.namedBindings)) {
|
|
26
|
+
const transformedBindings = node.importClause.namedBindings.elements.map(element => {
|
|
27
|
+
let originalName = element.propertyName ? element.propertyName.text : element.name.text;
|
|
28
|
+
const aliasName = element.name.text;
|
|
29
|
+
for (const [oldName, newName] of Object.entries(mapping)) {
|
|
30
|
+
if (originalName.startsWith(oldName) || originalName.endsWith(oldName)) {
|
|
31
|
+
originalName = originalName.replace(oldName, newName);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return _typescript().default.factory.updateImportSpecifier(element, false, element.propertyName ? _typescript().default.factory.createIdentifier(originalName) : undefined, _typescript().default.factory.createIdentifier(aliasName));
|
|
35
|
+
});
|
|
36
|
+
const updatedImportClause = _typescript().default.factory.updateImportClause(node.importClause, node.importClause.isTypeOnly, node.importClause.name, _typescript().default.factory.createNamedImports(transformedBindings));
|
|
37
|
+
return _typescript().default.factory.updateImportDeclaration(node, node.modifiers, updatedImportClause, _typescript().default.factory.createStringLiteral(moduleSpecifier), undefined);
|
|
38
|
+
}
|
|
39
|
+
return _typescript().default.factory.updateImportDeclaration(node, node.modifiers, node.importClause, _typescript().default.factory.createStringLiteral(moduleSpecifier), undefined);
|
|
40
|
+
}
|
|
41
|
+
if (_typescript().default.isImportEqualsDeclaration(node)) {
|
|
42
|
+
let moduleSpecifier = node.moduleReference.getText().slice(1, -1);
|
|
43
|
+
for (const [oldName, newName] of Object.entries(mapping)) {
|
|
44
|
+
if (moduleSpecifier.includes(oldName)) {
|
|
45
|
+
moduleSpecifier = moduleSpecifier.replace(oldName, newName);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const updatedImportEqualsDeclaration = _typescript().default.factory.updateImportEqualsDeclaration(node, node.modifiers, node.isTypeOnly, node.name, _typescript().default.factory.createExternalModuleReference(_typescript().default.factory.createStringLiteral(moduleSpecifier)));
|
|
49
|
+
return updatedImportEqualsDeclaration;
|
|
50
|
+
}
|
|
51
|
+
if (_typescript().default.isCallExpression(node) && _typescript().default.isIdentifier(node.expression) && node.expression.text === 'require') {
|
|
52
|
+
const [firstArg] = node.arguments;
|
|
53
|
+
if (_typescript().default.isStringLiteral(firstArg)) {
|
|
54
|
+
let moduleSpecifier = firstArg.text;
|
|
55
|
+
for (const [oldName, newName] of Object.entries(mapping)) {
|
|
56
|
+
if (moduleSpecifier.includes(oldName)) {
|
|
57
|
+
moduleSpecifier = moduleSpecifier.replace(oldName, newName);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const updatedArg = _typescript().default.factory.createStringLiteral(moduleSpecifier);
|
|
61
|
+
return _typescript().default.factory.updateCallExpression(node, node.expression, node.typeArguments, [updatedArg, ...node.arguments.slice(1)]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return _typescript().default.visitEachChild(node, visit, context);
|
|
65
|
+
};
|
|
66
|
+
return node => _typescript().default.visitNode(node, visit);
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
exports.importTransformer = importTransformer;
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","e","__esModule","default","importTransformer","mapping","context","visit","node","ts","isImportDeclaration","moduleSpecifier","getText","slice","oldName","newName","Object","entries","includes","replace","importClause","namedBindings","isNamedImports","transformedBindings","elements","map","element","originalName","propertyName","text","name","aliasName","startsWith","endsWith","factory","updateImportSpecifier","createIdentifier","undefined","updatedImportClause","updateImportClause","isTypeOnly","createNamedImports","updateImportDeclaration","modifiers","createStringLiteral","isImportEqualsDeclaration","moduleReference","updatedImportEqualsDeclaration","updateImportEqualsDeclaration","createExternalModuleReference","isCallExpression","isIdentifier","expression","firstArg","arguments","isStringLiteral","updatedArg","updateCallExpression","typeArguments","visitEachChild","visitNode","exports"],"sources":["import.ts"],"sourcesContent":["import ts from 'typescript';\nimport { SourceFileTransformer } from './index';\n\nexport const importTransformer: SourceFileTransformer = (mapping: Record<string, string>) => {\n return (context) => {\n const visit: ts.Visitor = (node) => {\n if (ts.isImportDeclaration(node)) {\n let moduleSpecifier = node.moduleSpecifier.getText().slice(1, -1);\n for (const [oldName, newName] of Object.entries(mapping)) {\n if (moduleSpecifier.includes(oldName)) {\n moduleSpecifier = moduleSpecifier.replace(oldName, newName);\n }\n }\n\n if (node.importClause?.namedBindings && ts.isNamedImports(node.importClause.namedBindings)) {\n const transformedBindings = node.importClause.namedBindings.elements.map((element) => {\n let originalName = element.propertyName ? element.propertyName.text : element.name.text;\n const aliasName = element.name.text;\n\n for (const [oldName, newName] of Object.entries(mapping)) {\n if (originalName.startsWith(oldName) || originalName.endsWith(oldName)) {\n originalName = originalName.replace(oldName, newName);\n }\n }\n\n return ts.factory.updateImportSpecifier(\n element,\n false,\n element.propertyName ? ts.factory.createIdentifier(originalName) : undefined,\n ts.factory.createIdentifier(aliasName)\n );\n });\n\n const updatedImportClause = ts.factory.updateImportClause(\n node.importClause,\n node.importClause.isTypeOnly,\n node.importClause.name,\n ts.factory.createNamedImports(transformedBindings)\n );\n\n return ts.factory.updateImportDeclaration(\n node,\n node.modifiers,\n updatedImportClause,\n ts.factory.createStringLiteral(moduleSpecifier),\n undefined\n );\n }\n\n return ts.factory.updateImportDeclaration(\n node,\n node.modifiers,\n node.importClause,\n ts.factory.createStringLiteral(moduleSpecifier),\n undefined\n );\n }\n if (ts.isImportEqualsDeclaration(node)) {\n let moduleSpecifier = node.moduleReference.getText().slice(1, -1);\n for (const [oldName, newName] of Object.entries(mapping)) {\n if (moduleSpecifier.includes(oldName)) {\n moduleSpecifier = moduleSpecifier.replace(oldName, newName);\n }\n }\n\n const updatedImportEqualsDeclaration = ts.factory.updateImportEqualsDeclaration(\n node,\n node.modifiers,\n node.isTypeOnly,\n node.name,\n ts.factory.createExternalModuleReference(ts.factory.createStringLiteral(moduleSpecifier))\n );\n\n return updatedImportEqualsDeclaration;\n }\n\n if (ts.isCallExpression(node) && ts.isIdentifier(node.expression) && node.expression.text === 'require') {\n const [firstArg] = node.arguments;\n\n if (ts.isStringLiteral(firstArg)) {\n let moduleSpecifier = firstArg.text;\n\n for (const [oldName, newName] of Object.entries(mapping)) {\n if (moduleSpecifier.includes(oldName)) {\n moduleSpecifier = moduleSpecifier.replace(oldName, newName);\n }\n }\n\n const updatedArg = ts.factory.createStringLiteral(moduleSpecifier);\n return ts.factory.updateCallExpression(node, node.expression, node.typeArguments, [\n updatedArg,\n ...node.arguments.slice(1),\n ]);\n }\n }\n\n return ts.visitEachChild(node, visit, context);\n };\n return (node) => ts.visitNode(node, visit) as ts.SourceFile;\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export type SourceFileTransformer = (mapping: Record<string, string>) => ts.TransformerFactory<ts.SourceFile>;
|
|
3
|
+
export { classNamesTransformer } from './class';
|
|
4
|
+
export { interfaceNamesTransformer } from './interface';
|
|
5
|
+
export { variableNamesTransformer } from './variable';
|
|
6
|
+
export { functionNamesTransformer } from './function';
|
|
7
|
+
export { typeAliasNamesTransformer } from './typeAlias';
|
|
8
|
+
export { importTransformer } from './import';
|
|
9
|
+
export { expressionStatementTransformer } from './expression-statement';
|
|
10
|
+
export { exportTransformer } from './export';
|
|
11
|
+
export { transformSourceFile } from './transform';
|
|
12
|
+
export { typeReferenceTransformer } from './type-reference';
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "classNamesTransformer", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _class().classNamesTransformer;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "exportTransformer", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _export().exportTransformer;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "expressionStatementTransformer", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _expressionStatement().expressionStatementTransformer;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "functionNamesTransformer", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _function().functionNamesTransformer;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "importTransformer", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _import().importTransformer;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "interfaceNamesTransformer", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _interface().interfaceNamesTransformer;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "transformSourceFile", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _transform().transformSourceFile;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "typeAliasNamesTransformer", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _typeAlias().typeAliasNamesTransformer;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "typeReferenceTransformer", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _typeReference().typeReferenceTransformer;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "variableNamesTransformer", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _variable().variableNamesTransformer;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
function _class() {
|
|
67
|
+
const data = require("./class");
|
|
68
|
+
_class = function () {
|
|
69
|
+
return data;
|
|
70
|
+
};
|
|
71
|
+
return data;
|
|
72
|
+
}
|
|
73
|
+
function _interface() {
|
|
74
|
+
const data = require("./interface");
|
|
75
|
+
_interface = function () {
|
|
76
|
+
return data;
|
|
77
|
+
};
|
|
78
|
+
return data;
|
|
79
|
+
}
|
|
80
|
+
function _variable() {
|
|
81
|
+
const data = require("./variable");
|
|
82
|
+
_variable = function () {
|
|
83
|
+
return data;
|
|
84
|
+
};
|
|
85
|
+
return data;
|
|
86
|
+
}
|
|
87
|
+
function _function() {
|
|
88
|
+
const data = require("./function");
|
|
89
|
+
_function = function () {
|
|
90
|
+
return data;
|
|
91
|
+
};
|
|
92
|
+
return data;
|
|
93
|
+
}
|
|
94
|
+
function _typeAlias() {
|
|
95
|
+
const data = require("./typeAlias");
|
|
96
|
+
_typeAlias = function () {
|
|
97
|
+
return data;
|
|
98
|
+
};
|
|
99
|
+
return data;
|
|
100
|
+
}
|
|
101
|
+
function _import() {
|
|
102
|
+
const data = require("./import");
|
|
103
|
+
_import = function () {
|
|
104
|
+
return data;
|
|
105
|
+
};
|
|
106
|
+
return data;
|
|
107
|
+
}
|
|
108
|
+
function _expressionStatement() {
|
|
109
|
+
const data = require("./expression-statement");
|
|
110
|
+
_expressionStatement = function () {
|
|
111
|
+
return data;
|
|
112
|
+
};
|
|
113
|
+
return data;
|
|
114
|
+
}
|
|
115
|
+
function _export() {
|
|
116
|
+
const data = require("./export");
|
|
117
|
+
_export = function () {
|
|
118
|
+
return data;
|
|
119
|
+
};
|
|
120
|
+
return data;
|
|
121
|
+
}
|
|
122
|
+
function _transform() {
|
|
123
|
+
const data = require("./transform");
|
|
124
|
+
_transform = function () {
|
|
125
|
+
return data;
|
|
126
|
+
};
|
|
127
|
+
return data;
|
|
128
|
+
}
|
|
129
|
+
function _typeReference() {
|
|
130
|
+
const data = require("./type-reference");
|
|
131
|
+
_typeReference = function () {
|
|
132
|
+
return data;
|
|
133
|
+
};
|
|
134
|
+
return data;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_class","data","require","_interface","_variable","_function","_typeAlias","_import","_expressionStatement","_export","_transform","_typeReference"],"sources":["index.ts"],"sourcesContent":["import ts from 'typescript';\n\nexport type SourceFileTransformer = (mapping: Record<string, string>) => ts.TransformerFactory<ts.SourceFile>;\n\nexport { classNamesTransformer } from './class';\nexport { interfaceNamesTransformer } from './interface';\nexport { variableNamesTransformer } from './variable';\nexport { functionNamesTransformer } from './function';\nexport { typeAliasNamesTransformer } from './typeAlias';\nexport { importTransformer } from './import';\nexport { expressionStatementTransformer } from './expression-statement';\nexport { exportTransformer } from './export';\nexport { transformSourceFile } from './transform';\nexport { typeReferenceTransformer } from './type-reference';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,UAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,SAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,UAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,SAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,WAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,UAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,QAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,qBAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,oBAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,QAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,OAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,WAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,UAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,eAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,cAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.interfaceNamesTransformer = interfaceNamesTransformer;
|
|
7
|
+
function _typescript() {
|
|
8
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
9
|
+
_typescript = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _replaceName() {
|
|
15
|
+
const data = require("./replaceName");
|
|
16
|
+
_replaceName = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
+
function interfaceNamesTransformer(nameMapping) {
|
|
23
|
+
return context => {
|
|
24
|
+
const {
|
|
25
|
+
factory
|
|
26
|
+
} = context;
|
|
27
|
+
const visit = node => {
|
|
28
|
+
if (_typescript().default.isInterfaceDeclaration(node)) {
|
|
29
|
+
const oldName = node.name.text;
|
|
30
|
+
const newName = (0, _replaceName().replaceName)(oldName, nameMapping);
|
|
31
|
+
if (newName) {
|
|
32
|
+
const newMembers = node.members.map(member => {
|
|
33
|
+
if (_typescript().default.isPropertySignature(member) && _typescript().default.isIdentifier(member.name)) {
|
|
34
|
+
const memberName = member.name.text;
|
|
35
|
+
if (nameMapping[memberName]) {
|
|
36
|
+
return factory.updatePropertySignature(member, member.modifiers, factory.createIdentifier(nameMapping[memberName]), member.questionToken, member.type);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return member;
|
|
40
|
+
});
|
|
41
|
+
return factory.updateInterfaceDeclaration(node, node.modifiers, factory.createIdentifier(newName), node.typeParameters, node.heritageClauses, newMembers);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return _typescript().default.visitEachChild(node, child => visit(child), context);
|
|
45
|
+
};
|
|
46
|
+
return node => _typescript().default.visitNode(node, visit);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","_replaceName","e","__esModule","default","interfaceNamesTransformer","nameMapping","context","factory","visit","node","ts","isInterfaceDeclaration","oldName","name","text","newName","replaceName","newMembers","members","map","member","isPropertySignature","isIdentifier","memberName","updatePropertySignature","modifiers","createIdentifier","questionToken","type","updateInterfaceDeclaration","typeParameters","heritageClauses","visitEachChild","child","visitNode"],"sources":["interface.ts"],"sourcesContent":["import ts from 'typescript';\nimport { replaceName } from './replaceName';\n\nexport function interfaceNamesTransformer(nameMapping: Record<string, string>): ts.TransformerFactory<ts.SourceFile> {\n return (context) => {\n const { factory } = context;\n const visit: ts.Visitor = (node) => {\n if (ts.isInterfaceDeclaration(node)) {\n const oldName = node.name.text;\n const newName = replaceName(oldName, nameMapping);\n if (newName) {\n const newMembers = node.members.map((member) => {\n if (ts.isPropertySignature(member) && ts.isIdentifier(member.name)) {\n const memberName = member.name.text;\n if (nameMapping[memberName]) {\n return factory.updatePropertySignature(\n member,\n member.modifiers,\n factory.createIdentifier(nameMapping[memberName]),\n member.questionToken,\n member.type\n );\n }\n }\n return member;\n });\n return factory.updateInterfaceDeclaration(\n node,\n node.modifiers,\n factory.createIdentifier(newName),\n node.typeParameters,\n node.heritageClauses,\n newMembers\n );\n }\n }\n return ts.visitEachChild(node, (child) => visit(child), context);\n };\n return (node) => ts.visitNode(node, visit) as ts.SourceFile;\n };\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,aAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,YAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4C,SAAAC,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErC,SAASG,yBAAyBA,CAACC,WAAmC,EAAwC;EACnH,OAAQC,OAAO,IAAK;IAClB,MAAM;MAAEC;IAAQ,CAAC,GAAGD,OAAO;IAC3B,MAAME,KAAiB,GAAIC,IAAI,IAAK;MAClC,IAAIC,qBAAE,CAACC,sBAAsB,CAACF,IAAI,CAAC,EAAE;QACnC,MAAMG,OAAO,GAAGH,IAAI,CAACI,IAAI,CAACC,IAAI;QAC9B,MAAMC,OAAO,GAAG,IAAAC,0BAAW,EAACJ,OAAO,EAAEP,WAAW,CAAC;QACjD,IAAIU,OAAO,EAAE;UACX,MAAME,UAAU,GAAGR,IAAI,CAACS,OAAO,CAACC,GAAG,CAAEC,MAAM,IAAK;YAC9C,IAAIV,qBAAE,CAACW,mBAAmB,CAACD,MAAM,CAAC,IAAIV,qBAAE,CAACY,YAAY,CAACF,MAAM,CAACP,IAAI,CAAC,EAAE;cAClE,MAAMU,UAAU,GAAGH,MAAM,CAACP,IAAI,CAACC,IAAI;cACnC,IAAIT,WAAW,CAACkB,UAAU,CAAC,EAAE;gBAC3B,OAAOhB,OAAO,CAACiB,uBAAuB,CACpCJ,MAAM,EACNA,MAAM,CAACK,SAAS,EAChBlB,OAAO,CAACmB,gBAAgB,CAACrB,WAAW,CAACkB,UAAU,CAAC,CAAC,EACjDH,MAAM,CAACO,aAAa,EACpBP,MAAM,CAACQ,IACT,CAAC;cACH;YACF;YACA,OAAOR,MAAM;UACf,CAAC,CAAC;UACF,OAAOb,OAAO,CAACsB,0BAA0B,CACvCpB,IAAI,EACJA,IAAI,CAACgB,SAAS,EACdlB,OAAO,CAACmB,gBAAgB,CAACX,OAAO,CAAC,EACjCN,IAAI,CAACqB,cAAc,EACnBrB,IAAI,CAACsB,eAAe,EACpBd,UACF,CAAC;QACH;MACF;MACA,OAAOP,qBAAE,CAACsB,cAAc,CAACvB,IAAI,EAAGwB,KAAK,IAAKzB,KAAK,CAACyB,KAAK,CAAC,EAAE3B,OAAO,CAAC;IAClE,CAAC;IACD,OAAQG,IAAI,IAAKC,qBAAE,CAACwB,SAAS,CAACzB,IAAI,EAAED,KAAK,CAAkB;EAC7D,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function replaceName(oldName: string, nameMapping: Record<string, string>): string | undefined;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.replaceName = replaceName;
|
|
7
|
+
function replaceName(oldName, nameMapping) {
|
|
8
|
+
for (const old of Object.keys(nameMapping)) {
|
|
9
|
+
if (oldName.startsWith(old) || oldName === old) {
|
|
10
|
+
return oldName.replace(new RegExp(`^${old}`), nameMapping[old]);
|
|
11
|
+
}
|
|
12
|
+
if (oldName.endsWith(old)) {
|
|
13
|
+
return oldName.replace(new RegExp(`${old}$`), nameMapping[old]);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=replaceName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["replaceName","oldName","nameMapping","old","Object","keys","startsWith","replace","RegExp","endsWith","undefined"],"sources":["replaceName.ts"],"sourcesContent":["export function replaceName(oldName: string, nameMapping: Record<string, string>): string | undefined {\n for (const old of Object.keys(nameMapping)) {\n if (oldName.startsWith(old) || oldName === old) {\n return oldName.replace(new RegExp(`^${old}`), nameMapping[old]);\n }\n if (oldName.endsWith(old)) {\n return oldName.replace(new RegExp(`${old}$`), nameMapping[old]);\n }\n }\n return undefined;\n}\n"],"mappings":";;;;;;AAAO,SAASA,WAAWA,CAACC,OAAe,EAAEC,WAAmC,EAAsB;EACpG,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACH,WAAW,CAAC,EAAE;IAC1C,IAAID,OAAO,CAACK,UAAU,CAACH,GAAG,CAAC,IAAIF,OAAO,KAAKE,GAAG,EAAE;MAC9C,OAAOF,OAAO,CAACM,OAAO,CAAC,IAAIC,MAAM,CAAC,IAAIL,GAAG,EAAE,CAAC,EAAED,WAAW,CAACC,GAAG,CAAC,CAAC;IACjE;IACA,IAAIF,OAAO,CAACQ,QAAQ,CAACN,GAAG,CAAC,EAAE;MACzB,OAAOF,OAAO,CAACM,OAAO,CAAC,IAAIC,MAAM,CAAC,GAAGL,GAAG,GAAG,CAAC,EAAED,WAAW,CAACC,GAAG,CAAC,CAAC;IACjE;EACF;EACA,OAAOO,SAAS;AAClB","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Formatter } from '@teambit/formatter';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
/**
|
|
4
|
+
* Transforms a TypeScript source file using the provided transformer.
|
|
5
|
+
*
|
|
6
|
+
* @param sourceFilePath Path to the TypeScript source file.
|
|
7
|
+
* @param sourceFileContent The content of the source file.
|
|
8
|
+
* @param transformers The transformers to be applied on the source file.
|
|
9
|
+
* @param formatter (Optional) An optional formatter to format the transformed code. If no formatter is provided, the function returns the transformed source file as a string without any formatting.
|
|
10
|
+
* @returns A promise that resolves to the transformed source file as a string.
|
|
11
|
+
*/
|
|
12
|
+
export declare function transformSourceFile(sourceFilePath: string, sourceFileContent: string, transformers: ts.TransformerFactory<ts.SourceFile>[], formatter?: Formatter, updates?: Record<string, string>): Promise<string>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformSourceFile = transformSourceFile;
|
|
7
|
+
function _typescript() {
|
|
8
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
9
|
+
_typescript = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function path() {
|
|
15
|
+
const data = _interopRequireWildcard(require("path"));
|
|
16
|
+
path = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _emptyLineEncoder() {
|
|
22
|
+
const data = require("./empty-line-encoder");
|
|
23
|
+
_emptyLineEncoder = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
29
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
30
|
+
/**
|
|
31
|
+
* Transforms a TypeScript source file using the provided transformer.
|
|
32
|
+
*
|
|
33
|
+
* @param sourceFilePath Path to the TypeScript source file.
|
|
34
|
+
* @param sourceFileContent The content of the source file.
|
|
35
|
+
* @param transformers The transformers to be applied on the source file.
|
|
36
|
+
* @param formatter (Optional) An optional formatter to format the transformed code. If no formatter is provided, the function returns the transformed source file as a string without any formatting.
|
|
37
|
+
* @returns A promise that resolves to the transformed source file as a string.
|
|
38
|
+
*/
|
|
39
|
+
async function transformSourceFile(sourceFilePath, sourceFileContent, transformers, formatter, updates) {
|
|
40
|
+
const ext = path().extname(sourceFilePath);
|
|
41
|
+
const compatibleExts = ['.ts', '.tsx', '.js', '.jsx'];
|
|
42
|
+
if (!compatibleExts.includes(ext)) {
|
|
43
|
+
if (!updates) return sourceFileContent;
|
|
44
|
+
let transformed = sourceFileContent;
|
|
45
|
+
Object.entries(updates).forEach(([oldStr, newStr]) => {
|
|
46
|
+
const oldStringRegex = new RegExp(oldStr, 'g');
|
|
47
|
+
transformed = transformed.replace(oldStringRegex, newStr);
|
|
48
|
+
});
|
|
49
|
+
return transformed;
|
|
50
|
+
}
|
|
51
|
+
const encoder = new (_emptyLineEncoder().EmptyLineEncoder)();
|
|
52
|
+
sourceFileContent = encoder.encode(sourceFileContent);
|
|
53
|
+
const sourceFile = _typescript().default.createSourceFile(sourceFilePath, sourceFileContent, _typescript().default.ScriptTarget.Latest, true, _typescript().default.ScriptKind.TSX);
|
|
54
|
+
const transformedResult = _typescript().default.transform(sourceFile, transformers);
|
|
55
|
+
const transformedSourceFile = transformedResult.transformed[0];
|
|
56
|
+
const printer = _typescript().default.createPrinter({
|
|
57
|
+
removeComments: false
|
|
58
|
+
});
|
|
59
|
+
let transformedSourceFileStr = printer.printFile(transformedSourceFile);
|
|
60
|
+
transformedSourceFileStr = encoder.decode(transformedSourceFileStr);
|
|
61
|
+
// Remove trailing empty line markers
|
|
62
|
+
const emptyLineComment = `\\s*\\/\\*${encoder.emptyLineMarker}\\*\\/\\s*$`;
|
|
63
|
+
const regex = new RegExp(emptyLineComment, 'g');
|
|
64
|
+
transformedSourceFileStr = transformedSourceFileStr.replace(regex, '');
|
|
65
|
+
try {
|
|
66
|
+
const formattedSourceFileStr = await formatter?.formatSnippet(transformedSourceFileStr, sourceFilePath);
|
|
67
|
+
return formattedSourceFileStr || transformedSourceFileStr;
|
|
68
|
+
} catch {
|
|
69
|
+
// We can ignore if the formatter fails
|
|
70
|
+
// TODO: log the error
|
|
71
|
+
// ignore
|
|
72
|
+
}
|
|
73
|
+
return transformedSourceFileStr;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","path","_interopRequireWildcard","_emptyLineEncoder","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","transformSourceFile","sourceFilePath","sourceFileContent","transformers","formatter","updates","ext","extname","compatibleExts","includes","transformed","entries","forEach","oldStr","newStr","oldStringRegex","RegExp","replace","encoder","EmptyLineEncoder","encode","sourceFile","ts","createSourceFile","ScriptTarget","Latest","ScriptKind","TSX","transformedResult","transform","transformedSourceFile","printer","createPrinter","removeComments","transformedSourceFileStr","printFile","decode","emptyLineComment","emptyLineMarker","regex","formattedSourceFileStr","formatSnippet"],"sources":["transform.ts"],"sourcesContent":["import { Formatter } from '@teambit/formatter';\nimport ts from 'typescript';\nimport * as path from 'path';\nimport { EmptyLineEncoder } from './empty-line-encoder';\n/**\n * Transforms a TypeScript source file using the provided transformer.\n *\n * @param sourceFilePath Path to the TypeScript source file.\n * @param sourceFileContent The content of the source file.\n * @param transformers The transformers to be applied on the source file.\n * @param formatter (Optional) An optional formatter to format the transformed code. If no formatter is provided, the function returns the transformed source file as a string without any formatting.\n * @returns A promise that resolves to the transformed source file as a string.\n */\nexport async function transformSourceFile(\n sourceFilePath: string,\n sourceFileContent: string,\n transformers: ts.TransformerFactory<ts.SourceFile>[],\n formatter?: Formatter,\n updates?: Record<string, string>\n): Promise<string> {\n const ext = path.extname(sourceFilePath);\n const compatibleExts = ['.ts', '.tsx', '.js', '.jsx'];\n if (!compatibleExts.includes(ext)) {\n if (!updates) return sourceFileContent;\n let transformed = sourceFileContent;\n Object.entries(updates).forEach(([oldStr, newStr]) => {\n const oldStringRegex = new RegExp(oldStr, 'g');\n transformed = transformed.replace(oldStringRegex, newStr);\n });\n return transformed;\n }\n\n const encoder = new EmptyLineEncoder();\n sourceFileContent = encoder.encode(sourceFileContent);\n\n const sourceFile = ts.createSourceFile(\n sourceFilePath,\n sourceFileContent,\n ts.ScriptTarget.Latest,\n true,\n ts.ScriptKind.TSX\n );\n\n const transformedResult: ts.TransformationResult<ts.SourceFile> = ts.transform<ts.SourceFile>(\n sourceFile,\n transformers\n );\n const transformedSourceFile: ts.SourceFile = transformedResult.transformed[0] as ts.SourceFile;\n\n const printer: ts.Printer = ts.createPrinter({\n removeComments: false,\n });\n\n let transformedSourceFileStr = printer.printFile(transformedSourceFile);\n transformedSourceFileStr = encoder.decode(transformedSourceFileStr);\n // Remove trailing empty line markers\n const emptyLineComment = `\\\\s*\\\\/\\\\*${encoder.emptyLineMarker}\\\\*\\\\/\\\\s*$`;\n const regex = new RegExp(emptyLineComment, 'g');\n transformedSourceFileStr = transformedSourceFileStr.replace(regex, '');\n\n try {\n const formattedSourceFileStr = await formatter?.formatSnippet(transformedSourceFileStr, sourceFilePath);\n return formattedSourceFileStr || transformedSourceFileStr;\n } catch {\n // We can ignore if the formatter fails\n // TODO: log the error\n // ignore\n }\n return transformedSourceFileStr;\n}\n"],"mappings":"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","ignoreList":[]}
|