@teambit/typescript 0.0.880 → 0.0.882
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/dist/cmds/check-types.cmd.js +0 -21
- package/dist/cmds/check-types.cmd.js.map +1 -1
- package/dist/cmds/write-tsconfig.cmd.js +2 -25
- package/dist/cmds/write-tsconfig.cmd.js.map +1 -1
- package/dist/dedupe-path.spec.js +6 -8
- package/dist/dedupe-path.spec.js.map +1 -1
- package/dist/exceptions/index.js +0 -3
- package/dist/exceptions/index.js.map +1 -1
- package/dist/exceptions/transformer-not-found.js +0 -7
- package/dist/exceptions/transformer-not-found.js.map +1 -1
- package/dist/export-identifier.js +0 -3
- package/dist/export-identifier.js.map +1 -1
- package/dist/export-list.js +0 -4
- package/dist/export-list.js.map +1 -1
- package/dist/index.js +0 -9
- package/dist/index.js.map +1 -1
- package/dist/schema-extractor-context.js +16 -120
- package/dist/schema-extractor-context.js.map +1 -1
- package/dist/schema-transformer.plugin.js +0 -8
- package/dist/schema-transformer.plugin.js.map +1 -1
- package/dist/transformers/binding-element.js +0 -23
- package/dist/transformers/binding-element.js.map +1 -1
- package/dist/transformers/class-deceleration.js +2 -34
- package/dist/transformers/class-deceleration.js.map +1 -1
- package/dist/transformers/enum-declaration.js +0 -16
- package/dist/transformers/enum-declaration.js.map +1 -1
- package/dist/transformers/export-declaration.js +8 -47
- package/dist/transformers/export-declaration.js.map +1 -1
- package/dist/transformers/function-declaration.js +2 -19
- package/dist/transformers/function-declaration.js.map +1 -1
- package/dist/transformers/index.js +0 -30
- package/dist/transformers/index.js.map +1 -1
- package/dist/transformers/interface-declaration.js +0 -25
- package/dist/transformers/interface-declaration.js.map +1 -1
- package/dist/transformers/source-file-transformer.js +3 -24
- package/dist/transformers/source-file-transformer.js.map +1 -1
- package/dist/transformers/type-alias.js +0 -23
- package/dist/transformers/type-alias.js.map +1 -1
- package/dist/transformers/utils/class-element-to-schema.js +0 -35
- package/dist/transformers/utils/class-element-to-schema.js.map +1 -1
- package/dist/transformers/utils/get-params.js +6 -33
- package/dist/transformers/utils/get-params.js.map +1 -1
- package/dist/transformers/utils/jsdoc-to-doc-schema.js +4 -49
- package/dist/transformers/utils/jsdoc-to-doc-schema.js.map +1 -1
- package/dist/transformers/utils/parse-type-from-quick-info.js +4 -16
- package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -1
- package/dist/transformers/utils/to-function-like-schema.js +0 -15
- package/dist/transformers/utils/to-function-like-schema.js.map +1 -1
- package/dist/transformers/utils/type-element-to-schema.js +0 -37
- package/dist/transformers/utils/type-element-to-schema.js.map +1 -1
- package/dist/transformers/utils/type-node-to-schema.js +5 -71
- package/dist/transformers/utils/type-node-to-schema.js.map +1 -1
- package/dist/transformers/variable-declaration.js +0 -30
- package/dist/transformers/variable-declaration.js.map +1 -1
- package/dist/transformers/variable-statement.js +0 -22
- package/dist/transformers/variable-statement.js.map +1 -1
- package/dist/tsconfig-writer.js +8 -58
- package/dist/tsconfig-writer.js.map +1 -1
- package/dist/typescript.aspect.js +0 -5
- package/dist/typescript.aspect.js.map +1 -1
- package/dist/typescript.compiler.js +16 -83
- package/dist/typescript.compiler.js.map +1 -1
- package/dist/typescript.compiler.spec.js +0 -25
- package/dist/typescript.compiler.spec.js.map +1 -1
- package/dist/typescript.composition.js +0 -6
- package/dist/typescript.composition.js.map +1 -1
- package/dist/typescript.extractor.js +6 -50
- package/dist/typescript.extractor.js.map +1 -1
- package/dist/typescript.main.runtime.js +10 -114
- package/dist/typescript.main.runtime.js.map +1 -1
- package/dist/typescript.parser.js +3 -30
- package/dist/typescript.parser.js.map +1 -1
- package/dist/typescript.parser.spec.js +0 -22
- package/dist/typescript.parser.spec.js.map +1 -1
- package/package-tar/teambit-typescript-0.0.882.tgz +0 -0
- package/package.json +15 -15
- package/{preview-1666312873430.js → preview-1666496165706.js} +2 -2
- package/package-tar/teambit-typescript-0.0.880.tgz +0 -0
|
@@ -1,113 +1,83 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.promise.js");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.VariableDeclaration = void 0;
|
|
11
|
-
|
|
12
9
|
function _semanticsEntities() {
|
|
13
10
|
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
14
|
-
|
|
15
11
|
_semanticsEntities = function () {
|
|
16
12
|
return data;
|
|
17
13
|
};
|
|
18
|
-
|
|
19
14
|
return data;
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
function _typescript() {
|
|
23
17
|
const data = _interopRequireDefault(require("typescript"));
|
|
24
|
-
|
|
25
18
|
_typescript = function () {
|
|
26
19
|
return data;
|
|
27
20
|
};
|
|
28
|
-
|
|
29
21
|
return data;
|
|
30
22
|
}
|
|
31
|
-
|
|
32
23
|
function _exportIdentifier() {
|
|
33
24
|
const data = require("../export-identifier");
|
|
34
|
-
|
|
35
25
|
_exportIdentifier = function () {
|
|
36
26
|
return data;
|
|
37
27
|
};
|
|
38
|
-
|
|
39
28
|
return data;
|
|
40
29
|
}
|
|
41
|
-
|
|
42
30
|
function _getParams() {
|
|
43
31
|
const data = require("./utils/get-params");
|
|
44
|
-
|
|
45
32
|
_getParams = function () {
|
|
46
33
|
return data;
|
|
47
34
|
};
|
|
48
|
-
|
|
49
35
|
return data;
|
|
50
36
|
}
|
|
51
|
-
|
|
52
37
|
function _parseTypeFromQuickInfo() {
|
|
53
38
|
const data = require("./utils/parse-type-from-quick-info");
|
|
54
|
-
|
|
55
39
|
_parseTypeFromQuickInfo = function () {
|
|
56
40
|
return data;
|
|
57
41
|
};
|
|
58
|
-
|
|
59
42
|
return data;
|
|
60
43
|
}
|
|
61
|
-
|
|
62
44
|
function _jsdocToDocSchema() {
|
|
63
45
|
const data = require("./utils/jsdoc-to-doc-schema");
|
|
64
|
-
|
|
65
46
|
_jsdocToDocSchema = function () {
|
|
66
47
|
return data;
|
|
67
48
|
};
|
|
68
|
-
|
|
69
49
|
return data;
|
|
70
50
|
}
|
|
71
|
-
|
|
72
51
|
class VariableDeclaration {
|
|
73
52
|
predicate(node) {
|
|
74
53
|
return node.kind === _typescript().default.SyntaxKind.VariableDeclaration;
|
|
75
54
|
}
|
|
76
|
-
|
|
77
55
|
getName(node) {
|
|
78
56
|
return node.name.getText();
|
|
79
57
|
}
|
|
80
|
-
|
|
81
58
|
async getIdentifiers(node) {
|
|
82
59
|
return [new (_exportIdentifier().ExportIdentifier)(node.name.getText(), node.getSourceFile().fileName)];
|
|
83
60
|
}
|
|
84
|
-
|
|
85
61
|
async transform(varDec, context) {
|
|
86
62
|
var _info$body, _varDec$initializer;
|
|
87
|
-
|
|
88
63
|
const name = this.getName(varDec);
|
|
89
64
|
const info = await context.getQuickInfo(varDec.name);
|
|
90
65
|
const displaySig = (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
|
|
91
66
|
const location = context.getLocation(varDec);
|
|
92
67
|
const doc = await (0, _jsdocToDocSchema().jsDocToDocSchema)(varDec, context);
|
|
93
|
-
|
|
94
68
|
if (((_varDec$initializer = varDec.initializer) === null || _varDec$initializer === void 0 ? void 0 : _varDec$initializer.kind) === _typescript().default.SyntaxKind.ArrowFunction) {
|
|
95
69
|
var _varDec$modifiers;
|
|
96
|
-
|
|
97
70
|
const args = await (0, _getParams().getParams)(varDec.initializer.parameters, context);
|
|
98
71
|
const typeStr = (0, _parseTypeFromQuickInfo().parseReturnTypeFromQuickInfo)(info);
|
|
99
72
|
const returnType = await context.resolveType(varDec, typeStr);
|
|
100
73
|
const modifiers = ((_varDec$modifiers = varDec.modifiers) === null || _varDec$modifiers === void 0 ? void 0 : _varDec$modifiers.map(modifier => modifier.getText())) || [];
|
|
101
74
|
return new (_semanticsEntities().FunctionLikeSchema)(location, name, args, returnType, displaySig, modifiers, doc);
|
|
102
75
|
}
|
|
103
|
-
|
|
104
76
|
const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
|
|
105
77
|
const type = await context.resolveType(varDec, typeStr);
|
|
106
78
|
return new (_semanticsEntities().VariableLikeSchema)(location, name, displaySig, type, false, doc);
|
|
107
79
|
}
|
|
108
|
-
|
|
109
80
|
}
|
|
110
|
-
|
|
111
81
|
exports.VariableDeclaration = VariableDeclaration;
|
|
112
82
|
|
|
113
83
|
//# sourceMappingURL=variable-declaration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","ExportIdentifier","getSourceFile","fileName","transform","varDec","context","info","getQuickInfo","displaySig","body","displayString","location","getLocation","doc","jsDocToDocSchema","initializer","ArrowFunction","args","getParams","parameters","typeStr","parseReturnTypeFromQuickInfo","returnType","resolveType","modifiers","map","modifier","FunctionLikeSchema","parseTypeFromQuickInfo","type","VariableLikeSchema"],"sources":["variable-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { ExportIdentifier } from '../export-identifier';\nimport { getParams } from './utils/get-params';\nimport { parseReturnTypeFromQuickInfo, parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { jsDocToDocSchema } from './utils/jsdoc-to-doc-schema';\n\nexport class VariableDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableDeclaration;\n }\n\n getName(node: VariableDeclarationNode) {\n return node.name.getText();\n }\n\n async getIdentifiers(node: VariableDeclarationNode) {\n return [new ExportIdentifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(varDec);\n const info = await context.getQuickInfo(varDec.name);\n const displaySig = info?.body?.displayString || '';\n const location = context.getLocation(varDec);\n const doc = await jsDocToDocSchema(varDec, context);\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const args = await getParams((varDec.initializer as ArrowFunction).parameters, context);\n const typeStr = parseReturnTypeFromQuickInfo(info);\n const returnType = await context.resolveType(varDec, typeStr);\n const modifiers = varDec.modifiers?.map((modifier) => modifier.getText()) || [];\n return new FunctionLikeSchema(location, name, args, returnType, displaySig, modifiers as Modifier[], doc);\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n return new VariableLikeSchema(location, name, displaySig, type, false, doc);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","ExportIdentifier","getSourceFile","fileName","transform","varDec","context","info","getQuickInfo","displaySig","body","displayString","location","getLocation","doc","jsDocToDocSchema","initializer","ArrowFunction","args","getParams","parameters","typeStr","parseReturnTypeFromQuickInfo","returnType","resolveType","modifiers","map","modifier","FunctionLikeSchema","parseTypeFromQuickInfo","type","VariableLikeSchema"],"sources":["variable-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { ExportIdentifier } from '../export-identifier';\nimport { getParams } from './utils/get-params';\nimport { parseReturnTypeFromQuickInfo, parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { jsDocToDocSchema } from './utils/jsdoc-to-doc-schema';\n\nexport class VariableDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableDeclaration;\n }\n\n getName(node: VariableDeclarationNode) {\n return node.name.getText();\n }\n\n async getIdentifiers(node: VariableDeclarationNode) {\n return [new ExportIdentifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(varDec);\n const info = await context.getQuickInfo(varDec.name);\n const displaySig = info?.body?.displayString || '';\n const location = context.getLocation(varDec);\n const doc = await jsDocToDocSchema(varDec, context);\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const args = await getParams((varDec.initializer as ArrowFunction).parameters, context);\n const typeStr = parseReturnTypeFromQuickInfo(info);\n const returnType = await context.resolveType(varDec, typeStr);\n const modifiers = varDec.modifiers?.map((modifier) => modifier.getText()) || [];\n return new FunctionLikeSchema(location, name, args, returnType, displaySig, modifiers as Modifier[], doc);\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n return new VariableLikeSchema(location, name, displaySig, type, false, doc);\n }\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,mBAAmB,CAA8B;EAC5DC,SAAS,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACL,mBAAmB;EACxD;EAEAM,OAAO,CAACJ,IAA6B,EAAE;IACrC,OAAOA,IAAI,CAACK,IAAI,CAACC,OAAO,EAAE;EAC5B;EAEA,MAAMC,cAAc,CAACP,IAA6B,EAAE;IAClD,OAAO,CAAC,KAAIQ,oCAAgB,EAACR,IAAI,CAACK,IAAI,CAACC,OAAO,EAAE,EAAEN,IAAI,CAACS,aAAa,EAAE,CAACC,QAAQ,CAAC,CAAC;EACnF;EAEA,MAAMC,SAAS,CAACC,MAA+B,EAAEC,OAA+B,EAAuB;IAAA;IACrG,MAAMR,IAAI,GAAG,IAAI,CAACD,OAAO,CAACQ,MAAM,CAAC;IACjC,MAAME,IAAI,GAAG,MAAMD,OAAO,CAACE,YAAY,CAACH,MAAM,CAACP,IAAI,CAAC;IACpD,MAAMW,UAAU,GAAG,CAAAF,IAAI,aAAJA,IAAI,qCAAJA,IAAI,CAAEG,IAAI,+CAAV,WAAYC,aAAa,KAAI,EAAE;IAClD,MAAMC,QAAQ,GAAGN,OAAO,CAACO,WAAW,CAACR,MAAM,CAAC;IAC5C,MAAMS,GAAG,GAAG,MAAM,IAAAC,oCAAgB,EAACV,MAAM,EAAEC,OAAO,CAAC;IACnD,IAAI,wBAAAD,MAAM,CAACW,WAAW,wDAAlB,oBAAoBtB,IAAI,MAAKC,qBAAE,CAACC,UAAU,CAACqB,aAAa,EAAE;MAAA;MAC5D,MAAMC,IAAI,GAAG,MAAM,IAAAC,sBAAS,EAAEd,MAAM,CAACW,WAAW,CAAmBI,UAAU,EAAEd,OAAO,CAAC;MACvF,MAAMe,OAAO,GAAG,IAAAC,sDAA4B,EAACf,IAAI,CAAC;MAClD,MAAMgB,UAAU,GAAG,MAAMjB,OAAO,CAACkB,WAAW,CAACnB,MAAM,EAAEgB,OAAO,CAAC;MAC7D,MAAMI,SAAS,GAAG,sBAAApB,MAAM,CAACoB,SAAS,sDAAhB,kBAAkBC,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAAC5B,OAAO,EAAE,CAAC,KAAI,EAAE;MAC/E,OAAO,KAAI6B,uCAAkB,EAAChB,QAAQ,EAAEd,IAAI,EAAEoB,IAAI,EAAEK,UAAU,EAAEd,UAAU,EAAEgB,SAAS,EAAgBX,GAAG,CAAC;IAC3G;IACA,MAAMO,OAAO,GAAG,IAAAQ,gDAAsB,EAACtB,IAAI,CAAC;IAC5C,MAAMuB,IAAI,GAAG,MAAMxB,OAAO,CAACkB,WAAW,CAACnB,MAAM,EAAEgB,OAAO,CAAC;IACvD,OAAO,KAAIU,uCAAkB,EAACnB,QAAQ,EAAEd,IAAI,EAAEW,UAAU,EAAEqB,IAAI,EAAE,KAAK,EAAEhB,GAAG,CAAC;EAC7E;AACF;AAAC"}
|
|
@@ -1,64 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.promise.js");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.VariableStatementTransformer = void 0;
|
|
11
|
-
|
|
12
9
|
function _semanticsEntities() {
|
|
13
10
|
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
14
|
-
|
|
15
11
|
_semanticsEntities = function () {
|
|
16
12
|
return data;
|
|
17
13
|
};
|
|
18
|
-
|
|
19
14
|
return data;
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
function _lodash() {
|
|
23
17
|
const data = require("lodash");
|
|
24
|
-
|
|
25
18
|
_lodash = function () {
|
|
26
19
|
return data;
|
|
27
20
|
};
|
|
28
|
-
|
|
29
21
|
return data;
|
|
30
22
|
}
|
|
31
|
-
|
|
32
23
|
function _pMapSeries() {
|
|
33
24
|
const data = _interopRequireDefault(require("p-map-series"));
|
|
34
|
-
|
|
35
25
|
_pMapSeries = function () {
|
|
36
26
|
return data;
|
|
37
27
|
};
|
|
38
|
-
|
|
39
28
|
return data;
|
|
40
29
|
}
|
|
41
|
-
|
|
42
30
|
function _typescript() {
|
|
43
31
|
const data = _interopRequireDefault(require("typescript"));
|
|
44
|
-
|
|
45
32
|
_typescript = function () {
|
|
46
33
|
return data;
|
|
47
34
|
};
|
|
48
|
-
|
|
49
35
|
return data;
|
|
50
36
|
}
|
|
51
|
-
|
|
52
37
|
function _exportIdentifier() {
|
|
53
38
|
const data = require("../export-identifier");
|
|
54
|
-
|
|
55
39
|
_exportIdentifier = function () {
|
|
56
40
|
return data;
|
|
57
41
|
};
|
|
58
|
-
|
|
59
42
|
return data;
|
|
60
43
|
}
|
|
61
|
-
|
|
62
44
|
/**
|
|
63
45
|
* variable statement is a collection of variable declarations.
|
|
64
46
|
* e.g. `export const a = 1, b = () => {}, c = {};`
|
|
@@ -67,13 +49,11 @@ class VariableStatementTransformer {
|
|
|
67
49
|
predicate(node) {
|
|
68
50
|
return node.kind === _typescript().default.SyntaxKind.VariableStatement;
|
|
69
51
|
}
|
|
70
|
-
|
|
71
52
|
async getIdentifiers(node) {
|
|
72
53
|
return node.declarationList.declarations.map(dec => {
|
|
73
54
|
return new (_exportIdentifier().ExportIdentifier)(dec.name.getText(), dec.getSourceFile().fileName);
|
|
74
55
|
});
|
|
75
56
|
}
|
|
76
|
-
|
|
77
57
|
async transform(node, context) {
|
|
78
58
|
const schemas = await (0, _pMapSeries().default)(node.declarationList.declarations, async dec => {
|
|
79
59
|
// this will get the schema from variable-declaration
|
|
@@ -82,9 +62,7 @@ class VariableStatementTransformer {
|
|
|
82
62
|
});
|
|
83
63
|
return new (_semanticsEntities().Module)(context.getLocation(node), (0, _lodash().compact)(schemas));
|
|
84
64
|
}
|
|
85
|
-
|
|
86
65
|
}
|
|
87
|
-
|
|
88
66
|
exports.VariableStatementTransformer = VariableStatementTransformer;
|
|
89
67
|
|
|
90
68
|
//# sourceMappingURL=variable-statement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VariableStatementTransformer","predicate","node","kind","ts","SyntaxKind","VariableStatement","getIdentifiers","declarationList","declarations","map","dec","ExportIdentifier","name","getText","getSourceFile","fileName","transform","context","schemas","pMapSeries","schema","visitDefinition","Module","getLocation","compact"],"sources":["variable-statement.ts"],"sourcesContent":["import { SchemaNode, Module } from '@teambit/semantics.entities.semantic-schema';\nimport { compact } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport ts, { Node, VariableStatement } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { ExportIdentifier } from '../export-identifier';\n\n/**\n * variable statement is a collection of variable declarations.\n * e.g. `export const a = 1, b = () => {}, c = {};`\n */\nexport class VariableStatementTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableStatement;\n }\n\n async getIdentifiers(node: VariableStatement) {\n return node.declarationList.declarations.map((dec) => {\n return new ExportIdentifier(dec.name.getText(), dec.getSourceFile().fileName);\n });\n }\n\n async transform(node: VariableStatement, context: SchemaExtractorContext): Promise<SchemaNode> {\n const schemas = await pMapSeries(node.declarationList.declarations, async (dec) => {\n // this will get the schema from variable-declaration\n const schema = await context.visitDefinition(dec.name);\n return schema;\n });\n return new Module(context.getLocation(node), compact(schemas));\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["VariableStatementTransformer","predicate","node","kind","ts","SyntaxKind","VariableStatement","getIdentifiers","declarationList","declarations","map","dec","ExportIdentifier","name","getText","getSourceFile","fileName","transform","context","schemas","pMapSeries","schema","visitDefinition","Module","getLocation","compact"],"sources":["variable-statement.ts"],"sourcesContent":["import { SchemaNode, Module } from '@teambit/semantics.entities.semantic-schema';\nimport { compact } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport ts, { Node, VariableStatement } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { ExportIdentifier } from '../export-identifier';\n\n/**\n * variable statement is a collection of variable declarations.\n * e.g. `export const a = 1, b = () => {}, c = {};`\n */\nexport class VariableStatementTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableStatement;\n }\n\n async getIdentifiers(node: VariableStatement) {\n return node.declarationList.declarations.map((dec) => {\n return new ExportIdentifier(dec.name.getText(), dec.getSourceFile().fileName);\n });\n }\n\n async transform(node: VariableStatement, context: SchemaExtractorContext): Promise<SchemaNode> {\n const schemas = await pMapSeries(node.declarationList.declarations, async (dec) => {\n // this will get the schema from variable-declaration\n const schema = await context.visitDefinition(dec.name);\n return schema;\n });\n return new Module(context.getLocation(node), compact(schemas));\n }\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AACA;AACA;AACA;AACO,MAAMA,4BAA4B,CAA8B;EACrEC,SAAS,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,iBAAiB;EACtD;EAEA,MAAMC,cAAc,CAACL,IAAuB,EAAE;IAC5C,OAAOA,IAAI,CAACM,eAAe,CAACC,YAAY,CAACC,GAAG,CAAEC,GAAG,IAAK;MACpD,OAAO,KAAIC,oCAAgB,EAACD,GAAG,CAACE,IAAI,CAACC,OAAO,EAAE,EAAEH,GAAG,CAACI,aAAa,EAAE,CAACC,QAAQ,CAAC;IAC/E,CAAC,CAAC;EACJ;EAEA,MAAMC,SAAS,CAACf,IAAuB,EAAEgB,OAA+B,EAAuB;IAC7F,MAAMC,OAAO,GAAG,MAAM,IAAAC,qBAAU,EAAClB,IAAI,CAACM,eAAe,CAACC,YAAY,EAAE,MAAOE,GAAG,IAAK;MACjF;MACA,MAAMU,MAAM,GAAG,MAAMH,OAAO,CAACI,eAAe,CAACX,GAAG,CAACE,IAAI,CAAC;MACtD,OAAOQ,MAAM;IACf,CAAC,CAAC;IACF,OAAO,KAAIE,2BAAM,EAACL,OAAO,CAACM,WAAW,CAACtB,IAAI,CAAC,EAAE,IAAAuB,iBAAO,EAACN,OAAO,CAAC,CAAC;EAChE;AACF;AAAC"}
|
package/dist/tsconfig-writer.js
CHANGED
|
@@ -1,89 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.array.flat.js");
|
|
6
|
-
|
|
7
5
|
require("core-js/modules/es.array.iterator.js");
|
|
8
|
-
|
|
9
6
|
require("core-js/modules/es.array.unscopables.flat.js");
|
|
10
|
-
|
|
11
7
|
require("core-js/modules/es.promise.js");
|
|
12
|
-
|
|
13
8
|
require("core-js/modules/es.regexp.exec.js");
|
|
14
|
-
|
|
15
9
|
Object.defineProperty(exports, "__esModule", {
|
|
16
10
|
value: true
|
|
17
11
|
});
|
|
18
12
|
exports.TsconfigWriter = void 0;
|
|
19
13
|
exports.dedupePaths = dedupePaths;
|
|
20
|
-
|
|
21
14
|
function _fsExtra() {
|
|
22
15
|
const data = _interopRequireDefault(require("fs-extra"));
|
|
23
|
-
|
|
24
16
|
_fsExtra = function () {
|
|
25
17
|
return data;
|
|
26
18
|
};
|
|
27
|
-
|
|
28
19
|
return data;
|
|
29
20
|
}
|
|
30
|
-
|
|
31
21
|
function _path() {
|
|
32
22
|
const data = _interopRequireDefault(require("path"));
|
|
33
|
-
|
|
34
23
|
_path = function () {
|
|
35
24
|
return data;
|
|
36
25
|
};
|
|
37
|
-
|
|
38
26
|
return data;
|
|
39
27
|
}
|
|
40
|
-
|
|
41
28
|
function _yesno() {
|
|
42
29
|
const data = _interopRequireDefault(require("yesno"));
|
|
43
|
-
|
|
44
30
|
_yesno = function () {
|
|
45
31
|
return data;
|
|
46
32
|
};
|
|
47
|
-
|
|
48
33
|
return data;
|
|
49
34
|
}
|
|
50
|
-
|
|
51
35
|
function _lodash() {
|
|
52
36
|
const data = require("lodash");
|
|
53
|
-
|
|
54
37
|
_lodash = function () {
|
|
55
38
|
return data;
|
|
56
39
|
};
|
|
57
|
-
|
|
58
40
|
return data;
|
|
59
41
|
}
|
|
60
|
-
|
|
61
42
|
function _exceptions() {
|
|
62
43
|
const data = require("@teambit/legacy/dist/prompts/exceptions");
|
|
63
|
-
|
|
64
44
|
_exceptions = function () {
|
|
65
45
|
return data;
|
|
66
46
|
};
|
|
67
|
-
|
|
68
47
|
return data;
|
|
69
48
|
}
|
|
70
|
-
|
|
71
49
|
function _chalk() {
|
|
72
50
|
const data = _interopRequireDefault(require("chalk"));
|
|
73
|
-
|
|
74
51
|
_chalk = function () {
|
|
75
52
|
return data;
|
|
76
53
|
};
|
|
77
|
-
|
|
78
54
|
return data;
|
|
79
55
|
}
|
|
80
|
-
|
|
81
56
|
class TsconfigWriter {
|
|
82
57
|
constructor(workspace, logger) {
|
|
83
58
|
this.workspace = workspace;
|
|
84
59
|
this.logger = logger;
|
|
85
60
|
}
|
|
86
|
-
|
|
87
61
|
async write(envsExecutionContext, options) {
|
|
88
62
|
const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, options);
|
|
89
63
|
const tsconfigPathsPerEnv = pathsPerEnvs.map(pathsPerEnv => ({
|
|
@@ -96,7 +70,6 @@ class TsconfigWriter {
|
|
|
96
70
|
await this.writeFiles(tsconfigPathsPerEnv);
|
|
97
71
|
return tsconfigPathsPerEnv;
|
|
98
72
|
}
|
|
99
|
-
|
|
100
73
|
async clean(envsExecutionContext, {
|
|
101
74
|
dryRun,
|
|
102
75
|
silent
|
|
@@ -114,7 +87,6 @@ class TsconfigWriter {
|
|
|
114
87
|
await this.deleteFiles(tsconfigFiles);
|
|
115
88
|
return tsconfigFiles;
|
|
116
89
|
}
|
|
117
|
-
|
|
118
90
|
async promptForWriting(dirs) {
|
|
119
91
|
this.logger.clearStatusLine();
|
|
120
92
|
const tsconfigFiles = dirs.map(dir => _path().default.join(dir, 'tsconfig.json'));
|
|
@@ -123,12 +95,10 @@ class TsconfigWriter {
|
|
|
123
95
|
${tsconfigFiles.join('\n')}
|
|
124
96
|
${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
|
|
125
97
|
});
|
|
126
|
-
|
|
127
98
|
if (!ok) {
|
|
128
99
|
throw new (_exceptions().PromptCanceled)();
|
|
129
100
|
}
|
|
130
101
|
}
|
|
131
|
-
|
|
132
102
|
async promptForCleaning(tsconfigFiles) {
|
|
133
103
|
this.logger.clearStatusLine();
|
|
134
104
|
const ok = await (0, _yesno().default)({
|
|
@@ -136,16 +106,13 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
|
|
|
136
106
|
${tsconfigFiles.join('\n')}
|
|
137
107
|
${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
|
|
138
108
|
});
|
|
139
|
-
|
|
140
109
|
if (!ok) {
|
|
141
110
|
throw new (_exceptions().PromptCanceled)();
|
|
142
111
|
}
|
|
143
112
|
}
|
|
144
|
-
|
|
145
113
|
async deleteFiles(tsconfigFiles) {
|
|
146
114
|
await Promise.all(tsconfigFiles.map(f => _fsExtra().default.remove(f)));
|
|
147
115
|
}
|
|
148
|
-
|
|
149
116
|
async writeFiles(tsconfigPathsPerEnvs) {
|
|
150
117
|
await Promise.all(tsconfigPathsPerEnvs.map(pathsPerEnv => {
|
|
151
118
|
return Promise.all(pathsPerEnv.paths.map(p => _fsExtra().default.writeJSON(_path().default.join(p, 'tsconfig.json'), pathsPerEnv.tsconfig, {
|
|
@@ -153,7 +120,6 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
|
|
|
153
120
|
})));
|
|
154
121
|
}));
|
|
155
122
|
}
|
|
156
|
-
|
|
157
123
|
getPathsPerEnv(envsExecutionContext, {
|
|
158
124
|
dedupe
|
|
159
125
|
}) {
|
|
@@ -166,7 +132,6 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
|
|
|
166
132
|
}))
|
|
167
133
|
};
|
|
168
134
|
});
|
|
169
|
-
|
|
170
135
|
if (!dedupe) {
|
|
171
136
|
return pathsPerEnvs.map(({
|
|
172
137
|
id,
|
|
@@ -178,15 +143,12 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
|
|
|
178
143
|
paths
|
|
179
144
|
}));
|
|
180
145
|
}
|
|
181
|
-
|
|
182
146
|
const envsWithFiles = envsExecutionContext.map(e => ({
|
|
183
147
|
id: e.id,
|
|
184
148
|
file: e.env.getTsConfig()
|
|
185
149
|
}));
|
|
186
150
|
const envsPerFile = [];
|
|
187
|
-
|
|
188
151
|
const isEnvProcessed = envId => envsPerFile.map(e => e.envIds).flat().find(e => e === envId);
|
|
189
|
-
|
|
190
152
|
envsWithFiles.forEach(({
|
|
191
153
|
id,
|
|
192
154
|
file
|
|
@@ -202,11 +164,10 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
|
|
|
202
164
|
ids: e.envIds,
|
|
203
165
|
paths: (0, _lodash().compact)(e.envIds.map(envId => {
|
|
204
166
|
var _pathsPerEnvs$find;
|
|
205
|
-
|
|
206
167
|
return (_pathsPerEnvs$find = pathsPerEnvs.find(p => p.id === envId)) === null || _pathsPerEnvs$find === void 0 ? void 0 : _pathsPerEnvs$find.paths;
|
|
207
168
|
}).flat())
|
|
208
|
-
}));
|
|
209
|
-
|
|
169
|
+
}));
|
|
170
|
+
// const pathsPerEnvIds = pathsPerEnvs.map((p) => ({ ids: p.ids, paths: p.paths }));
|
|
210
171
|
const envsPerDedupedPaths = dedupePaths(pathsPerEnvIds);
|
|
211
172
|
const dedupedPathsPerEnvs = envsPerDedupedPaths.map(envWithDedupePaths => {
|
|
212
173
|
const found = pathsPerEnvs.find(p => envWithDedupePaths.ids.includes(p.id));
|
|
@@ -219,11 +180,8 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
|
|
|
219
180
|
});
|
|
220
181
|
return dedupedPathsPerEnvs;
|
|
221
182
|
}
|
|
222
|
-
|
|
223
183
|
}
|
|
224
|
-
|
|
225
184
|
exports.TsconfigWriter = TsconfigWriter;
|
|
226
|
-
|
|
227
185
|
async function filterDirsWithTsconfigFile(dirs) {
|
|
228
186
|
const dirsWithTsconfig = await Promise.all(dirs.map(async dir => {
|
|
229
187
|
const hasTsconfig = await _fsExtra().default.pathExists(_path().default.join(dir, 'tsconfig.json'));
|
|
@@ -231,25 +189,21 @@ async function filterDirsWithTsconfigFile(dirs) {
|
|
|
231
189
|
}));
|
|
232
190
|
return (0, _lodash().compact)(dirsWithTsconfig);
|
|
233
191
|
}
|
|
234
|
-
|
|
235
192
|
function getAllPossibleDirsFromPaths(paths) {
|
|
236
193
|
const dirs = paths.map(p => getAllParentsDirOfPath(p)).flat();
|
|
237
194
|
dirs.push('.'); // add the root dir
|
|
238
|
-
|
|
239
195
|
return (0, _lodash().uniq)(dirs);
|
|
240
196
|
}
|
|
241
|
-
|
|
242
197
|
function getAllParentsDirOfPath(p) {
|
|
243
198
|
const all = [];
|
|
244
199
|
let current = p;
|
|
245
|
-
|
|
246
200
|
while (current !== '.') {
|
|
247
201
|
all.push(current);
|
|
248
202
|
current = _path().default.dirname(current);
|
|
249
203
|
}
|
|
250
|
-
|
|
251
204
|
return all;
|
|
252
205
|
}
|
|
206
|
+
|
|
253
207
|
/**
|
|
254
208
|
* easier to understand by an example:
|
|
255
209
|
* input:
|
|
@@ -271,8 +225,6 @@ function getAllParentsDirOfPath(p) {
|
|
|
271
225
|
* if in a shared-dir, some components using env1 and some env2, it finds the env that has the max number of
|
|
272
226
|
* components, this env will be optimized. other components, will have the files written inside their dirs.
|
|
273
227
|
*/
|
|
274
|
-
|
|
275
|
-
|
|
276
228
|
function dedupePaths(pathsPerEnvId) {
|
|
277
229
|
const rootDir = '.';
|
|
278
230
|
const individualPathPerConcatenatedEnvIds = pathsPerEnvId.reduce((acc, current) => {
|
|
@@ -291,7 +243,6 @@ function dedupePaths(pathsPerEnvId) {
|
|
|
291
243
|
allPathsPerEnvId[dir] = individualPathPerConcatenatedEnvIds[dir];
|
|
292
244
|
return;
|
|
293
245
|
}
|
|
294
|
-
|
|
295
246
|
const allPathsShareSameDir = dir === rootDir ? allPaths : allPaths.filter(p => p.startsWith(`${dir}/`));
|
|
296
247
|
const countPerEnv = {};
|
|
297
248
|
allPathsShareSameDir.forEach(p => {
|
|
@@ -303,20 +254,19 @@ function dedupePaths(pathsPerEnvId) {
|
|
|
303
254
|
if (!envWithMax.length) throw new Error(`must be at least one env related to path "${dir}"`);
|
|
304
255
|
if (envWithMax.length > 1) allPathsPerEnvId[dir] = null;else allPathsPerEnvId[dir] = envWithMax[0];
|
|
305
256
|
};
|
|
306
|
-
|
|
307
257
|
allPossibleDirs.forEach(dirPath => {
|
|
308
258
|
calculateBestEnvForDir(dirPath);
|
|
309
|
-
});
|
|
310
|
-
// in other words, return only the paths that their parent is null or has a different env.
|
|
259
|
+
});
|
|
311
260
|
|
|
261
|
+
// this is the actual deduping. if found a shorter path with the same env, then no need for this path.
|
|
262
|
+
// in other words, return only the paths that their parent is null or has a different env.
|
|
312
263
|
const dedupedPathsPerEnvIds = Object.keys(allPathsPerEnvId).reduce((acc, current) => {
|
|
313
264
|
if (allPathsPerEnvId[current] && allPathsPerEnvId[_path().default.dirname(current)] !== allPathsPerEnvId[current]) {
|
|
314
265
|
acc[current] = allPathsPerEnvId[current];
|
|
315
266
|
}
|
|
316
|
-
|
|
317
267
|
return acc;
|
|
318
|
-
}, {});
|
|
319
|
-
|
|
268
|
+
}, {});
|
|
269
|
+
// rootDir parent is always rootDir, so leave it as is.
|
|
320
270
|
if (allPathsPerEnvId[rootDir]) dedupedPathsPerEnvIds[rootDir] = allPathsPerEnvId[rootDir];
|
|
321
271
|
const envIdsPerDedupedPaths = (0, _lodash().invertBy)(dedupedPathsPerEnvIds);
|
|
322
272
|
return Object.keys(envIdsPerDedupedPaths).map(envIdStr => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TsconfigWriter","constructor","workspace","logger","write","envsExecutionContext","options","pathsPerEnvs","getPathsPerEnv","tsconfigPathsPerEnv","map","pathsPerEnv","envIds","ids","tsconfig","env","getTsConfig","paths","dryRun","silent","promptForWriting","p","flat","writeFiles","clean","dedupe","componentPaths","allPossibleDirs","getAllPossibleDirsFromPaths","dirsWithTsconfig","filterDirsWithTsconfigFile","tsconfigFiles","dir","path","join","length","promptForCleaning","deleteFiles","dirs","clearStatusLine","ok","yesno","question","chalk","underline","bold","PromptCanceled","Promise","all","f","fs","remove","tsconfigPathsPerEnvs","writeJSON","spaces","envExecution","id","components","c","componentDir","undefined","relative","envsWithFiles","e","file","envsPerFile","isEnvProcessed","envId","find","forEach","foundSameFile","filter","isEqual","push","fileContent","pathsPerEnvIds","compact","envsPerDedupedPaths","dedupePaths","dedupedPathsPerEnvs","envWithDedupePaths","found","includes","Error","hasTsconfig","pathExists","getAllParentsDirOfPath","uniq","current","dirname","pathsPerEnvId","rootDir","individualPathPerConcatenatedEnvIds","reduce","acc","allPaths","Object","keys","allPathsPerEnvId","calculateBestEnvForDir","allPathsShareSameDir","startsWith","countPerEnv","envIdStr","max","Math","values","envWithMax","dirPath","dedupedPathsPerEnvIds","envIdsPerDedupedPaths","invertBy","split"],"sources":["tsconfig-writer.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport yesno from 'yesno';\nimport { PathLinuxRelative } from '@teambit/legacy/dist/utils/path';\nimport { compact, invertBy, isEqual, uniq } from 'lodash';\nimport { PromptCanceled } from '@teambit/legacy/dist/prompts/exceptions';\nimport { Environment, ExecutionContext } from '@teambit/envs';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\nimport chalk from 'chalk';\nimport { TsconfigWriterOptions } from './typescript.main.runtime';\n\nexport type TsconfigPathsPerEnv = { envIds: string[]; tsconfig: Record<string, any>; paths: string[] };\n\ntype PathsPerEnv = { env: Environment; ids: string[]; paths: string[] };\n\nexport class TsconfigWriter {\n constructor(private workspace: Workspace, private logger: Logger) {}\n\n async write(\n envsExecutionContext: ExecutionContext[],\n options: TsconfigWriterOptions\n ): Promise<TsconfigPathsPerEnv[]> {\n const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, options);\n const tsconfigPathsPerEnv = pathsPerEnvs.map((pathsPerEnv) => ({\n envIds: pathsPerEnv.ids,\n tsconfig: pathsPerEnv.env.getTsConfig(),\n paths: pathsPerEnv.paths,\n }));\n if (options.dryRun) return tsconfigPathsPerEnv;\n if (!options.silent) await this.promptForWriting(tsconfigPathsPerEnv.map((p) => p.paths).flat());\n await this.writeFiles(tsconfigPathsPerEnv);\n return tsconfigPathsPerEnv;\n }\n\n async clean(envsExecutionContext: ExecutionContext[], { dryRun, silent }: TsconfigWriterOptions): Promise<string[]> {\n const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, { dedupe: false });\n const componentPaths = pathsPerEnvs.map((p) => p.paths).flat();\n const allPossibleDirs = getAllPossibleDirsFromPaths(componentPaths);\n const dirsWithTsconfig = await filterDirsWithTsconfigFile(allPossibleDirs);\n const tsconfigFiles = dirsWithTsconfig.map((dir) => path.join(dir, 'tsconfig.json'));\n if (dryRun) return tsconfigFiles;\n if (!dirsWithTsconfig.length) return [];\n if (!silent) await this.promptForCleaning(tsconfigFiles);\n await this.deleteFiles(tsconfigFiles);\n return tsconfigFiles;\n }\n\n private async promptForWriting(dirs: string[]) {\n this.logger.clearStatusLine();\n const tsconfigFiles = dirs.map((dir) => path.join(dir, 'tsconfig.json'));\n const ok = await yesno({\n question: `${chalk.underline('The following paths will be written:')}\n${tsconfigFiles.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async promptForCleaning(tsconfigFiles: string[]) {\n this.logger.clearStatusLine();\n const ok = await yesno({\n question: `${chalk.underline('The following paths will be deleted:')}\n${tsconfigFiles.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async deleteFiles(tsconfigFiles: string[]) {\n await Promise.all(tsconfigFiles.map((f) => fs.remove(f)));\n }\n\n private async writeFiles(tsconfigPathsPerEnvs: TsconfigPathsPerEnv[]) {\n await Promise.all(\n tsconfigPathsPerEnvs.map((pathsPerEnv) => {\n return Promise.all(\n pathsPerEnv.paths.map((p) => fs.writeJSON(path.join(p, 'tsconfig.json'), pathsPerEnv.tsconfig, { spaces: 2 }))\n );\n })\n );\n }\n\n private getPathsPerEnv(envsExecutionContext: ExecutionContext[], { dedupe }: TsconfigWriterOptions): PathsPerEnv[] {\n const pathsPerEnvs = envsExecutionContext.map((envExecution) => {\n return {\n id: envExecution.id,\n env: envExecution.env,\n paths: envExecution.components.map((c) => this.workspace.componentDir(c.id, undefined, { relative: true })),\n };\n });\n if (!dedupe) {\n return pathsPerEnvs.map(({ id, env, paths }) => ({ ids: [id], env, paths }));\n }\n\n const envsWithFiles = envsExecutionContext.map((e) => ({\n id: e.id,\n file: e.env.getTsConfig(),\n }));\n const envsPerFile: { envIds: string[]; fileContent: Record<string, any> }[] = [];\n const isEnvProcessed = (envId: string) =>\n envsPerFile\n .map((e) => e.envIds)\n .flat()\n .find((e) => e === envId);\n envsWithFiles.forEach(({ id, file }) => {\n if (isEnvProcessed(id)) return;\n const foundSameFile = envsWithFiles.filter((e) => isEqual(file, e.file));\n envsPerFile.push({ envIds: foundSameFile.map((f) => f.id), fileContent: file });\n });\n const pathsPerEnvIds = envsPerFile.map((e) => ({\n ids: e.envIds,\n paths: compact(e.envIds.map((envId) => pathsPerEnvs.find((p) => p.id === envId)?.paths).flat()),\n }));\n // const pathsPerEnvIds = pathsPerEnvs.map((p) => ({ ids: p.ids, paths: p.paths }));\n const envsPerDedupedPaths = dedupePaths(pathsPerEnvIds);\n const dedupedPathsPerEnvs: PathsPerEnv[] = envsPerDedupedPaths.map((envWithDedupePaths) => {\n const found = pathsPerEnvs.find((p) => envWithDedupePaths.ids.includes(p.id));\n if (!found) throw new Error(`dedupedPathsPerEnvs, unable to find ${envWithDedupePaths.ids}`);\n return {\n env: found.env,\n ids: envWithDedupePaths.ids,\n paths: envWithDedupePaths.paths,\n };\n });\n\n return dedupedPathsPerEnvs;\n }\n}\n\ntype PathsPerEnvIds = { ids: string[]; paths: string[] };\n\nasync function filterDirsWithTsconfigFile(dirs: string[]): Promise<string[]> {\n const dirsWithTsconfig = await Promise.all(\n dirs.map(async (dir) => {\n const hasTsconfig = await fs.pathExists(path.join(dir, 'tsconfig.json'));\n return hasTsconfig ? dir : undefined;\n })\n );\n return compact(dirsWithTsconfig);\n}\n\nfunction getAllPossibleDirsFromPaths(paths: PathLinuxRelative[]): PathLinuxRelative[] {\n const dirs = paths.map((p) => getAllParentsDirOfPath(p)).flat();\n dirs.push('.'); // add the root dir\n return uniq(dirs);\n}\n\nfunction getAllParentsDirOfPath(p: PathLinuxRelative): PathLinuxRelative[] {\n const all: string[] = [];\n let current = p;\n while (current !== '.') {\n all.push(current);\n current = path.dirname(current);\n }\n return all;\n}\n\n/**\n * easier to understand by an example:\n * input:\n * [\n * { id: react, paths: [ui/button, ui/form] },\n * { id: aspect, paths: [p/a1, p/a2] },\n * { id: node, paths: [p/n1] },\n * ]\n *\n * output:\n * [\n * { id: react, paths: [ui] },\n * { id: aspect, paths: [p] },\n * { id: node, paths: [p/n1] },\n * ]\n *\n * the goal is to minimize the amount of files to write per env if possible.\n * when multiple components of the same env share a root-dir, then, it's enough to write a file in that shared dir.\n * if in a shared-dir, some components using env1 and some env2, it finds the env that has the max number of\n * components, this env will be optimized. other components, will have the files written inside their dirs.\n */\nexport function dedupePaths(pathsPerEnvId: PathsPerEnvIds[]): PathsPerEnvIds[] {\n const rootDir = '.';\n const individualPathPerConcatenatedEnvIds: { [path: string]: string } = pathsPerEnvId.reduce((acc, current) => {\n current.paths.forEach((p) => {\n acc[p] = current.ids.join(',');\n });\n return acc;\n }, {});\n const allPaths = Object.keys(individualPathPerConcatenatedEnvIds);\n const allPossibleDirs = getAllPossibleDirsFromPaths(allPaths);\n\n const allPathsPerEnvId: { [path: string]: string | null } = {}; // null when parent-dir has same amount of comps per env.\n\n const calculateBestEnvForDir = (dir: string) => {\n if (individualPathPerConcatenatedEnvIds[dir]) {\n // it's the component dir, so it's the best env\n allPathsPerEnvId[dir] = individualPathPerConcatenatedEnvIds[dir];\n return;\n }\n const allPathsShareSameDir = dir === rootDir ? allPaths : allPaths.filter((p) => p.startsWith(`${dir}/`));\n const countPerEnv: { [env: string]: number } = {};\n allPathsShareSameDir.forEach((p) => {\n const envIdStr = individualPathPerConcatenatedEnvIds[p];\n if (countPerEnv[envIdStr]) countPerEnv[envIdStr] += 1;\n else countPerEnv[envIdStr] = 1;\n });\n const max = Math.max(...Object.values(countPerEnv));\n const envWithMax = Object.keys(countPerEnv).filter((env) => countPerEnv[env] === max);\n if (!envWithMax.length) throw new Error(`must be at least one env related to path \"${dir}\"`);\n if (envWithMax.length > 1) allPathsPerEnvId[dir] = null;\n else allPathsPerEnvId[dir] = envWithMax[0];\n };\n\n allPossibleDirs.forEach((dirPath) => {\n calculateBestEnvForDir(dirPath);\n });\n\n // this is the actual deduping. if found a shorter path with the same env, then no need for this path.\n // in other words, return only the paths that their parent is null or has a different env.\n const dedupedPathsPerEnvIds = Object.keys(allPathsPerEnvId).reduce((acc, current) => {\n if (allPathsPerEnvId[current] && allPathsPerEnvId[path.dirname(current)] !== allPathsPerEnvId[current]) {\n acc[current] = allPathsPerEnvId[current];\n }\n\n return acc;\n }, {});\n // rootDir parent is always rootDir, so leave it as is.\n if (allPathsPerEnvId[rootDir]) dedupedPathsPerEnvIds[rootDir] = allPathsPerEnvId[rootDir];\n\n const envIdsPerDedupedPaths = invertBy(dedupedPathsPerEnvIds);\n\n return Object.keys(envIdsPerDedupedPaths).map((envIdStr) => ({\n ids: envIdStr.split(','),\n paths: envIdsPerDedupedPaths[envIdStr],\n }));\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["TsconfigWriter","constructor","workspace","logger","write","envsExecutionContext","options","pathsPerEnvs","getPathsPerEnv","tsconfigPathsPerEnv","map","pathsPerEnv","envIds","ids","tsconfig","env","getTsConfig","paths","dryRun","silent","promptForWriting","p","flat","writeFiles","clean","dedupe","componentPaths","allPossibleDirs","getAllPossibleDirsFromPaths","dirsWithTsconfig","filterDirsWithTsconfigFile","tsconfigFiles","dir","path","join","length","promptForCleaning","deleteFiles","dirs","clearStatusLine","ok","yesno","question","chalk","underline","bold","PromptCanceled","Promise","all","f","fs","remove","tsconfigPathsPerEnvs","writeJSON","spaces","envExecution","id","components","c","componentDir","undefined","relative","envsWithFiles","e","file","envsPerFile","isEnvProcessed","envId","find","forEach","foundSameFile","filter","isEqual","push","fileContent","pathsPerEnvIds","compact","envsPerDedupedPaths","dedupePaths","dedupedPathsPerEnvs","envWithDedupePaths","found","includes","Error","hasTsconfig","pathExists","getAllParentsDirOfPath","uniq","current","dirname","pathsPerEnvId","rootDir","individualPathPerConcatenatedEnvIds","reduce","acc","allPaths","Object","keys","allPathsPerEnvId","calculateBestEnvForDir","allPathsShareSameDir","startsWith","countPerEnv","envIdStr","max","Math","values","envWithMax","dirPath","dedupedPathsPerEnvIds","envIdsPerDedupedPaths","invertBy","split"],"sources":["tsconfig-writer.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport yesno from 'yesno';\nimport { PathLinuxRelative } from '@teambit/legacy/dist/utils/path';\nimport { compact, invertBy, isEqual, uniq } from 'lodash';\nimport { PromptCanceled } from '@teambit/legacy/dist/prompts/exceptions';\nimport { Environment, ExecutionContext } from '@teambit/envs';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\nimport chalk from 'chalk';\nimport { TsconfigWriterOptions } from './typescript.main.runtime';\n\nexport type TsconfigPathsPerEnv = { envIds: string[]; tsconfig: Record<string, any>; paths: string[] };\n\ntype PathsPerEnv = { env: Environment; ids: string[]; paths: string[] };\n\nexport class TsconfigWriter {\n constructor(private workspace: Workspace, private logger: Logger) {}\n\n async write(\n envsExecutionContext: ExecutionContext[],\n options: TsconfigWriterOptions\n ): Promise<TsconfigPathsPerEnv[]> {\n const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, options);\n const tsconfigPathsPerEnv = pathsPerEnvs.map((pathsPerEnv) => ({\n envIds: pathsPerEnv.ids,\n tsconfig: pathsPerEnv.env.getTsConfig(),\n paths: pathsPerEnv.paths,\n }));\n if (options.dryRun) return tsconfigPathsPerEnv;\n if (!options.silent) await this.promptForWriting(tsconfigPathsPerEnv.map((p) => p.paths).flat());\n await this.writeFiles(tsconfigPathsPerEnv);\n return tsconfigPathsPerEnv;\n }\n\n async clean(envsExecutionContext: ExecutionContext[], { dryRun, silent }: TsconfigWriterOptions): Promise<string[]> {\n const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, { dedupe: false });\n const componentPaths = pathsPerEnvs.map((p) => p.paths).flat();\n const allPossibleDirs = getAllPossibleDirsFromPaths(componentPaths);\n const dirsWithTsconfig = await filterDirsWithTsconfigFile(allPossibleDirs);\n const tsconfigFiles = dirsWithTsconfig.map((dir) => path.join(dir, 'tsconfig.json'));\n if (dryRun) return tsconfigFiles;\n if (!dirsWithTsconfig.length) return [];\n if (!silent) await this.promptForCleaning(tsconfigFiles);\n await this.deleteFiles(tsconfigFiles);\n return tsconfigFiles;\n }\n\n private async promptForWriting(dirs: string[]) {\n this.logger.clearStatusLine();\n const tsconfigFiles = dirs.map((dir) => path.join(dir, 'tsconfig.json'));\n const ok = await yesno({\n question: `${chalk.underline('The following paths will be written:')}\n${tsconfigFiles.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async promptForCleaning(tsconfigFiles: string[]) {\n this.logger.clearStatusLine();\n const ok = await yesno({\n question: `${chalk.underline('The following paths will be deleted:')}\n${tsconfigFiles.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async deleteFiles(tsconfigFiles: string[]) {\n await Promise.all(tsconfigFiles.map((f) => fs.remove(f)));\n }\n\n private async writeFiles(tsconfigPathsPerEnvs: TsconfigPathsPerEnv[]) {\n await Promise.all(\n tsconfigPathsPerEnvs.map((pathsPerEnv) => {\n return Promise.all(\n pathsPerEnv.paths.map((p) => fs.writeJSON(path.join(p, 'tsconfig.json'), pathsPerEnv.tsconfig, { spaces: 2 }))\n );\n })\n );\n }\n\n private getPathsPerEnv(envsExecutionContext: ExecutionContext[], { dedupe }: TsconfigWriterOptions): PathsPerEnv[] {\n const pathsPerEnvs = envsExecutionContext.map((envExecution) => {\n return {\n id: envExecution.id,\n env: envExecution.env,\n paths: envExecution.components.map((c) => this.workspace.componentDir(c.id, undefined, { relative: true })),\n };\n });\n if (!dedupe) {\n return pathsPerEnvs.map(({ id, env, paths }) => ({ ids: [id], env, paths }));\n }\n\n const envsWithFiles = envsExecutionContext.map((e) => ({\n id: e.id,\n file: e.env.getTsConfig(),\n }));\n const envsPerFile: { envIds: string[]; fileContent: Record<string, any> }[] = [];\n const isEnvProcessed = (envId: string) =>\n envsPerFile\n .map((e) => e.envIds)\n .flat()\n .find((e) => e === envId);\n envsWithFiles.forEach(({ id, file }) => {\n if (isEnvProcessed(id)) return;\n const foundSameFile = envsWithFiles.filter((e) => isEqual(file, e.file));\n envsPerFile.push({ envIds: foundSameFile.map((f) => f.id), fileContent: file });\n });\n const pathsPerEnvIds = envsPerFile.map((e) => ({\n ids: e.envIds,\n paths: compact(e.envIds.map((envId) => pathsPerEnvs.find((p) => p.id === envId)?.paths).flat()),\n }));\n // const pathsPerEnvIds = pathsPerEnvs.map((p) => ({ ids: p.ids, paths: p.paths }));\n const envsPerDedupedPaths = dedupePaths(pathsPerEnvIds);\n const dedupedPathsPerEnvs: PathsPerEnv[] = envsPerDedupedPaths.map((envWithDedupePaths) => {\n const found = pathsPerEnvs.find((p) => envWithDedupePaths.ids.includes(p.id));\n if (!found) throw new Error(`dedupedPathsPerEnvs, unable to find ${envWithDedupePaths.ids}`);\n return {\n env: found.env,\n ids: envWithDedupePaths.ids,\n paths: envWithDedupePaths.paths,\n };\n });\n\n return dedupedPathsPerEnvs;\n }\n}\n\ntype PathsPerEnvIds = { ids: string[]; paths: string[] };\n\nasync function filterDirsWithTsconfigFile(dirs: string[]): Promise<string[]> {\n const dirsWithTsconfig = await Promise.all(\n dirs.map(async (dir) => {\n const hasTsconfig = await fs.pathExists(path.join(dir, 'tsconfig.json'));\n return hasTsconfig ? dir : undefined;\n })\n );\n return compact(dirsWithTsconfig);\n}\n\nfunction getAllPossibleDirsFromPaths(paths: PathLinuxRelative[]): PathLinuxRelative[] {\n const dirs = paths.map((p) => getAllParentsDirOfPath(p)).flat();\n dirs.push('.'); // add the root dir\n return uniq(dirs);\n}\n\nfunction getAllParentsDirOfPath(p: PathLinuxRelative): PathLinuxRelative[] {\n const all: string[] = [];\n let current = p;\n while (current !== '.') {\n all.push(current);\n current = path.dirname(current);\n }\n return all;\n}\n\n/**\n * easier to understand by an example:\n * input:\n * [\n * { id: react, paths: [ui/button, ui/form] },\n * { id: aspect, paths: [p/a1, p/a2] },\n * { id: node, paths: [p/n1] },\n * ]\n *\n * output:\n * [\n * { id: react, paths: [ui] },\n * { id: aspect, paths: [p] },\n * { id: node, paths: [p/n1] },\n * ]\n *\n * the goal is to minimize the amount of files to write per env if possible.\n * when multiple components of the same env share a root-dir, then, it's enough to write a file in that shared dir.\n * if in a shared-dir, some components using env1 and some env2, it finds the env that has the max number of\n * components, this env will be optimized. other components, will have the files written inside their dirs.\n */\nexport function dedupePaths(pathsPerEnvId: PathsPerEnvIds[]): PathsPerEnvIds[] {\n const rootDir = '.';\n const individualPathPerConcatenatedEnvIds: { [path: string]: string } = pathsPerEnvId.reduce((acc, current) => {\n current.paths.forEach((p) => {\n acc[p] = current.ids.join(',');\n });\n return acc;\n }, {});\n const allPaths = Object.keys(individualPathPerConcatenatedEnvIds);\n const allPossibleDirs = getAllPossibleDirsFromPaths(allPaths);\n\n const allPathsPerEnvId: { [path: string]: string | null } = {}; // null when parent-dir has same amount of comps per env.\n\n const calculateBestEnvForDir = (dir: string) => {\n if (individualPathPerConcatenatedEnvIds[dir]) {\n // it's the component dir, so it's the best env\n allPathsPerEnvId[dir] = individualPathPerConcatenatedEnvIds[dir];\n return;\n }\n const allPathsShareSameDir = dir === rootDir ? allPaths : allPaths.filter((p) => p.startsWith(`${dir}/`));\n const countPerEnv: { [env: string]: number } = {};\n allPathsShareSameDir.forEach((p) => {\n const envIdStr = individualPathPerConcatenatedEnvIds[p];\n if (countPerEnv[envIdStr]) countPerEnv[envIdStr] += 1;\n else countPerEnv[envIdStr] = 1;\n });\n const max = Math.max(...Object.values(countPerEnv));\n const envWithMax = Object.keys(countPerEnv).filter((env) => countPerEnv[env] === max);\n if (!envWithMax.length) throw new Error(`must be at least one env related to path \"${dir}\"`);\n if (envWithMax.length > 1) allPathsPerEnvId[dir] = null;\n else allPathsPerEnvId[dir] = envWithMax[0];\n };\n\n allPossibleDirs.forEach((dirPath) => {\n calculateBestEnvForDir(dirPath);\n });\n\n // this is the actual deduping. if found a shorter path with the same env, then no need for this path.\n // in other words, return only the paths that their parent is null or has a different env.\n const dedupedPathsPerEnvIds = Object.keys(allPathsPerEnvId).reduce((acc, current) => {\n if (allPathsPerEnvId[current] && allPathsPerEnvId[path.dirname(current)] !== allPathsPerEnvId[current]) {\n acc[current] = allPathsPerEnvId[current];\n }\n\n return acc;\n }, {});\n // rootDir parent is always rootDir, so leave it as is.\n if (allPathsPerEnvId[rootDir]) dedupedPathsPerEnvIds[rootDir] = allPathsPerEnvId[rootDir];\n\n const envIdsPerDedupedPaths = invertBy(dedupedPathsPerEnvIds);\n\n return Object.keys(envIdsPerDedupedPaths).map((envIdStr) => ({\n ids: envIdStr.split(','),\n paths: envIdsPerDedupedPaths[envIdStr],\n }));\n}\n"],"mappings":"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"}
|
|
@@ -4,21 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.TypescriptAspect = void 0;
|
|
7
|
-
|
|
8
7
|
function _harmony() {
|
|
9
8
|
const data = require("@teambit/harmony");
|
|
10
|
-
|
|
11
9
|
_harmony = function () {
|
|
12
10
|
return data;
|
|
13
11
|
};
|
|
14
|
-
|
|
15
12
|
return data;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
const TypescriptAspect = _harmony().Aspect.create({
|
|
19
15
|
id: 'teambit.typescript/typescript'
|
|
20
16
|
});
|
|
21
|
-
|
|
22
17
|
exports.TypescriptAspect = TypescriptAspect;
|
|
23
18
|
|
|
24
19
|
//# sourceMappingURL=typescript.aspect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TypescriptAspect","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":"
|
|
1
|
+
{"version":3,"names":["TypescriptAspect","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;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,gBAAgB,GAAGC,iBAAM,CAACC,MAAM,CAAC;EAC5CC,EAAE,EAAE;AACN,CAAC,CAAC;AAAC"}
|