@teambit/typescript 0.0.0-004aea01bc027e428dfd0f6583f49a1b8286bdd0
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 +81 -0
- package/dist/cmds/check-types.cmd.d.ts +35 -0
- package/dist/cmds/check-types.cmd.js +105 -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-1760469561956.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 +164 -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 +54 -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 +12 -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 +14 -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 +15 -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 +52 -0
- package/dist/typescript.extractor.js +254 -0
- package/dist/typescript.extractor.js.map +1 -0
- package/dist/typescript.main.runtime.d.ts +130 -0
- package/dist/typescript.main.runtime.js +400 -0
- package/dist/typescript.main.runtime.js.map +1 -0
- package/dist/typescript.parser.d.ts +13 -0
- package/dist/typescript.parser.js +142 -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 +20 -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 +31 -0
- package/transformers/array-type.ts +22 -0
- package/transformers/binding-element.ts +35 -0
- package/transformers/class-declaration.ts +109 -0
- package/transformers/conditional-type.ts +24 -0
- package/transformers/constructor.ts +37 -0
- package/transformers/decorator.ts +30 -0
- package/transformers/enum-declaration.ts +32 -0
- package/transformers/export-assignment.ts +48 -0
- package/transformers/export-declaration.ts +182 -0
- package/transformers/expression-statement.ts +21 -0
- package/transformers/function-like.ts +72 -0
- package/transformers/get-accessor.ts +25 -0
- package/transformers/import-declaration.ts +57 -0
- package/transformers/index-signature.ts +27 -0
- package/transformers/index.ts +43 -0
- package/transformers/indexed-access-type.ts +22 -0
- package/transformers/interface-declaration.ts +68 -0
- package/transformers/intersection-type.ts +26 -0
- package/transformers/keyword-type.ts +40 -0
- package/transformers/literal-type.ts +24 -0
- package/transformers/literal-value.ts +40 -0
- package/transformers/module-declaration.ts +21 -0
- package/transformers/named-tuple.ts +23 -0
- package/transformers/object-literal-expression.ts +29 -0
- package/transformers/parameter.ts +115 -0
- package/transformers/parenthesized-type.ts +21 -0
- package/transformers/property-assignment.ts +24 -0
- package/transformers/property-declaration.ts +35 -0
- package/transformers/set-accessor.ts +27 -0
- package/transformers/source-file-transformer.ts +95 -0
- package/transformers/template-literal-type-span.ts +22 -0
- package/transformers/template-literal-type.ts +26 -0
- package/transformers/this-type.ts +20 -0
- package/transformers/tuple-type.ts +25 -0
- package/transformers/type-alias.ts +27 -0
- package/transformers/type-literal.ts +27 -0
- package/transformers/type-operator.ts +38 -0
- package/transformers/type-predicate.ts +23 -0
- package/transformers/type-query.ts +26 -0
- package/transformers/type-reference.ts +37 -0
- package/transformers/union-type.ts +26 -0
- package/transformers/utils/jsdoc-to-doc-schema.ts +114 -0
- package/transformers/utils/parse-type-from-quick-info.ts +99 -0
- package/transformers/variable-declaration.ts +111 -0
- package/transformers/variable-statement.ts +34 -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,400 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.TypescriptMain = void 0;
|
|
7
|
+
exports.runTransformersWithContext = runTransformersWithContext;
|
|
8
|
+
function _typescript() {
|
|
9
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
10
|
+
_typescript = function () {
|
|
11
|
+
return data;
|
|
12
|
+
};
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
function _harmony() {
|
|
16
|
+
const data = require("@teambit/harmony");
|
|
17
|
+
_harmony = function () {
|
|
18
|
+
return data;
|
|
19
|
+
};
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
22
|
+
function _cli() {
|
|
23
|
+
const data = require("@teambit/cli");
|
|
24
|
+
_cli = function () {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
function _logger() {
|
|
30
|
+
const data = require("@teambit/logger");
|
|
31
|
+
_logger = function () {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
36
|
+
function _schema() {
|
|
37
|
+
const data = require("@teambit/schema");
|
|
38
|
+
_schema = function () {
|
|
39
|
+
return data;
|
|
40
|
+
};
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
43
|
+
function _typescriptModules() {
|
|
44
|
+
const data = require("@teambit/typescript.modules.ts-config-mutator");
|
|
45
|
+
_typescriptModules = function () {
|
|
46
|
+
return data;
|
|
47
|
+
};
|
|
48
|
+
return data;
|
|
49
|
+
}
|
|
50
|
+
function _workspace() {
|
|
51
|
+
const data = require("@teambit/workspace");
|
|
52
|
+
_workspace = function () {
|
|
53
|
+
return data;
|
|
54
|
+
};
|
|
55
|
+
return data;
|
|
56
|
+
}
|
|
57
|
+
function _dependencyResolver() {
|
|
58
|
+
const data = require("@teambit/dependency-resolver");
|
|
59
|
+
_dependencyResolver = function () {
|
|
60
|
+
return data;
|
|
61
|
+
};
|
|
62
|
+
return data;
|
|
63
|
+
}
|
|
64
|
+
function _pMapSeries() {
|
|
65
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
66
|
+
_pMapSeries = function () {
|
|
67
|
+
return data;
|
|
68
|
+
};
|
|
69
|
+
return data;
|
|
70
|
+
}
|
|
71
|
+
function _tsServer() {
|
|
72
|
+
const data = require("@teambit/ts-server");
|
|
73
|
+
_tsServer = function () {
|
|
74
|
+
return data;
|
|
75
|
+
};
|
|
76
|
+
return data;
|
|
77
|
+
}
|
|
78
|
+
function _typescript2() {
|
|
79
|
+
const data = require("@teambit/typescript.typescript-compiler");
|
|
80
|
+
_typescript2 = function () {
|
|
81
|
+
return data;
|
|
82
|
+
};
|
|
83
|
+
return data;
|
|
84
|
+
}
|
|
85
|
+
function _aspectLoader() {
|
|
86
|
+
const data = require("@teambit/aspect-loader");
|
|
87
|
+
_aspectLoader = function () {
|
|
88
|
+
return data;
|
|
89
|
+
};
|
|
90
|
+
return data;
|
|
91
|
+
}
|
|
92
|
+
function _watcher() {
|
|
93
|
+
const data = require("@teambit/watcher");
|
|
94
|
+
_watcher = function () {
|
|
95
|
+
return data;
|
|
96
|
+
};
|
|
97
|
+
return data;
|
|
98
|
+
}
|
|
99
|
+
function _builder() {
|
|
100
|
+
const data = require("@teambit/builder");
|
|
101
|
+
_builder = function () {
|
|
102
|
+
return data;
|
|
103
|
+
};
|
|
104
|
+
return data;
|
|
105
|
+
}
|
|
106
|
+
function _envs() {
|
|
107
|
+
const data = require("@teambit/envs");
|
|
108
|
+
_envs = function () {
|
|
109
|
+
return data;
|
|
110
|
+
};
|
|
111
|
+
return data;
|
|
112
|
+
}
|
|
113
|
+
function _scope() {
|
|
114
|
+
const data = require("@teambit/scope");
|
|
115
|
+
_scope = function () {
|
|
116
|
+
return data;
|
|
117
|
+
};
|
|
118
|
+
return data;
|
|
119
|
+
}
|
|
120
|
+
function _lodash() {
|
|
121
|
+
const data = require("lodash");
|
|
122
|
+
_lodash = function () {
|
|
123
|
+
return data;
|
|
124
|
+
};
|
|
125
|
+
return data;
|
|
126
|
+
}
|
|
127
|
+
function _typescript3() {
|
|
128
|
+
const data = require("./typescript.extractor");
|
|
129
|
+
_typescript3 = function () {
|
|
130
|
+
return data;
|
|
131
|
+
};
|
|
132
|
+
return data;
|
|
133
|
+
}
|
|
134
|
+
function _typescript4() {
|
|
135
|
+
const data = require("./typescript.aspect");
|
|
136
|
+
_typescript4 = function () {
|
|
137
|
+
return data;
|
|
138
|
+
};
|
|
139
|
+
return data;
|
|
140
|
+
}
|
|
141
|
+
function _typescript5() {
|
|
142
|
+
const data = require("./typescript.parser");
|
|
143
|
+
_typescript5 = function () {
|
|
144
|
+
return data;
|
|
145
|
+
};
|
|
146
|
+
return data;
|
|
147
|
+
}
|
|
148
|
+
function _schemaTransformer() {
|
|
149
|
+
const data = require("./schema-transformer.plugin");
|
|
150
|
+
_schemaTransformer = function () {
|
|
151
|
+
return data;
|
|
152
|
+
};
|
|
153
|
+
return data;
|
|
154
|
+
}
|
|
155
|
+
function _transformers() {
|
|
156
|
+
const data = require("./transformers");
|
|
157
|
+
_transformers = function () {
|
|
158
|
+
return data;
|
|
159
|
+
};
|
|
160
|
+
return data;
|
|
161
|
+
}
|
|
162
|
+
function _checkTypes() {
|
|
163
|
+
const data = require("./cmds/check-types.cmd");
|
|
164
|
+
_checkTypes = function () {
|
|
165
|
+
return data;
|
|
166
|
+
};
|
|
167
|
+
return data;
|
|
168
|
+
}
|
|
169
|
+
function _removeTypesTask() {
|
|
170
|
+
const data = require("./remove-types-task");
|
|
171
|
+
_removeTypesTask = function () {
|
|
172
|
+
return data;
|
|
173
|
+
};
|
|
174
|
+
return data;
|
|
175
|
+
}
|
|
176
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
177
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
178
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
179
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
180
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
181
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
182
|
+
class TypescriptMain {
|
|
183
|
+
constructor(logger, schemaTransformerSlot, apiTransformerSlot, workspace, scope, depResolver, envs, aspectLoader) {
|
|
184
|
+
this.logger = logger;
|
|
185
|
+
this.schemaTransformerSlot = schemaTransformerSlot;
|
|
186
|
+
this.apiTransformerSlot = apiTransformerSlot;
|
|
187
|
+
this.workspace = workspace;
|
|
188
|
+
this.scope = scope;
|
|
189
|
+
this.depResolver = depResolver;
|
|
190
|
+
this.envs = envs;
|
|
191
|
+
this.aspectLoader = aspectLoader;
|
|
192
|
+
_defineProperty(this, "tsServer", void 0);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* create a new compiler.
|
|
196
|
+
*/
|
|
197
|
+
createCompiler(options, transformers = [], tsModule = _typescript().default) {
|
|
198
|
+
const configMutator = new (_typescriptModules().TypescriptConfigMutator)(options);
|
|
199
|
+
const transformerContext = {};
|
|
200
|
+
const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);
|
|
201
|
+
const afterMutationWithoutTsconfig = _objectSpread(_objectSpread({}, afterMutation.raw), {}, {
|
|
202
|
+
tsconfig: ''
|
|
203
|
+
});
|
|
204
|
+
return new (_typescript2().TypescriptCompiler)(_typescript4().TypescriptAspect.id, this.logger, afterMutationWithoutTsconfig, afterMutation.raw.tsconfig, tsModule);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* get TsserverClient instance if initiated already, otherwise, return undefined.
|
|
209
|
+
*/
|
|
210
|
+
getTsserverClient() {
|
|
211
|
+
return this.tsServer;
|
|
212
|
+
}
|
|
213
|
+
registerSchemaTransformer(transformers) {
|
|
214
|
+
this.schemaTransformerSlot.register(transformers);
|
|
215
|
+
return this;
|
|
216
|
+
}
|
|
217
|
+
registerApiTransformer(transformers) {
|
|
218
|
+
this.apiTransformerSlot.register(transformers);
|
|
219
|
+
return this;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* starts a tsserver process to communicate with its API.
|
|
224
|
+
* @param projectPath absolute path of the project root directory
|
|
225
|
+
* @param options TsserverClientOpts
|
|
226
|
+
* @param files optionally, if check-types is enabled, provide files to open and type check.
|
|
227
|
+
* @returns TsserverClient
|
|
228
|
+
*/
|
|
229
|
+
async initTsserverClient(projectPath, options = {}, files = []) {
|
|
230
|
+
this.tsServer = new (_tsServer().TsserverClient)(projectPath, this.logger, options, files);
|
|
231
|
+
await this.tsServer.init();
|
|
232
|
+
return this.tsServer;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* starts a tsserver process to communicate with its API. use only when running on the workspace.
|
|
237
|
+
* @param options TsserverClientOpts
|
|
238
|
+
* @param files optionally, if check-types is enabled, provide files to open and type check.
|
|
239
|
+
* @returns TsserverClient
|
|
240
|
+
*/
|
|
241
|
+
async initTsserverClientFromWorkspace(options = {}, files = []) {
|
|
242
|
+
if (!this.workspace) {
|
|
243
|
+
throw new Error(`initTsserverClientFromWorkspace: workspace was not found`);
|
|
244
|
+
}
|
|
245
|
+
return this.initTsserverClient(this.workspace.path, options, files);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Create a compiler instance and run the cjs transformer for it
|
|
250
|
+
* @param options
|
|
251
|
+
* @param transformers
|
|
252
|
+
* @param tsModule
|
|
253
|
+
* @returns
|
|
254
|
+
*/
|
|
255
|
+
createCjsCompiler(options, transformers = [], tsModule = _typescript().default) {
|
|
256
|
+
return this.createCompiler(options, [this.getCjsTransformer(), ...transformers], tsModule);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Create a compiler instance and run the esm transformer for it
|
|
261
|
+
* @param options
|
|
262
|
+
* @param transformers
|
|
263
|
+
* @param tsModule
|
|
264
|
+
* @returns
|
|
265
|
+
*/
|
|
266
|
+
createEsmCompiler(options, transformers = [], tsModule = _typescript().default) {
|
|
267
|
+
return this.createCompiler(options, [this.getEsmTransformer(), ...transformers], tsModule);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Create a transformer that change the ts module to CommonJS
|
|
272
|
+
* @returns
|
|
273
|
+
*/
|
|
274
|
+
getCjsTransformer() {
|
|
275
|
+
const cjsTransformer = config => {
|
|
276
|
+
config.setModule('CommonJS');
|
|
277
|
+
return config;
|
|
278
|
+
};
|
|
279
|
+
return cjsTransformer;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Create a transformer that change the ts module to ES2020
|
|
284
|
+
* @returns
|
|
285
|
+
*/
|
|
286
|
+
getEsmTransformer() {
|
|
287
|
+
const esmTransformer = config => {
|
|
288
|
+
config.setTarget('ES2017');
|
|
289
|
+
config.raw.tsconfig.compilerOptions.module = 'es2020';
|
|
290
|
+
config.raw.tsconfig.compilerOptions.lib = ['es2021', 'dom', 'ESNext.String', 'dom.Iterable'];
|
|
291
|
+
return config;
|
|
292
|
+
};
|
|
293
|
+
return esmTransformer;
|
|
294
|
+
}
|
|
295
|
+
getAllTransformers() {
|
|
296
|
+
const transformersFunc = Array.from(this.schemaTransformerSlot.values());
|
|
297
|
+
// backward compatibility for transformers that are not wrapped with a function (bit < 1.9.80)
|
|
298
|
+
return transformersFunc.map(transformer => Array.isArray(transformer) ? transformer : transformer()).flat();
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* create an instance of a typescript semantic schema extractor.
|
|
303
|
+
*/
|
|
304
|
+
createSchemaExtractor(tsconfig, tsserverPath, contextPath, schemaTransformers = [], apiTransformers = []) {
|
|
305
|
+
const schemaTransformersFromSlot = this.getAllTransformers();
|
|
306
|
+
const apiTransformersFromSlot = (0, _lodash().flatten)(Array.from(this.apiTransformerSlot.values()));
|
|
307
|
+
const allSchemaTransformers = schemaTransformers.concat(schemaTransformersFromSlot);
|
|
308
|
+
const allApiTransformers = apiTransformers.concat(apiTransformersFromSlot);
|
|
309
|
+
return new (_typescript3().TypeScriptExtractor)(tsconfig, allSchemaTransformers, allApiTransformers, this, tsserverPath || this.workspace?.path || '', contextPath || this.workspace?.path || '', this.depResolver, this.workspace, this.scope, this.aspectLoader, this.logger);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* add the default package json properties to the component
|
|
314
|
+
* :TODO @gilad why do we need this DSL? can't I just get the args here.
|
|
315
|
+
*/
|
|
316
|
+
getCjsPackageJsonProps() {
|
|
317
|
+
return {
|
|
318
|
+
main: 'dist/{main}.js',
|
|
319
|
+
types: '{main}.ts'
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* add type: module to the package.json props and the default props
|
|
325
|
+
* :TODO @gilad why do we need this DSL? can't I just get the args here.
|
|
326
|
+
*/
|
|
327
|
+
getEsmPackageJsonProps() {
|
|
328
|
+
return {
|
|
329
|
+
// main: 'dist-esm/{main}.js',
|
|
330
|
+
main: 'dist/{main}.js',
|
|
331
|
+
type: 'module',
|
|
332
|
+
types: '{main}.ts'
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
getSupportedFilesForTsserver(components) {
|
|
336
|
+
const files = components.map(c => c.filesystem.files).flat().map(f => f.path);
|
|
337
|
+
return files.filter(f => f.endsWith('.ts') || f.endsWith('.tsx'));
|
|
338
|
+
}
|
|
339
|
+
async onPreWatch(componentIds, watchOpts) {
|
|
340
|
+
const workspace = this.workspace;
|
|
341
|
+
if (!workspace || !watchOpts.spawnTSServer) {
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
const {
|
|
345
|
+
verbose,
|
|
346
|
+
checkTypes
|
|
347
|
+
} = watchOpts;
|
|
348
|
+
const files = checkTypes ? this.getSupportedFilesForTsserver(await workspace.getMany(componentIds)) : [];
|
|
349
|
+
const printTypeErrors = Boolean(checkTypes);
|
|
350
|
+
await this.initTsserverClientFromWorkspace({
|
|
351
|
+
verbose,
|
|
352
|
+
checkTypes,
|
|
353
|
+
printTypeErrors
|
|
354
|
+
}, files);
|
|
355
|
+
}
|
|
356
|
+
async onComponentChange(component, files) {
|
|
357
|
+
if (!this.tsServer) {
|
|
358
|
+
return {
|
|
359
|
+
results: 'N/A'
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
await (0, _pMapSeries().default)(files, file => this.tsServer.onFileChange(file));
|
|
363
|
+
return {
|
|
364
|
+
results: 'succeed'
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
static async provider([schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs, watcher, scope, builder], config, [schemaTransformerSlot, apiTransformerSlot]) {
|
|
368
|
+
schema.registerParser(new (_typescript5().TypeScriptParser)());
|
|
369
|
+
const logger = loggerExt.createLogger(_typescript4().TypescriptAspect.id);
|
|
370
|
+
aspectLoader.registerPlugins([new (_schemaTransformer().SchemaTransformerPlugin)(schemaTransformerSlot)]);
|
|
371
|
+
const tsMain = new TypescriptMain(logger, schemaTransformerSlot, apiTransformerSlot, workspace, scope, depResolver, envs, aspectLoader);
|
|
372
|
+
tsMain.registerSchemaTransformer(() => [new (_transformers().ExportDeclarationTransformer)(), new (_transformers().ExportAssignmentTransformer)(), new (_transformers().FunctionLikeTransformer)(), new (_transformers().ParameterTransformer)(), new (_transformers().SetAccessorTransformer)(), new (_transformers().GetAccessorTransformer)(), new (_transformers().IndexSignatureTransformer)(), new (_transformers().PropertyDeclarationTransformer)(), new (_transformers().VariableStatementTransformer)(), new (_transformers().VariableDeclaration)(), new (_transformers().SourceFileTransformer)(), new (_transformers().TypeAliasTransformer)(), new (_transformers().ClassDeclarationTransformer)(), new (_transformers().InterfaceDeclarationTransformer)(), new (_transformers().EnumDeclarationTransformer)(), new (_transformers().BindingElementTransformer)(), new (_transformers().IntersectionTypeTransformer)(), new (_transformers().UnionTypeTransformer)(), new (_transformers().TypeReferenceTransformer)(), new (_transformers().TypeLiteralTransformer)(), new (_transformers().LiteralTypeTransformer)(), new (_transformers().TypeQueryTransformer)(), new (_transformers().ArrayTypeTransformer)(), new (_transformers().TypeOperatorTransformer)(), new (_transformers().KeywordTypeTransformer)(), new (_transformers().TupleTypeTransformer)(), new (_transformers().ParenthesizedTypeTransformer)(), new (_transformers().TypePredicateTransformer)(), new (_transformers().IndexedAccessTypeTransformer)(), new (_transformers().TemplateLiteralTypeSpanTransformer)(), new (_transformers().TemplateLiteralTypeTransformer)(), new (_transformers().ThisTypeTransformer)(), new (_transformers().ConditionalTypeTransformer)(), new (_transformers().NamedTupleTransformer)(), new (_transformers().ConstructorTransformer)(), new (_transformers().ImportDeclarationTransformer)(), new (_transformers().ExpressionStatementTransformer)(), new (_transformers().ModuleDeclarationTransformer)(), new (_transformers().DecoratorTransformer)(), new (_transformers().ObjectLiteralExpressionTransformer)(), new (_transformers().ArrayLiteralExpressionTransformer)(), new (_transformers().PropertyAssignmentTransformer)(), new (_transformers().LiteralValueTransformer)()]);
|
|
373
|
+
if (workspace) {
|
|
374
|
+
watcher.registerOnPreWatch(tsMain.onPreWatch.bind(tsMain));
|
|
375
|
+
workspace.registerOnComponentChange(tsMain.onComponentChange.bind(tsMain));
|
|
376
|
+
workspace.registerOnComponentAdd(tsMain.onComponentChange.bind(tsMain));
|
|
377
|
+
}
|
|
378
|
+
const removeTypesTask = new (_removeTypesTask().RemoveTypesTask)();
|
|
379
|
+
builder.registerSnapTasks([removeTypesTask]);
|
|
380
|
+
builder.registerTagTasks([removeTypesTask]);
|
|
381
|
+
const checkTypesCmd = new (_checkTypes().CheckTypesCmd)(tsMain, workspace, logger);
|
|
382
|
+
cli.register(checkTypesCmd);
|
|
383
|
+
return tsMain;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
exports.TypescriptMain = TypescriptMain;
|
|
387
|
+
_defineProperty(TypescriptMain, "runtime", _cli().MainRuntime);
|
|
388
|
+
_defineProperty(TypescriptMain, "dependencies", [_schema().SchemaAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _workspace().WorkspaceAspect, _cli().CLIAspect, _dependencyResolver().DependencyResolverAspect, _envs().EnvsAspect, _watcher().WatcherAspect, _scope().ScopeAspect, _builder().BuilderAspect]);
|
|
389
|
+
_defineProperty(TypescriptMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType()]);
|
|
390
|
+
_typescript4().TypescriptAspect.addRuntime(TypescriptMain);
|
|
391
|
+
function runTransformersWithContext(config, transformers = [], context) {
|
|
392
|
+
if (!Array.isArray(transformers)) return config;
|
|
393
|
+
const newConfig = transformers.reduce((acc, transformer) => {
|
|
394
|
+
return transformer(acc, context);
|
|
395
|
+
}, config);
|
|
396
|
+
return newConfig;
|
|
397
|
+
}
|
|
398
|
+
var _default = exports.default = TypescriptMain;
|
|
399
|
+
|
|
400
|
+
//# sourceMappingURL=typescript.main.runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","_harmony","_cli","_logger","_schema","_typescriptModules","_workspace","_dependencyResolver","_pMapSeries","_tsServer","_typescript2","_aspectLoader","_watcher","_builder","_envs","_scope","_lodash","_typescript3","_typescript4","_typescript5","_schemaTransformer","_transformers","_checkTypes","_removeTypesTask","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","TypescriptMain","constructor","logger","schemaTransformerSlot","apiTransformerSlot","workspace","scope","depResolver","envs","aspectLoader","createCompiler","options","transformers","tsModule","ts","configMutator","TypescriptConfigMutator","transformerContext","afterMutation","runTransformersWithContext","clone","afterMutationWithoutTsconfig","raw","tsconfig","TypescriptCompiler","TypescriptAspect","id","getTsserverClient","tsServer","registerSchemaTransformer","register","registerApiTransformer","initTsserverClient","projectPath","files","TsserverClient","init","initTsserverClientFromWorkspace","Error","path","createCjsCompiler","getCjsTransformer","createEsmCompiler","getEsmTransformer","cjsTransformer","config","setModule","esmTransformer","setTarget","compilerOptions","module","lib","getAllTransformers","transformersFunc","Array","from","values","map","transformer","isArray","flat","createSchemaExtractor","tsserverPath","contextPath","schemaTransformers","apiTransformers","schemaTransformersFromSlot","apiTransformersFromSlot","flatten","allSchemaTransformers","concat","allApiTransformers","TypeScriptExtractor","getCjsPackageJsonProps","main","types","getEsmPackageJsonProps","type","getSupportedFilesForTsserver","components","c","filesystem","f","endsWith","onPreWatch","componentIds","watchOpts","spawnTSServer","verbose","checkTypes","getMany","printTypeErrors","Boolean","onComponentChange","component","results","pMapSeries","file","onFileChange","provider","schema","loggerExt","cli","watcher","builder","registerParser","TypeScriptParser","createLogger","registerPlugins","SchemaTransformerPlugin","tsMain","ExportDeclarationTransformer","ExportAssignmentTransformer","FunctionLikeTransformer","ParameterTransformer","SetAccessorTransformer","GetAccessorTransformer","IndexSignatureTransformer","PropertyDeclarationTransformer","VariableStatementTransformer","VariableDeclaration","SourceFileTransformer","TypeAliasTransformer","ClassDeclarationTransformer","InterfaceDeclarationTransformer","EnumDeclarationTransformer","BindingElementTransformer","IntersectionTypeTransformer","UnionTypeTransformer","TypeReferenceTransformer","TypeLiteralTransformer","LiteralTypeTransformer","TypeQueryTransformer","ArrayTypeTransformer","TypeOperatorTransformer","KeywordTypeTransformer","TupleTypeTransformer","ParenthesizedTypeTransformer","TypePredicateTransformer","IndexedAccessTypeTransformer","TemplateLiteralTypeSpanTransformer","TemplateLiteralTypeTransformer","ThisTypeTransformer","ConditionalTypeTransformer","NamedTupleTransformer","ConstructorTransformer","ImportDeclarationTransformer","ExpressionStatementTransformer","ModuleDeclarationTransformer","DecoratorTransformer","ObjectLiteralExpressionTransformer","ArrayLiteralExpressionTransformer","PropertyAssignmentTransformer","LiteralValueTransformer","registerOnPreWatch","bind","registerOnComponentChange","registerOnComponentAdd","removeTypesTask","RemoveTypesTask","registerSnapTasks","registerTagTasks","checkTypesCmd","CheckTypesCmd","exports","MainRuntime","SchemaAspect","LoggerAspect","AspectLoaderAspect","WorkspaceAspect","CLIAspect","DependencyResolverAspect","EnvsAspect","WatcherAspect","ScopeAspect","BuilderAspect","Slot","withType","addRuntime","context","newConfig","reduce","acc","_default"],"sources":["typescript.main.runtime.ts"],"sourcesContent":["import ts from 'typescript';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport type { Compiler } from '@teambit/compiler';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { SchemaExtractor, SchemaMain } from '@teambit/schema';\nimport { SchemaAspect } from '@teambit/schema';\nimport type { PackageJsonProps } from '@teambit/pkg';\nimport { TypescriptConfigMutator } from '@teambit/typescript.modules.ts-config-mutator';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { Workspace } from '@teambit/workspace';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport pMapSeries from 'p-map-series';\nimport type { TsserverClientOpts } from '@teambit/ts-server';\nimport { TsserverClient } from '@teambit/ts-server';\nimport { TypescriptCompiler } from '@teambit/typescript.typescript-compiler';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport type { WatcherMain, WatchOptions } from '@teambit/watcher';\nimport { WatcherAspect } from '@teambit/watcher';\nimport type { Component, ComponentID } from '@teambit/component';\nimport type { BuilderMain } from '@teambit/builder';\nimport { BuilderAspect } from '@teambit/builder';\nimport type { EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport { flatten } from 'lodash';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport type { TypeScriptCompilerOptions } from './compiler-options';\nimport { TypescriptAspect } from './typescript.aspect';\nimport { TypeScriptParser } from './typescript.parser';\nimport type { SchemaNodeTransformer, SchemaTransformer } from './schema-transformer';\nimport { SchemaTransformerPlugin } from './schema-transformer.plugin';\nimport {\n ExportDeclarationTransformer,\n TypeAliasTransformer,\n FunctionLikeTransformer,\n SetAccessorTransformer,\n GetAccessorTransformer,\n IndexSignatureTransformer,\n PropertyDeclarationTransformer,\n ParameterTransformer,\n VariableStatementTransformer,\n VariableDeclaration,\n SourceFileTransformer,\n ClassDeclarationTransformer,\n InterfaceDeclarationTransformer,\n EnumDeclarationTransformer,\n BindingElementTransformer,\n ExportAssignmentTransformer,\n ImportDeclarationTransformer,\n IntersectionTypeTransformer,\n UnionTypeTransformer,\n TypeReferenceTransformer,\n TypeLiteralTransformer,\n LiteralTypeTransformer,\n TypeQueryTransformer,\n ArrayTypeTransformer,\n TypeOperatorTransformer,\n KeywordTypeTransformer,\n TupleTypeTransformer,\n ParenthesizedTypeTransformer,\n TypePredicateTransformer,\n IndexedAccessTypeTransformer,\n TemplateLiteralTypeSpanTransformer,\n TemplateLiteralTypeTransformer,\n ThisTypeTransformer,\n ConditionalTypeTransformer,\n NamedTupleTransformer,\n ConstructorTransformer,\n ExpressionStatementTransformer,\n ModuleDeclarationTransformer,\n ObjectLiteralExpressionTransformer,\n ArrayLiteralExpressionTransformer,\n PropertyAssignmentTransformer,\n DecoratorTransformer,\n LiteralValueTransformer,\n} from './transformers';\nimport { CheckTypesCmd } from './cmds/check-types.cmd';\nimport { RemoveTypesTask } from './remove-types-task';\n\nexport type TsMode = 'build' | 'dev';\n\nexport type SchemaTransformerSlot = SlotRegistry<() => SchemaTransformer[]>;\nexport type APITransformerSlot = SlotRegistry<SchemaNodeTransformer[]>;\n\nexport type TsConfigTransformContext = {\n // mode: TsMode;\n};\n\nexport type TsconfigWriterOptions = {\n clean?: boolean;\n silent?: boolean; // no prompt\n dedupe?: boolean;\n dryRun?: boolean;\n dryRunWithTsconfig?: boolean;\n};\n\nexport type TsConfigTransformer = (\n config: TypescriptConfigMutator,\n context: TsConfigTransformContext\n) => TypescriptConfigMutator;\n\nexport class TypescriptMain {\n constructor(\n private logger: Logger,\n readonly schemaTransformerSlot: SchemaTransformerSlot,\n readonly apiTransformerSlot: APITransformerSlot,\n readonly workspace: Workspace,\n readonly scope: ScopeMain,\n readonly depResolver: DependencyResolverMain,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain\n ) {}\n\n private tsServer: TsserverClient;\n /**\n * create a new compiler.\n */\n createCompiler(\n options: TypeScriptCompilerOptions,\n transformers: TsConfigTransformer[] = [],\n tsModule = ts\n ): Compiler {\n const configMutator = new TypescriptConfigMutator(options);\n const transformerContext: TsConfigTransformContext = {};\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n const afterMutationWithoutTsconfig = { ...afterMutation.raw, tsconfig: '' };\n\n return new TypescriptCompiler(\n TypescriptAspect.id,\n this.logger,\n afterMutationWithoutTsconfig,\n afterMutation.raw.tsconfig,\n tsModule as any\n );\n }\n\n /**\n * get TsserverClient instance if initiated already, otherwise, return undefined.\n */\n getTsserverClient(): TsserverClient | undefined {\n return this.tsServer;\n }\n\n registerSchemaTransformer(transformers: () => SchemaTransformer[]) {\n this.schemaTransformerSlot.register(transformers);\n return this;\n }\n\n registerApiTransformer(transformers: SchemaNodeTransformer[]) {\n this.apiTransformerSlot.register(transformers);\n return this;\n }\n\n /**\n * starts a tsserver process to communicate with its API.\n * @param projectPath absolute path of the project root directory\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClient(\n projectPath: string,\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n this.tsServer = new TsserverClient(projectPath, this.logger, options, files);\n await this.tsServer.init();\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API. use only when running on the workspace.\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClientFromWorkspace(\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n if (!this.workspace) {\n throw new Error(`initTsserverClientFromWorkspace: workspace was not found`);\n }\n return this.initTsserverClient(this.workspace.path, options, files);\n }\n\n /**\n * Create a compiler instance and run the cjs transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createCjsCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getCjsTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a compiler instance and run the esm transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createEsmCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getEsmTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a transformer that change the ts module to CommonJS\n * @returns\n */\n getCjsTransformer(): TsConfigTransformer {\n const cjsTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('CommonJS');\n return config;\n };\n return cjsTransformer;\n }\n\n /**\n * Create a transformer that change the ts module to ES2020\n * @returns\n */\n getEsmTransformer(): TsConfigTransformer {\n const esmTransformer = (config: TypescriptConfigMutator) => {\n config.setTarget('ES2017');\n config.raw.tsconfig.compilerOptions.module = 'es2020';\n config.raw.tsconfig.compilerOptions.lib = ['es2021', 'dom', 'ESNext.String', 'dom.Iterable'];\n return config;\n };\n return esmTransformer;\n }\n\n getAllTransformers(): SchemaTransformer[] {\n const transformersFunc = Array.from(this.schemaTransformerSlot.values());\n // backward compatibility for transformers that are not wrapped with a function (bit < 1.9.80)\n return transformersFunc.map((transformer) => (Array.isArray(transformer) ? transformer : transformer())).flat();\n }\n\n /**\n * create an instance of a typescript semantic schema extractor.\n */\n createSchemaExtractor(\n tsconfig: any,\n tsserverPath?: string,\n contextPath?: string,\n schemaTransformers: SchemaTransformer[] = [],\n apiTransformers: SchemaNodeTransformer[] = []\n ): SchemaExtractor {\n const schemaTransformersFromSlot = this.getAllTransformers();\n const apiTransformersFromSlot = flatten(Array.from(this.apiTransformerSlot.values()));\n\n const allSchemaTransformers = schemaTransformers.concat(schemaTransformersFromSlot);\n const allApiTransformers = apiTransformers.concat(apiTransformersFromSlot);\n\n return new TypeScriptExtractor(\n tsconfig,\n allSchemaTransformers,\n allApiTransformers,\n this,\n tsserverPath || this.workspace?.path || '',\n contextPath || this.workspace?.path || '',\n this.depResolver,\n this.workspace,\n this.scope,\n this.aspectLoader,\n this.logger\n );\n }\n\n /**\n * add the default package json properties to the component\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getCjsPackageJsonProps(): PackageJsonProps {\n return {\n main: 'dist/{main}.js',\n types: '{main}.ts',\n };\n }\n\n /**\n * add type: module to the package.json props and the default props\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getEsmPackageJsonProps(): PackageJsonProps {\n return {\n // main: 'dist-esm/{main}.js',\n main: 'dist/{main}.js',\n type: 'module',\n types: '{main}.ts',\n };\n }\n\n getSupportedFilesForTsserver(components: Component[]): string[] {\n const files = components\n .map((c) => c.filesystem.files)\n .flat()\n .map((f) => f.path);\n return files.filter((f) => f.endsWith('.ts') || f.endsWith('.tsx'));\n }\n\n private async onPreWatch(componentIds: ComponentID[], watchOpts: WatchOptions) {\n const workspace = this.workspace;\n if (!workspace || !watchOpts.spawnTSServer) {\n return;\n }\n const { verbose, checkTypes } = watchOpts;\n const files = checkTypes ? this.getSupportedFilesForTsserver(await workspace.getMany(componentIds)) : [];\n const printTypeErrors = Boolean(checkTypes);\n await this.initTsserverClientFromWorkspace({ verbose, checkTypes, printTypeErrors }, files);\n }\n\n private async onComponentChange(component: Component, files: string[]) {\n if (!this.tsServer) {\n return {\n results: 'N/A',\n };\n }\n await pMapSeries(files, (file) => this.tsServer.onFileChange(file));\n return {\n results: 'succeed',\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n SchemaAspect,\n LoggerAspect,\n AspectLoaderAspect,\n WorkspaceAspect,\n CLIAspect,\n DependencyResolverAspect,\n EnvsAspect,\n WatcherAspect,\n ScopeAspect,\n BuilderAspect,\n ];\n static slots = [Slot.withType<SchemaTransformer[]>(), Slot.withType<SchemaNodeTransformer[]>()];\n\n static async provider(\n [schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs, watcher, scope, builder]: [\n SchemaMain,\n LoggerMain,\n AspectLoaderMain,\n Workspace,\n CLIMain,\n DependencyResolverMain,\n EnvsMain,\n WatcherMain,\n ScopeMain,\n BuilderMain,\n ],\n config,\n [schemaTransformerSlot, apiTransformerSlot]: [SchemaTransformerSlot, APITransformerSlot]\n ) {\n schema.registerParser(new TypeScriptParser());\n const logger = loggerExt.createLogger(TypescriptAspect.id);\n\n aspectLoader.registerPlugins([new SchemaTransformerPlugin(schemaTransformerSlot)]);\n const tsMain = new TypescriptMain(\n logger,\n schemaTransformerSlot,\n apiTransformerSlot,\n workspace,\n scope,\n depResolver,\n envs,\n aspectLoader\n );\n tsMain.registerSchemaTransformer(() => [\n new ExportDeclarationTransformer(),\n new ExportAssignmentTransformer(),\n new FunctionLikeTransformer(),\n new ParameterTransformer(),\n new SetAccessorTransformer(),\n new GetAccessorTransformer(),\n new IndexSignatureTransformer(),\n new PropertyDeclarationTransformer(),\n new VariableStatementTransformer(),\n new VariableDeclaration(),\n new SourceFileTransformer(),\n new TypeAliasTransformer(),\n new ClassDeclarationTransformer(),\n new InterfaceDeclarationTransformer(),\n new EnumDeclarationTransformer(),\n new BindingElementTransformer(),\n new IntersectionTypeTransformer(),\n new UnionTypeTransformer(),\n new TypeReferenceTransformer(),\n new TypeLiteralTransformer(),\n new LiteralTypeTransformer(),\n new TypeQueryTransformer(),\n new ArrayTypeTransformer(),\n new TypeOperatorTransformer(),\n new KeywordTypeTransformer(),\n new TupleTypeTransformer(),\n new ParenthesizedTypeTransformer(),\n new TypePredicateTransformer(),\n new IndexedAccessTypeTransformer(),\n new TemplateLiteralTypeSpanTransformer(),\n new TemplateLiteralTypeTransformer(),\n new ThisTypeTransformer(),\n new ConditionalTypeTransformer(),\n new NamedTupleTransformer(),\n new ConstructorTransformer(),\n new ImportDeclarationTransformer(),\n new ExpressionStatementTransformer(),\n new ModuleDeclarationTransformer(),\n new DecoratorTransformer(),\n new ObjectLiteralExpressionTransformer(),\n new ArrayLiteralExpressionTransformer(),\n new PropertyAssignmentTransformer(),\n new LiteralValueTransformer(),\n ]);\n\n if (workspace) {\n watcher.registerOnPreWatch(tsMain.onPreWatch.bind(tsMain));\n workspace.registerOnComponentChange(tsMain.onComponentChange.bind(tsMain));\n workspace.registerOnComponentAdd(tsMain.onComponentChange.bind(tsMain));\n }\n\n const removeTypesTask = new RemoveTypesTask();\n builder.registerSnapTasks([removeTypesTask]);\n builder.registerTagTasks([removeTypesTask]);\n\n const checkTypesCmd = new CheckTypesCmd(tsMain, workspace, logger);\n cli.register(checkTypesCmd);\n\n return tsMain;\n }\n}\n\nTypescriptAspect.addRuntime(TypescriptMain);\n\nexport function runTransformersWithContext(\n config: TypescriptConfigMutator,\n transformers: TsConfigTransformer[] = [],\n context: TsConfigTransformContext\n): TypescriptConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n\nexport default TypescriptMain;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Parser } from '@teambit/schema';
|
|
2
|
+
import type { StaticProperties } from '@teambit/semantics.entities.semantic-schema';
|
|
3
|
+
import { Export } from '@teambit/semantics.entities.semantic-schema';
|
|
4
|
+
import type { Logger } from '@teambit/logger';
|
|
5
|
+
import ts from 'typescript';
|
|
6
|
+
export declare class TypeScriptParser implements Parser {
|
|
7
|
+
private logger?;
|
|
8
|
+
extension: RegExp;
|
|
9
|
+
getExports(sourceFile: ts.SourceFile): Export[];
|
|
10
|
+
parseModule(modulePath: string, content?: string): Export[];
|
|
11
|
+
parseStaticProperties(sourceFile: ts.SourceFile): Map<string, StaticProperties>;
|
|
12
|
+
constructor(logger?: Logger | undefined);
|
|
13
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TypeScriptParser = void 0;
|
|
7
|
+
function _semanticsEntities() {
|
|
8
|
+
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
9
|
+
_semanticsEntities = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _fsExtra() {
|
|
15
|
+
const data = require("fs-extra");
|
|
16
|
+
_fsExtra = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _typescript() {
|
|
22
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
23
|
+
_typescript = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
30
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
31
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
32
|
+
class TypeScriptParser {
|
|
33
|
+
getExports(sourceFile) {
|
|
34
|
+
const staticProperties = this.parseStaticProperties(sourceFile);
|
|
35
|
+
const exportModels = [];
|
|
36
|
+
sourceFile.statements.forEach(statement => {
|
|
37
|
+
// export default
|
|
38
|
+
if (_typescript().default.isExportAssignment(statement)) {
|
|
39
|
+
// export default
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// export declarations or re-exports
|
|
43
|
+
if (_typescript().default.isExportDeclaration(statement)) {
|
|
44
|
+
if (statement.exportClause) {
|
|
45
|
+
if (_typescript().default.isNamedExports(statement.exportClause)) {
|
|
46
|
+
statement.exportClause.elements.forEach(element => {
|
|
47
|
+
// Handle both Identifier and StringLiteral export names (TypeScript 5.6+ arbitrary module namespace identifiers)
|
|
48
|
+
const name = _typescript().default.isIdentifier(element.name) ? element.name.escapedText.toString() : element.name.text;
|
|
49
|
+
if (name !== 'default') {
|
|
50
|
+
exportModels.push(new (_semanticsEntities().Export)(name, staticProperties.get(name)));
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (_typescript().default.isNamespaceExport(statement.exportClause)) {
|
|
55
|
+
// Handle both Identifier and StringLiteral export names (TypeScript 5.6+ arbitrary module namespace identifiers)
|
|
56
|
+
const name = _typescript().default.isIdentifier(statement.exportClause.name) ? statement.exportClause.name.escapedText.toString() : statement.exportClause.name.text;
|
|
57
|
+
exportModels.push(new (_semanticsEntities().Export)(name, staticProperties.get(name)));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// export modifiers
|
|
63
|
+
// - variable statement
|
|
64
|
+
// - function statement
|
|
65
|
+
// - class statement
|
|
66
|
+
const statementModifiers = _typescript().default.canHaveModifiers(statement) ? _typescript().default.getModifiers(statement) : undefined;
|
|
67
|
+
if (statementModifiers) {
|
|
68
|
+
statementModifiers.some(modifier => {
|
|
69
|
+
if (modifier.kind === _typescript().default.SyntaxKind.ExportKeyword) {
|
|
70
|
+
if (_typescript().default.isVariableStatement(statement)) {
|
|
71
|
+
const child = statement.declarationList.declarations[0];
|
|
72
|
+
if (_typescript().default.isIdentifier(child.name)) {
|
|
73
|
+
const name = child.name.escapedText.toString();
|
|
74
|
+
exportModels.push(new (_semanticsEntities().Export)(name, staticProperties.get(name)));
|
|
75
|
+
}
|
|
76
|
+
} else if (_typescript().default.isFunctionDeclaration(statement)) {
|
|
77
|
+
if (statement.name) {
|
|
78
|
+
const name = statement.name.escapedText.toString();
|
|
79
|
+
exportModels.push(new (_semanticsEntities().Export)(name, staticProperties.get(name)));
|
|
80
|
+
}
|
|
81
|
+
} else if (_typescript().default.isClassDeclaration(statement)) {
|
|
82
|
+
if (statement.name) {
|
|
83
|
+
const name = statement.name.escapedText.toString();
|
|
84
|
+
exportModels.push(new (_semanticsEntities().Export)(name, staticProperties.get(name)));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
const withoutEmpty = exportModels.filter(exportModel => exportModel !== undefined);
|
|
94
|
+
return withoutEmpty;
|
|
95
|
+
}
|
|
96
|
+
parseModule(modulePath, content) {
|
|
97
|
+
const ast = _typescript().default.createSourceFile(modulePath, content ?? (0, _fsExtra().readFileSync)(modulePath, 'utf8'), _typescript().default.ScriptTarget.Latest);
|
|
98
|
+
const moduleExports = this.getExports(ast);
|
|
99
|
+
return moduleExports;
|
|
100
|
+
}
|
|
101
|
+
parseStaticProperties(sourceFile) {
|
|
102
|
+
// TODO - should we also parse staticProperties inside classes / objects?
|
|
103
|
+
|
|
104
|
+
const exportStaticProperties = new Map();
|
|
105
|
+
sourceFile.statements.forEach(statement => {
|
|
106
|
+
try {
|
|
107
|
+
if (!_typescript().default.isExpressionStatement(statement)) return;
|
|
108
|
+
if (!_typescript().default.isBinaryExpression(statement.expression)) return;
|
|
109
|
+
if (statement.expression.operatorToken.kind !== _typescript().default.SyntaxKind.EqualsToken) return;
|
|
110
|
+
if (!_typescript().default.isPropertyAccessExpression(statement.expression.left)) return;
|
|
111
|
+
if (!_typescript().default.isIdentifier(statement.expression.left.expression)) return;
|
|
112
|
+
const targetName = statement.expression.left.expression.text;
|
|
113
|
+
const propertyName = statement.expression.left.name.text;
|
|
114
|
+
if (!exportStaticProperties.has(targetName)) exportStaticProperties.set(targetName, new Map());
|
|
115
|
+
const existingProperties = exportStaticProperties.get(targetName);
|
|
116
|
+
if (_typescript().default.isStringLiteral(statement.expression.right)) {
|
|
117
|
+
existingProperties?.set(propertyName, statement.expression.right.text);
|
|
118
|
+
} else if (_typescript().default.isNumericLiteral(statement.expression.right)) {
|
|
119
|
+
existingProperties?.set(propertyName, +statement.expression.right.text);
|
|
120
|
+
} else if (statement.expression.right.kind === _typescript().default.SyntaxKind.UndefinedKeyword) {
|
|
121
|
+
existingProperties?.set(propertyName, undefined);
|
|
122
|
+
} else if (statement.expression.right.kind === _typescript().default.SyntaxKind.NullKeyword) {
|
|
123
|
+
existingProperties?.set(propertyName, null);
|
|
124
|
+
} else if (statement.expression.right.kind === _typescript().default.SyntaxKind.TrueKeyword) {
|
|
125
|
+
existingProperties?.set(propertyName, true);
|
|
126
|
+
} else if (statement.expression.right.kind === _typescript().default.SyntaxKind.FalseKeyword) {
|
|
127
|
+
existingProperties?.set(propertyName, false);
|
|
128
|
+
}
|
|
129
|
+
} catch (err) {
|
|
130
|
+
this.logger?.error('failed parsing static properties', err);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
return exportStaticProperties;
|
|
134
|
+
}
|
|
135
|
+
constructor(logger) {
|
|
136
|
+
this.logger = logger;
|
|
137
|
+
_defineProperty(this, "extension", /^.*\.(js|jsx|ts|tsx)$/);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.TypeScriptParser = TypeScriptParser;
|
|
141
|
+
|
|
142
|
+
//# sourceMappingURL=typescript.parser.js.map
|