@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 @@
|
|
|
1
|
+
{"version":3,"names":["_harmony","data","require","TypescriptAspect","exports","Aspect","create","id"],"sources":["typescript.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const TypescriptAspect = Aspect.create({\n id: 'teambit.typescript/typescript',\n});\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,iBAAM,CAACC,MAAM,CAAC;EAC5CC,EAAE,EAAE;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Logo: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Logo = void 0;
|
|
7
|
+
function _react() {
|
|
8
|
+
const data = _interopRequireDefault(require("react"));
|
|
9
|
+
_react = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
const Logo = () => /*#__PURE__*/_react().default.createElement("div", {
|
|
16
|
+
style: {
|
|
17
|
+
height: '100%',
|
|
18
|
+
display: 'flex',
|
|
19
|
+
justifyContent: 'center'
|
|
20
|
+
}
|
|
21
|
+
}, /*#__PURE__*/_react().default.createElement("img", {
|
|
22
|
+
style: {
|
|
23
|
+
width: 70
|
|
24
|
+
},
|
|
25
|
+
src: "https://static.bit.dev/brands/logo-typescript.svg"
|
|
26
|
+
}));
|
|
27
|
+
exports.Logo = Logo;
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=typescript.composition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireDefault","require","e","__esModule","default","Logo","createElement","style","height","display","justifyContent","width","src","exports"],"sources":["typescript.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/brands/logo-typescript.svg\" />\n </div>\n);\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnB,MAAMG,IAAI,GAAGA,CAAA,kBAClBP,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxEZ,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEI,KAAK,EAAE;EAAG,CAAE;EAACC,GAAG,EAAC;AAAmD,CAAE,CACjF,CACN;AAACC,OAAA,CAAAR,IAAA,GAAAA,IAAA","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Node, SourceFile } from 'typescript';
|
|
2
|
+
import type { SchemaExtractor, SchemaExtractorOptions } from '@teambit/schema';
|
|
3
|
+
import type { Workspace } from '@teambit/workspace';
|
|
4
|
+
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
5
|
+
import type { SchemaNode, ModuleSchema } from '@teambit/semantics.entities.semantic-schema';
|
|
6
|
+
import { APISchema } from '@teambit/semantics.entities.semantic-schema';
|
|
7
|
+
import type { Component } from '@teambit/component';
|
|
8
|
+
import type { AbstractVinyl } from '@teambit/component.sources';
|
|
9
|
+
import type { EnvContext } from '@teambit/envs';
|
|
10
|
+
import type { Logger } from '@teambit/logger';
|
|
11
|
+
import type { AspectLoaderMain } from '@teambit/aspect-loader';
|
|
12
|
+
import type { ScopeMain } from '@teambit/scope';
|
|
13
|
+
import type { TypescriptMain } from './typescript.main.runtime';
|
|
14
|
+
import { SchemaExtractorContext } from './schema-extractor-context';
|
|
15
|
+
import type { Identifier } from './identifier';
|
|
16
|
+
import type { ExtractorOptions } from './extractor-options';
|
|
17
|
+
import type { SchemaNodeTransformer, SchemaTransformer } from './schema-transformer';
|
|
18
|
+
export declare class TypeScriptExtractor implements SchemaExtractor {
|
|
19
|
+
private tsconfig;
|
|
20
|
+
private schemaTransformers;
|
|
21
|
+
private apiTransformers;
|
|
22
|
+
private tsMain;
|
|
23
|
+
private rootTsserverPath;
|
|
24
|
+
private rootContextPath;
|
|
25
|
+
private depResolver;
|
|
26
|
+
private workspace;
|
|
27
|
+
private scope;
|
|
28
|
+
private aspectLoader;
|
|
29
|
+
private logger;
|
|
30
|
+
constructor(tsconfig: any, schemaTransformers: SchemaTransformer[], apiTransformers: SchemaNodeTransformer[], tsMain: TypescriptMain, rootTsserverPath: string, rootContextPath: string, depResolver: DependencyResolverMain, workspace: Workspace | undefined, scope: ScopeMain, aspectLoader: AspectLoaderMain, logger: Logger);
|
|
31
|
+
parseSourceFile(file: AbstractVinyl): SourceFile;
|
|
32
|
+
/**
|
|
33
|
+
* extract a component schema.
|
|
34
|
+
*/
|
|
35
|
+
extract(component: Component, options?: SchemaExtractorOptions): Promise<APISchema>;
|
|
36
|
+
computeInternalModules(context: SchemaExtractorContext, internalFiles: AbstractVinyl[]): Promise<ModuleSchema[]>;
|
|
37
|
+
dispose(): void;
|
|
38
|
+
computeIdentifiers(node: Node, context: SchemaExtractorContext): Promise<Identifier[]>;
|
|
39
|
+
private createContext;
|
|
40
|
+
private getComponentDeps;
|
|
41
|
+
private tsserver;
|
|
42
|
+
private getTsServer;
|
|
43
|
+
computeSchema(node: Node, context: SchemaExtractorContext): Promise<SchemaNode>;
|
|
44
|
+
transformAPI(schema: SchemaNode, context: SchemaExtractorContext): Promise<SchemaNode>;
|
|
45
|
+
getComponentIDByPath(file: string): Promise<import("@teambit/component").ComponentID | null | undefined>;
|
|
46
|
+
/**
|
|
47
|
+
* select the correct transformer for a node.
|
|
48
|
+
*/
|
|
49
|
+
getTransformer(node: Node, context: SchemaExtractorContext): SchemaTransformer | undefined;
|
|
50
|
+
getAPITransformer(node: SchemaNode): SchemaNodeTransformer | undefined;
|
|
51
|
+
static from(options: ExtractorOptions): (context: EnvContext) => TypeScriptExtractor;
|
|
52
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TypeScriptExtractor = void 0;
|
|
7
|
+
function _typescript() {
|
|
8
|
+
const data = _interopRequireWildcard(require("typescript"));
|
|
9
|
+
_typescript = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _getTsconfig() {
|
|
15
|
+
const data = require("get-tsconfig");
|
|
16
|
+
_getTsconfig = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _semanticsEntities() {
|
|
22
|
+
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
23
|
+
_semanticsEntities = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _aspectLoader() {
|
|
29
|
+
const data = require("@teambit/aspect-loader");
|
|
30
|
+
_aspectLoader = function () {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
function _pMapSeries() {
|
|
36
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
37
|
+
_pMapSeries = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
function _lodash() {
|
|
43
|
+
const data = require("lodash");
|
|
44
|
+
_lodash = function () {
|
|
45
|
+
return data;
|
|
46
|
+
};
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
function _exceptions() {
|
|
50
|
+
const data = require("./exceptions");
|
|
51
|
+
_exceptions = function () {
|
|
52
|
+
return data;
|
|
53
|
+
};
|
|
54
|
+
return data;
|
|
55
|
+
}
|
|
56
|
+
function _schemaExtractorContext() {
|
|
57
|
+
const data = require("./schema-extractor-context");
|
|
58
|
+
_schemaExtractorContext = function () {
|
|
59
|
+
return data;
|
|
60
|
+
};
|
|
61
|
+
return data;
|
|
62
|
+
}
|
|
63
|
+
function _identifierList() {
|
|
64
|
+
const data = require("./identifier-list");
|
|
65
|
+
_identifierList = function () {
|
|
66
|
+
return data;
|
|
67
|
+
};
|
|
68
|
+
return data;
|
|
69
|
+
}
|
|
70
|
+
function _typescript2() {
|
|
71
|
+
const data = require("./typescript.aspect");
|
|
72
|
+
_typescript2 = function () {
|
|
73
|
+
return data;
|
|
74
|
+
};
|
|
75
|
+
return data;
|
|
76
|
+
}
|
|
77
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
78
|
+
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); }
|
|
79
|
+
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; }
|
|
80
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
81
|
+
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); }
|
|
82
|
+
class TypeScriptExtractor {
|
|
83
|
+
constructor(tsconfig, schemaTransformers, apiTransformers, tsMain, rootTsserverPath, rootContextPath, depResolver, workspace, scope, aspectLoader, logger) {
|
|
84
|
+
this.tsconfig = tsconfig;
|
|
85
|
+
this.schemaTransformers = schemaTransformers;
|
|
86
|
+
this.apiTransformers = apiTransformers;
|
|
87
|
+
this.tsMain = tsMain;
|
|
88
|
+
this.rootTsserverPath = rootTsserverPath;
|
|
89
|
+
this.rootContextPath = rootContextPath;
|
|
90
|
+
this.depResolver = depResolver;
|
|
91
|
+
this.workspace = workspace;
|
|
92
|
+
this.scope = scope;
|
|
93
|
+
this.aspectLoader = aspectLoader;
|
|
94
|
+
this.logger = logger;
|
|
95
|
+
_defineProperty(this, "tsserver", undefined);
|
|
96
|
+
}
|
|
97
|
+
parseSourceFile(file) {
|
|
98
|
+
const sourceFile = _typescript().default.createSourceFile(file.path, file.contents.toString('utf8'), _typescript().default.ScriptTarget.Latest, true
|
|
99
|
+
/** don't pass the scriptKind, it'll be determined automatically by typescript by the filepath */);
|
|
100
|
+
// leave this commented out, it's helpful when there are issues with ASTs. consider throwing in this case.
|
|
101
|
+
// console.log("sourceFile Errors", file.path, sourceFile.parseDiagnostics);
|
|
102
|
+
return sourceFile;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* extract a component schema.
|
|
107
|
+
*/
|
|
108
|
+
async extract(component, options = {}) {
|
|
109
|
+
// override the rootTsserverPath and rootContextPath if passed via options
|
|
110
|
+
if (options.tsserverPath) {
|
|
111
|
+
this.rootTsserverPath = options.tsserverPath;
|
|
112
|
+
}
|
|
113
|
+
if (options.contextPath) {
|
|
114
|
+
this.rootContextPath = options.contextPath;
|
|
115
|
+
}
|
|
116
|
+
const tsserver = await this.getTsServer();
|
|
117
|
+
const mainFile = component.mainFile;
|
|
118
|
+
const compatibleExts = ['.tsx', '.ts'];
|
|
119
|
+
const internalFiles = options.skipInternals ? [] : component.filesystem.files.filter(file => compatibleExts.includes(file.extname) && file.path !== mainFile.path);
|
|
120
|
+
const allFiles = [mainFile, ...internalFiles];
|
|
121
|
+
const context = await this.createContext(tsserver, component, options.formatter);
|
|
122
|
+
await (0, _pMapSeries().default)(allFiles, async file => {
|
|
123
|
+
const ast = this.parseSourceFile(file);
|
|
124
|
+
const identifiers = await this.computeIdentifiers(ast, context);
|
|
125
|
+
const cacheKey = context.getIdentifierKeyForNode(ast);
|
|
126
|
+
context.setIdentifiers(cacheKey, new (_identifierList().IdentifierList)(identifiers));
|
|
127
|
+
});
|
|
128
|
+
const mainAst = this.parseSourceFile(mainFile);
|
|
129
|
+
const moduleSchema = await this.computeSchema(mainAst, context);
|
|
130
|
+
moduleSchema.flatExportsRecursively();
|
|
131
|
+
const apiScheme = moduleSchema;
|
|
132
|
+
const internals = await this.computeInternalModules(context, internalFiles);
|
|
133
|
+
const location = context.getLocation(mainAst);
|
|
134
|
+
return new (_semanticsEntities().APISchema)(location, apiScheme, internals, component.id);
|
|
135
|
+
}
|
|
136
|
+
async computeInternalModules(context, internalFiles) {
|
|
137
|
+
if (internalFiles.length === 0) return [];
|
|
138
|
+
const internals = (0, _lodash().compact)(await Promise.all([...context.internalIdentifiers.entries()].map(async ([filePath]) => {
|
|
139
|
+
const file = context.findFileInComponent(filePath);
|
|
140
|
+
if (!file) return undefined;
|
|
141
|
+
const fileAst = this.parseSourceFile(file);
|
|
142
|
+
const moduleSchema = await this.computeSchema(fileAst, context);
|
|
143
|
+
moduleSchema.flatExportsRecursively();
|
|
144
|
+
return moduleSchema;
|
|
145
|
+
})));
|
|
146
|
+
return internals;
|
|
147
|
+
}
|
|
148
|
+
dispose() {
|
|
149
|
+
if (!this.tsserver) return;
|
|
150
|
+
this.tsserver.killTsServer();
|
|
151
|
+
}
|
|
152
|
+
async computeIdentifiers(node, context) {
|
|
153
|
+
const transformer = this.getTransformer(node, context);
|
|
154
|
+
let identifiers = [];
|
|
155
|
+
if (!transformer || !transformer.getIdentifiers) {
|
|
156
|
+
this.logger.debug(new (_exceptions().TransformerNotFound)(node, context.component, context.getLocation(node)).toString());
|
|
157
|
+
} else {
|
|
158
|
+
identifiers = await transformer.getIdentifiers(node, context);
|
|
159
|
+
}
|
|
160
|
+
return identifiers;
|
|
161
|
+
}
|
|
162
|
+
async createContext(tsserver, component, formatter) {
|
|
163
|
+
const componentDeps = await this.getComponentDeps(component);
|
|
164
|
+
return new (_schemaExtractorContext().SchemaExtractorContext)(tsserver, component, this, componentDeps, this.rootContextPath, this.workspace?.path || this.scope.path, formatter);
|
|
165
|
+
}
|
|
166
|
+
async getComponentDeps(component) {
|
|
167
|
+
const deps = this.depResolver.getDependencies(component);
|
|
168
|
+
const componentDeps = deps.getComponentDependencies();
|
|
169
|
+
return componentDeps;
|
|
170
|
+
}
|
|
171
|
+
async getTsServer() {
|
|
172
|
+
if (!this.tsserver) {
|
|
173
|
+
const tsserver = this.tsMain.getTsserverClient();
|
|
174
|
+
if (tsserver) {
|
|
175
|
+
this.tsserver = tsserver;
|
|
176
|
+
return tsserver;
|
|
177
|
+
}
|
|
178
|
+
this.tsserver = await this.tsMain.initTsserverClient(this.rootTsserverPath);
|
|
179
|
+
return this.tsserver;
|
|
180
|
+
}
|
|
181
|
+
return this.tsserver;
|
|
182
|
+
}
|
|
183
|
+
async computeSchema(node, context) {
|
|
184
|
+
const transformer = this.getTransformer(node, context);
|
|
185
|
+
if (!transformer) {
|
|
186
|
+
return new (_semanticsEntities().UnImplementedSchema)(context.getLocation(node), node.getText(), _typescript().SyntaxKind[node.kind]);
|
|
187
|
+
}
|
|
188
|
+
const schemaNode = await transformer.transform(node, context);
|
|
189
|
+
return this.transformAPI(schemaNode, context);
|
|
190
|
+
}
|
|
191
|
+
async transformAPI(schema, context) {
|
|
192
|
+
const apiTransformer = this.getAPITransformer(schema);
|
|
193
|
+
const transformedApi = apiTransformer ? await apiTransformer.transform(schema, context) : schema;
|
|
194
|
+
if (!transformedApi) {
|
|
195
|
+
return new (_semanticsEntities().IgnoredSchema)(schema);
|
|
196
|
+
}
|
|
197
|
+
return transformedApi;
|
|
198
|
+
}
|
|
199
|
+
async getComponentIDByPath(file) {
|
|
200
|
+
const coreAspectIds = this.aspectLoader.getCoreAspectIds();
|
|
201
|
+
const matchingCoreAspect = coreAspectIds.find(c => file === (0, _aspectLoader().getCoreAspectPackageName)(c));
|
|
202
|
+
if (matchingCoreAspect) {
|
|
203
|
+
return (this.workspace || this.scope).resolveComponentId(matchingCoreAspect);
|
|
204
|
+
}
|
|
205
|
+
if (this.workspace) {
|
|
206
|
+
return this.workspace.getComponentIdByPath(file);
|
|
207
|
+
}
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* select the correct transformer for a node.
|
|
213
|
+
*/
|
|
214
|
+
getTransformer(node, context) {
|
|
215
|
+
const transformer = this.schemaTransformers.find(singleTransformer => {
|
|
216
|
+
return singleTransformer.predicate(node);
|
|
217
|
+
});
|
|
218
|
+
if (!transformer) {
|
|
219
|
+
this.logger.debug(new (_exceptions().TransformerNotFound)(node, context.component, context.getLocation(node)).toString());
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
return transformer;
|
|
223
|
+
}
|
|
224
|
+
getAPITransformer(node) {
|
|
225
|
+
const transformer = this.apiTransformers.find(singleTransformer => {
|
|
226
|
+
return singleTransformer.predicate(node);
|
|
227
|
+
});
|
|
228
|
+
if (!transformer) {
|
|
229
|
+
return undefined;
|
|
230
|
+
}
|
|
231
|
+
return transformer;
|
|
232
|
+
}
|
|
233
|
+
static from(options) {
|
|
234
|
+
return context => {
|
|
235
|
+
const tsconfig = (0, _getTsconfig().getTsconfig)(options.tsconfig)?.config || {
|
|
236
|
+
compilerOptions: options.compilerOptions
|
|
237
|
+
};
|
|
238
|
+
const tsMain = context.getAspect(_typescript2().TypescriptAspect.id);
|
|
239
|
+
const aspectLoaderMain = context.getAspect(_aspectLoader().AspectLoaderAspect.id);
|
|
240
|
+
// When loading the env from a scope you don't have a workspace
|
|
241
|
+
const rootPath = tsMain.workspace?.path || tsMain.scope.path || '';
|
|
242
|
+
const schemaTransformersFromOptions = options.schemaTransformers || [];
|
|
243
|
+
const schemaTransformersFromAspect = tsMain.getAllTransformers();
|
|
244
|
+
const apiTransformersFromOptions = options.apiTransformers || [];
|
|
245
|
+
const apiTransformersFromAspect = (0, _lodash().flatten)(Array.from(tsMain.apiTransformerSlot.values()));
|
|
246
|
+
const schemaTransformers = [...schemaTransformersFromOptions, ...schemaTransformersFromAspect];
|
|
247
|
+
const apiTransformers = [...apiTransformersFromOptions, ...apiTransformersFromAspect];
|
|
248
|
+
return new TypeScriptExtractor(tsconfig, schemaTransformers, apiTransformers, tsMain, rootPath, rootPath, tsMain.depResolver, tsMain.workspace, tsMain.scope, aspectLoaderMain, context.createLogger(options.name));
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
exports.TypeScriptExtractor = TypeScriptExtractor;
|
|
253
|
+
|
|
254
|
+
//# sourceMappingURL=typescript.extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireWildcard","require","_getTsconfig","_semanticsEntities","_aspectLoader","_pMapSeries","_interopRequireDefault","_lodash","_exceptions","_schemaExtractorContext","_identifierList","_typescript2","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","TypeScriptExtractor","constructor","tsconfig","schemaTransformers","apiTransformers","tsMain","rootTsserverPath","rootContextPath","depResolver","workspace","scope","aspectLoader","logger","undefined","parseSourceFile","file","sourceFile","ts","createSourceFile","path","contents","toString","ScriptTarget","Latest","extract","component","options","tsserverPath","contextPath","tsserver","getTsServer","mainFile","compatibleExts","internalFiles","skipInternals","filesystem","files","filter","includes","extname","allFiles","context","createContext","formatter","pMapSeries","ast","identifiers","computeIdentifiers","cacheKey","getIdentifierKeyForNode","setIdentifiers","IdentifierList","mainAst","moduleSchema","computeSchema","flatExportsRecursively","apiScheme","internals","computeInternalModules","location","getLocation","APISchema","id","length","compact","Promise","all","internalIdentifiers","entries","map","filePath","findFileInComponent","fileAst","dispose","killTsServer","node","transformer","getTransformer","getIdentifiers","debug","TransformerNotFound","componentDeps","getComponentDeps","SchemaExtractorContext","deps","getDependencies","getComponentDependencies","getTsserverClient","initTsserverClient","UnImplementedSchema","getText","SyntaxKind","kind","schemaNode","transform","transformAPI","schema","apiTransformer","getAPITransformer","transformedApi","IgnoredSchema","getComponentIDByPath","coreAspectIds","getCoreAspectIds","matchingCoreAspect","find","c","getCoreAspectPackageName","resolveComponentId","getComponentIdByPath","singleTransformer","predicate","from","getTsconfig","config","compilerOptions","getAspect","TypescriptAspect","aspectLoaderMain","AspectLoaderAspect","rootPath","schemaTransformersFromOptions","schemaTransformersFromAspect","getAllTransformers","apiTransformersFromOptions","apiTransformersFromAspect","flatten","Array","apiTransformerSlot","values","createLogger","name","exports"],"sources":["typescript.extractor.ts"],"sourcesContent":["import type { Node, SourceFile } from 'typescript';\nimport ts, { SyntaxKind } from 'typescript';\nimport { getTsconfig } from 'get-tsconfig';\nimport type { SchemaExtractor, SchemaExtractorOptions } from '@teambit/schema';\nimport type { TsserverClient } from '@teambit/ts-server';\nimport type { Workspace } from '@teambit/workspace';\nimport type { ComponentDependency, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { SchemaNode, ModuleSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { APISchema, UnImplementedSchema, IgnoredSchema } from '@teambit/semantics.entities.semantic-schema';\nimport type { Component } from '@teambit/component';\nimport type { AbstractVinyl } from '@teambit/component.sources';\nimport type { EnvContext } from '@teambit/envs';\nimport type { Formatter } from '@teambit/formatter';\nimport type { Logger } from '@teambit/logger';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect, getCoreAspectPackageName } from '@teambit/aspect-loader';\nimport type { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { compact, flatten } from 'lodash';\nimport type { TypescriptMain } from './typescript.main.runtime';\nimport { TransformerNotFound } from './exceptions';\nimport { SchemaExtractorContext } from './schema-extractor-context';\nimport type { Identifier } from './identifier';\nimport { IdentifierList } from './identifier-list';\nimport type { ExtractorOptions } from './extractor-options';\nimport { TypescriptAspect } from './typescript.aspect';\nimport type { SchemaNodeTransformer, SchemaTransformer } from './schema-transformer';\n\nexport class TypeScriptExtractor implements SchemaExtractor {\n constructor(\n private tsconfig: any,\n private schemaTransformers: SchemaTransformer[],\n private apiTransformers: SchemaNodeTransformer[],\n private tsMain: TypescriptMain,\n private rootTsserverPath: string,\n private rootContextPath: string,\n private depResolver: DependencyResolverMain,\n private workspace: Workspace | undefined,\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private logger: Logger\n ) {}\n\n parseSourceFile(file: AbstractVinyl): SourceFile {\n const sourceFile = ts.createSourceFile(\n file.path,\n file.contents.toString('utf8'),\n ts.ScriptTarget.Latest,\n true\n /** don't pass the scriptKind, it'll be determined automatically by typescript by the filepath */\n );\n // leave this commented out, it's helpful when there are issues with ASTs. consider throwing in this case.\n // console.log(\"sourceFile Errors\", file.path, sourceFile.parseDiagnostics);\n return sourceFile;\n }\n\n /**\n * extract a component schema.\n */\n async extract(component: Component, options: SchemaExtractorOptions = {}): Promise<APISchema> {\n // override the rootTsserverPath and rootContextPath if passed via options\n if (options.tsserverPath) {\n this.rootTsserverPath = options.tsserverPath;\n }\n if (options.contextPath) {\n this.rootContextPath = options.contextPath;\n }\n const tsserver = await this.getTsServer();\n const mainFile = component.mainFile;\n const compatibleExts = ['.tsx', '.ts'];\n const internalFiles = options.skipInternals\n ? []\n : component.filesystem.files.filter(\n (file) => compatibleExts.includes(file.extname) && file.path !== mainFile.path\n );\n const allFiles = [mainFile, ...internalFiles];\n\n const context = await this.createContext(tsserver, component, options.formatter);\n\n await pMapSeries(allFiles, async (file) => {\n const ast = this.parseSourceFile(file);\n const identifiers = await this.computeIdentifiers(ast, context);\n const cacheKey = context.getIdentifierKeyForNode(ast);\n context.setIdentifiers(cacheKey, new IdentifierList(identifiers));\n });\n\n const mainAst = this.parseSourceFile(mainFile);\n const moduleSchema = (await this.computeSchema(mainAst, context)) as ModuleSchema;\n moduleSchema.flatExportsRecursively();\n const apiScheme = moduleSchema;\n const internals = await this.computeInternalModules(context, internalFiles);\n\n const location = context.getLocation(mainAst);\n\n return new APISchema(location, apiScheme, internals, component.id as any);\n }\n\n async computeInternalModules(context: SchemaExtractorContext, internalFiles: AbstractVinyl[]) {\n if (internalFiles.length === 0) return [];\n const internals = compact(\n await Promise.all(\n [...context.internalIdentifiers.entries()].map(async ([filePath]) => {\n const file = context.findFileInComponent(filePath);\n if (!file) return undefined;\n const fileAst = this.parseSourceFile(file);\n const moduleSchema = (await this.computeSchema(fileAst, context)) as ModuleSchema;\n moduleSchema.flatExportsRecursively();\n return moduleSchema;\n })\n )\n );\n return internals;\n }\n\n dispose() {\n if (!this.tsserver) return;\n this.tsserver.killTsServer();\n }\n\n async computeIdentifiers(node: Node, context: SchemaExtractorContext) {\n const transformer = this.getTransformer(node, context);\n let identifiers: Identifier[] = [];\n if (!transformer || !transformer.getIdentifiers) {\n this.logger.debug(new TransformerNotFound(node, context.component, context.getLocation(node)).toString());\n } else {\n identifiers = await transformer.getIdentifiers(node, context);\n }\n return identifiers;\n }\n\n private async createContext(\n tsserver: TsserverClient,\n component: Component,\n formatter?: Formatter\n ): Promise<SchemaExtractorContext> {\n const componentDeps = await this.getComponentDeps(component);\n return new SchemaExtractorContext(\n tsserver,\n component,\n this,\n componentDeps,\n this.rootContextPath,\n this.workspace?.path || this.scope.path,\n formatter\n );\n }\n\n private async getComponentDeps(component: Component): Promise<ComponentDependency[]> {\n const deps = this.depResolver.getDependencies(component);\n const componentDeps = deps.getComponentDependencies();\n return componentDeps;\n }\n\n private tsserver: TsserverClient | undefined = undefined;\n\n private async getTsServer() {\n if (!this.tsserver) {\n const tsserver = this.tsMain.getTsserverClient();\n if (tsserver) {\n this.tsserver = tsserver;\n return tsserver;\n }\n\n this.tsserver = await this.tsMain.initTsserverClient(this.rootTsserverPath);\n return this.tsserver;\n }\n\n return this.tsserver;\n }\n\n async computeSchema(node: Node, context: SchemaExtractorContext): Promise<SchemaNode> {\n const transformer = this.getTransformer(node, context);\n\n if (!transformer) {\n return new UnImplementedSchema(context.getLocation(node), node.getText(), SyntaxKind[node.kind]);\n }\n\n const schemaNode = await transformer.transform(node, context);\n\n return this.transformAPI(schemaNode, context);\n }\n\n async transformAPI(schema: SchemaNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const apiTransformer = this.getAPITransformer(schema);\n const transformedApi = apiTransformer ? await apiTransformer.transform(schema, context) : schema;\n if (!transformedApi) {\n return new IgnoredSchema(schema);\n }\n return transformedApi;\n }\n\n async getComponentIDByPath(file: string) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n const matchingCoreAspect = coreAspectIds.find((c) => file === getCoreAspectPackageName(c));\n\n if (matchingCoreAspect) {\n return (this.workspace || this.scope).resolveComponentId(matchingCoreAspect);\n }\n\n if (this.workspace) {\n return this.workspace.getComponentIdByPath(file);\n }\n return null;\n }\n\n /**\n * select the correct transformer for a node.\n */\n getTransformer(node: Node, context: SchemaExtractorContext) {\n const transformer = this.schemaTransformers.find((singleTransformer) => {\n return singleTransformer.predicate(node);\n });\n if (!transformer) {\n this.logger.debug(new TransformerNotFound(node, context.component, context.getLocation(node)).toString());\n return undefined;\n }\n\n return transformer;\n }\n\n getAPITransformer(node: SchemaNode) {\n const transformer = this.apiTransformers.find((singleTransformer) => {\n return singleTransformer.predicate(node);\n });\n if (!transformer) {\n return undefined;\n }\n\n return transformer;\n }\n\n static from(options: ExtractorOptions) {\n return (context: EnvContext) => {\n const tsconfig = getTsconfig(options.tsconfig)?.config || { compilerOptions: options.compilerOptions };\n const tsMain = context.getAspect<TypescriptMain>(TypescriptAspect.id);\n const aspectLoaderMain = context.getAspect<AspectLoaderMain>(AspectLoaderAspect.id);\n // When loading the env from a scope you don't have a workspace\n const rootPath = tsMain.workspace?.path || tsMain.scope.path || '';\n\n const schemaTransformersFromOptions = options.schemaTransformers || [];\n const schemaTransformersFromAspect = tsMain.getAllTransformers();\n\n const apiTransformersFromOptions = options.apiTransformers || [];\n const apiTransformersFromAspect = flatten(Array.from(tsMain.apiTransformerSlot.values()));\n\n const schemaTransformers = [...schemaTransformersFromOptions, ...schemaTransformersFromAspect];\n const apiTransformers = [...apiTransformersFromOptions, ...apiTransformersFromAspect];\n\n return new TypeScriptExtractor(\n tsconfig,\n schemaTransformers,\n apiTransformers,\n tsMain,\n rootPath,\n rootPath,\n tsMain.depResolver,\n tsMain.workspace,\n tsMain.scope,\n aspectLoaderMain,\n context.createLogger(options.name)\n );\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import type { SlotRegistry } from '@teambit/harmony';
|
|
3
|
+
import type { CLIMain } from '@teambit/cli';
|
|
4
|
+
import type { Compiler } from '@teambit/compiler';
|
|
5
|
+
import type { Logger, LoggerMain } from '@teambit/logger';
|
|
6
|
+
import type { SchemaExtractor, SchemaMain } from '@teambit/schema';
|
|
7
|
+
import type { PackageJsonProps } from '@teambit/pkg';
|
|
8
|
+
import { TypescriptConfigMutator } from '@teambit/typescript.modules.ts-config-mutator';
|
|
9
|
+
import type { Workspace } from '@teambit/workspace';
|
|
10
|
+
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
11
|
+
import type { TsserverClientOpts } from '@teambit/ts-server';
|
|
12
|
+
import { TsserverClient } from '@teambit/ts-server';
|
|
13
|
+
import type { AspectLoaderMain } from '@teambit/aspect-loader';
|
|
14
|
+
import type { WatcherMain } from '@teambit/watcher';
|
|
15
|
+
import type { Component } from '@teambit/component';
|
|
16
|
+
import type { BuilderMain } from '@teambit/builder';
|
|
17
|
+
import type { EnvsMain } from '@teambit/envs';
|
|
18
|
+
import type { ScopeMain } from '@teambit/scope';
|
|
19
|
+
import type { TypeScriptCompilerOptions } from './compiler-options';
|
|
20
|
+
import type { SchemaNodeTransformer, SchemaTransformer } from './schema-transformer';
|
|
21
|
+
export type TsMode = 'build' | 'dev';
|
|
22
|
+
export type SchemaTransformerSlot = SlotRegistry<() => SchemaTransformer[]>;
|
|
23
|
+
export type APITransformerSlot = SlotRegistry<SchemaNodeTransformer[]>;
|
|
24
|
+
export type TsConfigTransformContext = {};
|
|
25
|
+
export type TsconfigWriterOptions = {
|
|
26
|
+
clean?: boolean;
|
|
27
|
+
silent?: boolean;
|
|
28
|
+
dedupe?: boolean;
|
|
29
|
+
dryRun?: boolean;
|
|
30
|
+
dryRunWithTsconfig?: boolean;
|
|
31
|
+
};
|
|
32
|
+
export type TsConfigTransformer = (config: TypescriptConfigMutator, context: TsConfigTransformContext) => TypescriptConfigMutator;
|
|
33
|
+
export declare class TypescriptMain {
|
|
34
|
+
private logger;
|
|
35
|
+
readonly schemaTransformerSlot: SchemaTransformerSlot;
|
|
36
|
+
readonly apiTransformerSlot: APITransformerSlot;
|
|
37
|
+
readonly workspace: Workspace;
|
|
38
|
+
readonly scope: ScopeMain;
|
|
39
|
+
readonly depResolver: DependencyResolverMain;
|
|
40
|
+
private envs;
|
|
41
|
+
private aspectLoader;
|
|
42
|
+
constructor(logger: Logger, schemaTransformerSlot: SchemaTransformerSlot, apiTransformerSlot: APITransformerSlot, workspace: Workspace, scope: ScopeMain, depResolver: DependencyResolverMain, envs: EnvsMain, aspectLoader: AspectLoaderMain);
|
|
43
|
+
private tsServer;
|
|
44
|
+
/**
|
|
45
|
+
* create a new compiler.
|
|
46
|
+
*/
|
|
47
|
+
createCompiler(options: TypeScriptCompilerOptions, transformers?: TsConfigTransformer[], tsModule?: typeof ts): Compiler;
|
|
48
|
+
/**
|
|
49
|
+
* get TsserverClient instance if initiated already, otherwise, return undefined.
|
|
50
|
+
*/
|
|
51
|
+
getTsserverClient(): TsserverClient | undefined;
|
|
52
|
+
registerSchemaTransformer(transformers: () => SchemaTransformer[]): this;
|
|
53
|
+
registerApiTransformer(transformers: SchemaNodeTransformer[]): this;
|
|
54
|
+
/**
|
|
55
|
+
* starts a tsserver process to communicate with its API.
|
|
56
|
+
* @param projectPath absolute path of the project root directory
|
|
57
|
+
* @param options TsserverClientOpts
|
|
58
|
+
* @param files optionally, if check-types is enabled, provide files to open and type check.
|
|
59
|
+
* @returns TsserverClient
|
|
60
|
+
*/
|
|
61
|
+
initTsserverClient(projectPath: string, options?: TsserverClientOpts, files?: string[]): Promise<TsserverClient>;
|
|
62
|
+
/**
|
|
63
|
+
* starts a tsserver process to communicate with its API. use only when running on the workspace.
|
|
64
|
+
* @param options TsserverClientOpts
|
|
65
|
+
* @param files optionally, if check-types is enabled, provide files to open and type check.
|
|
66
|
+
* @returns TsserverClient
|
|
67
|
+
*/
|
|
68
|
+
initTsserverClientFromWorkspace(options?: TsserverClientOpts, files?: string[]): Promise<TsserverClient>;
|
|
69
|
+
/**
|
|
70
|
+
* Create a compiler instance and run the cjs transformer for it
|
|
71
|
+
* @param options
|
|
72
|
+
* @param transformers
|
|
73
|
+
* @param tsModule
|
|
74
|
+
* @returns
|
|
75
|
+
*/
|
|
76
|
+
createCjsCompiler(options: TypeScriptCompilerOptions, transformers?: TsConfigTransformer[], tsModule?: typeof ts): Compiler;
|
|
77
|
+
/**
|
|
78
|
+
* Create a compiler instance and run the esm transformer for it
|
|
79
|
+
* @param options
|
|
80
|
+
* @param transformers
|
|
81
|
+
* @param tsModule
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
createEsmCompiler(options: TypeScriptCompilerOptions, transformers?: TsConfigTransformer[], tsModule?: typeof ts): Compiler;
|
|
85
|
+
/**
|
|
86
|
+
* Create a transformer that change the ts module to CommonJS
|
|
87
|
+
* @returns
|
|
88
|
+
*/
|
|
89
|
+
getCjsTransformer(): TsConfigTransformer;
|
|
90
|
+
/**
|
|
91
|
+
* Create a transformer that change the ts module to ES2020
|
|
92
|
+
* @returns
|
|
93
|
+
*/
|
|
94
|
+
getEsmTransformer(): TsConfigTransformer;
|
|
95
|
+
getAllTransformers(): SchemaTransformer[];
|
|
96
|
+
/**
|
|
97
|
+
* create an instance of a typescript semantic schema extractor.
|
|
98
|
+
*/
|
|
99
|
+
createSchemaExtractor(tsconfig: any, tsserverPath?: string, contextPath?: string, schemaTransformers?: SchemaTransformer[], apiTransformers?: SchemaNodeTransformer[]): SchemaExtractor;
|
|
100
|
+
/**
|
|
101
|
+
* add the default package json properties to the component
|
|
102
|
+
* :TODO @gilad why do we need this DSL? can't I just get the args here.
|
|
103
|
+
*/
|
|
104
|
+
getCjsPackageJsonProps(): PackageJsonProps;
|
|
105
|
+
/**
|
|
106
|
+
* add type: module to the package.json props and the default props
|
|
107
|
+
* :TODO @gilad why do we need this DSL? can't I just get the args here.
|
|
108
|
+
*/
|
|
109
|
+
getEsmPackageJsonProps(): PackageJsonProps;
|
|
110
|
+
getSupportedFilesForTsserver(components: Component[]): string[];
|
|
111
|
+
private onPreWatch;
|
|
112
|
+
private onComponentChange;
|
|
113
|
+
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
114
|
+
static dependencies: import("@teambit/harmony").Aspect[];
|
|
115
|
+
static slots: (((registerFn: () => string) => SlotRegistry<SchemaTransformer[]>) | ((registerFn: () => string) => SlotRegistry<SchemaNodeTransformer[]>))[];
|
|
116
|
+
static provider([schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs, watcher, scope, builder]: [
|
|
117
|
+
SchemaMain,
|
|
118
|
+
LoggerMain,
|
|
119
|
+
AspectLoaderMain,
|
|
120
|
+
Workspace,
|
|
121
|
+
CLIMain,
|
|
122
|
+
DependencyResolverMain,
|
|
123
|
+
EnvsMain,
|
|
124
|
+
WatcherMain,
|
|
125
|
+
ScopeMain,
|
|
126
|
+
BuilderMain
|
|
127
|
+
], config: any, [schemaTransformerSlot, apiTransformerSlot]: [SchemaTransformerSlot, APITransformerSlot]): Promise<TypescriptMain>;
|
|
128
|
+
}
|
|
129
|
+
export declare function runTransformersWithContext(config: TypescriptConfigMutator, transformers: TsConfigTransformer[] | undefined, context: TsConfigTransformContext): TypescriptConfigMutator;
|
|
130
|
+
export default TypescriptMain;
|