@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,241 +1,169 @@
|
|
|
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
|
Object.defineProperty(exports, "__esModule", {
|
|
14
9
|
value: true
|
|
15
10
|
});
|
|
16
11
|
exports.default = exports.TypescriptMain = void 0;
|
|
17
12
|
exports.runTransformersWithContext = runTransformersWithContext;
|
|
18
|
-
|
|
19
13
|
function _defineProperty2() {
|
|
20
14
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
15
|
_defineProperty2 = function () {
|
|
23
16
|
return data;
|
|
24
17
|
};
|
|
25
|
-
|
|
26
18
|
return data;
|
|
27
19
|
}
|
|
28
|
-
|
|
29
20
|
function _typescript() {
|
|
30
21
|
const data = _interopRequireDefault(require("typescript"));
|
|
31
|
-
|
|
32
22
|
_typescript = function () {
|
|
33
23
|
return data;
|
|
34
24
|
};
|
|
35
|
-
|
|
36
25
|
return data;
|
|
37
26
|
}
|
|
38
|
-
|
|
39
27
|
function _harmony() {
|
|
40
28
|
const data = require("@teambit/harmony");
|
|
41
|
-
|
|
42
29
|
_harmony = function () {
|
|
43
30
|
return data;
|
|
44
31
|
};
|
|
45
|
-
|
|
46
32
|
return data;
|
|
47
33
|
}
|
|
48
|
-
|
|
49
34
|
function _cli() {
|
|
50
35
|
const data = require("@teambit/cli");
|
|
51
|
-
|
|
52
36
|
_cli = function () {
|
|
53
37
|
return data;
|
|
54
38
|
};
|
|
55
|
-
|
|
56
39
|
return data;
|
|
57
40
|
}
|
|
58
|
-
|
|
59
41
|
function _logger() {
|
|
60
42
|
const data = require("@teambit/logger");
|
|
61
|
-
|
|
62
43
|
_logger = function () {
|
|
63
44
|
return data;
|
|
64
45
|
};
|
|
65
|
-
|
|
66
46
|
return data;
|
|
67
47
|
}
|
|
68
|
-
|
|
69
48
|
function _schema() {
|
|
70
49
|
const data = require("@teambit/schema");
|
|
71
|
-
|
|
72
50
|
_schema = function () {
|
|
73
51
|
return data;
|
|
74
52
|
};
|
|
75
|
-
|
|
76
53
|
return data;
|
|
77
54
|
}
|
|
78
|
-
|
|
79
55
|
function _typescriptModules() {
|
|
80
56
|
const data = require("@teambit/typescript.modules.ts-config-mutator");
|
|
81
|
-
|
|
82
57
|
_typescriptModules = function () {
|
|
83
58
|
return data;
|
|
84
59
|
};
|
|
85
|
-
|
|
86
60
|
return data;
|
|
87
61
|
}
|
|
88
|
-
|
|
89
62
|
function _workspace() {
|
|
90
63
|
const data = require("@teambit/workspace");
|
|
91
|
-
|
|
92
64
|
_workspace = function () {
|
|
93
65
|
return data;
|
|
94
66
|
};
|
|
95
|
-
|
|
96
67
|
return data;
|
|
97
68
|
}
|
|
98
|
-
|
|
99
69
|
function _dependencyResolver() {
|
|
100
70
|
const data = require("@teambit/dependency-resolver");
|
|
101
|
-
|
|
102
71
|
_dependencyResolver = function () {
|
|
103
72
|
return data;
|
|
104
73
|
};
|
|
105
|
-
|
|
106
74
|
return data;
|
|
107
75
|
}
|
|
108
|
-
|
|
109
76
|
function _pMapSeries() {
|
|
110
77
|
const data = _interopRequireDefault(require("p-map-series"));
|
|
111
|
-
|
|
112
78
|
_pMapSeries = function () {
|
|
113
79
|
return data;
|
|
114
80
|
};
|
|
115
|
-
|
|
116
81
|
return data;
|
|
117
82
|
}
|
|
118
|
-
|
|
119
83
|
function _tsServer() {
|
|
120
84
|
const data = require("@teambit/ts-server");
|
|
121
|
-
|
|
122
85
|
_tsServer = function () {
|
|
123
86
|
return data;
|
|
124
87
|
};
|
|
125
|
-
|
|
126
88
|
return data;
|
|
127
89
|
}
|
|
128
|
-
|
|
129
90
|
function _aspectLoader() {
|
|
130
91
|
const data = _interopRequireDefault(require("@teambit/aspect-loader"));
|
|
131
|
-
|
|
132
92
|
_aspectLoader = function () {
|
|
133
93
|
return data;
|
|
134
94
|
};
|
|
135
|
-
|
|
136
95
|
return data;
|
|
137
96
|
}
|
|
138
|
-
|
|
139
97
|
function _envs() {
|
|
140
98
|
const data = _interopRequireDefault(require("@teambit/envs"));
|
|
141
|
-
|
|
142
99
|
_envs = function () {
|
|
143
100
|
return data;
|
|
144
101
|
};
|
|
145
|
-
|
|
146
102
|
return data;
|
|
147
103
|
}
|
|
148
|
-
|
|
149
104
|
function _typescript2() {
|
|
150
105
|
const data = require("./typescript.extractor");
|
|
151
|
-
|
|
152
106
|
_typescript2 = function () {
|
|
153
107
|
return data;
|
|
154
108
|
};
|
|
155
|
-
|
|
156
109
|
return data;
|
|
157
110
|
}
|
|
158
|
-
|
|
159
111
|
function _typescript3() {
|
|
160
112
|
const data = require("./typescript.aspect");
|
|
161
|
-
|
|
162
113
|
_typescript3 = function () {
|
|
163
114
|
return data;
|
|
164
115
|
};
|
|
165
|
-
|
|
166
116
|
return data;
|
|
167
117
|
}
|
|
168
|
-
|
|
169
118
|
function _typescript4() {
|
|
170
119
|
const data = require("./typescript.compiler");
|
|
171
|
-
|
|
172
120
|
_typescript4 = function () {
|
|
173
121
|
return data;
|
|
174
122
|
};
|
|
175
|
-
|
|
176
123
|
return data;
|
|
177
124
|
}
|
|
178
|
-
|
|
179
125
|
function _typescript5() {
|
|
180
126
|
const data = require("./typescript.parser");
|
|
181
|
-
|
|
182
127
|
_typescript5 = function () {
|
|
183
128
|
return data;
|
|
184
129
|
};
|
|
185
|
-
|
|
186
130
|
return data;
|
|
187
131
|
}
|
|
188
|
-
|
|
189
132
|
function _schemaTransformer() {
|
|
190
133
|
const data = require("./schema-transformer.plugin");
|
|
191
|
-
|
|
192
134
|
_schemaTransformer = function () {
|
|
193
135
|
return data;
|
|
194
136
|
};
|
|
195
|
-
|
|
196
137
|
return data;
|
|
197
138
|
}
|
|
198
|
-
|
|
199
139
|
function _transformers() {
|
|
200
140
|
const data = require("./transformers");
|
|
201
|
-
|
|
202
141
|
_transformers = function () {
|
|
203
142
|
return data;
|
|
204
143
|
};
|
|
205
|
-
|
|
206
144
|
return data;
|
|
207
145
|
}
|
|
208
|
-
|
|
209
146
|
function _checkTypes() {
|
|
210
147
|
const data = require("./cmds/check-types.cmd");
|
|
211
|
-
|
|
212
148
|
_checkTypes = function () {
|
|
213
149
|
return data;
|
|
214
150
|
};
|
|
215
|
-
|
|
216
151
|
return data;
|
|
217
152
|
}
|
|
218
|
-
|
|
219
153
|
function _tsconfigWriter() {
|
|
220
154
|
const data = require("./tsconfig-writer");
|
|
221
|
-
|
|
222
155
|
_tsconfigWriter = function () {
|
|
223
156
|
return data;
|
|
224
157
|
};
|
|
225
|
-
|
|
226
158
|
return data;
|
|
227
159
|
}
|
|
228
|
-
|
|
229
160
|
function _writeTsconfig() {
|
|
230
161
|
const data = _interopRequireDefault(require("./cmds/write-tsconfig.cmd"));
|
|
231
|
-
|
|
232
162
|
_writeTsconfig = function () {
|
|
233
163
|
return data;
|
|
234
164
|
};
|
|
235
|
-
|
|
236
165
|
return data;
|
|
237
166
|
}
|
|
238
|
-
|
|
239
167
|
class TypescriptMain {
|
|
240
168
|
constructor(logger, schemaTransformerSlot, workspace, depResolver, envs, tsConfigWriter) {
|
|
241
169
|
this.logger = logger;
|
|
@@ -246,7 +174,6 @@ class TypescriptMain {
|
|
|
246
174
|
this.tsConfigWriter = tsConfigWriter;
|
|
247
175
|
(0, _defineProperty2().default)(this, "tsServer", void 0);
|
|
248
176
|
}
|
|
249
|
-
|
|
250
177
|
/**
|
|
251
178
|
* create a new compiler.
|
|
252
179
|
*/
|
|
@@ -256,14 +183,14 @@ class TypescriptMain {
|
|
|
256
183
|
const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);
|
|
257
184
|
return new (_typescript4().TypescriptCompiler)(_typescript3().TypescriptAspect.id, this.logger, afterMutation.raw, tsModule);
|
|
258
185
|
}
|
|
186
|
+
|
|
259
187
|
/**
|
|
260
188
|
* get TsserverClient instance if initiated already, otherwise, return undefined.
|
|
261
189
|
*/
|
|
262
|
-
|
|
263
|
-
|
|
264
190
|
getTsserverClient() {
|
|
265
191
|
return this.tsServer;
|
|
266
192
|
}
|
|
193
|
+
|
|
267
194
|
/**
|
|
268
195
|
* starts a tsserver process to communicate with its API.
|
|
269
196
|
* @param projectPath absolute path of the project root directory
|
|
@@ -271,28 +198,25 @@ class TypescriptMain {
|
|
|
271
198
|
* @param files optionally, if check-types is enabled, provide files to open and type check.
|
|
272
199
|
* @returns TsserverClient
|
|
273
200
|
*/
|
|
274
|
-
|
|
275
|
-
|
|
276
201
|
async initTsserverClient(projectPath, options = {}, files = []) {
|
|
277
202
|
this.tsServer = new (_tsServer().TsserverClient)(projectPath, this.logger, options, files);
|
|
278
203
|
this.tsServer.init();
|
|
279
204
|
return this.tsServer;
|
|
280
205
|
}
|
|
206
|
+
|
|
281
207
|
/**
|
|
282
208
|
* starts a tsserver process to communicate with its API. use only when running on the workspace.
|
|
283
209
|
* @param options TsserverClientOpts
|
|
284
210
|
* @param files optionally, if check-types is enabled, provide files to open and type check.
|
|
285
211
|
* @returns TsserverClient
|
|
286
212
|
*/
|
|
287
|
-
|
|
288
|
-
|
|
289
213
|
async initTsserverClientFromWorkspace(options = {}, files = []) {
|
|
290
214
|
if (!this.workspace) {
|
|
291
215
|
throw new Error(`initTsserverClientFromWorkspace: workspace was not found`);
|
|
292
216
|
}
|
|
293
|
-
|
|
294
217
|
return this.initTsserverClient(this.workspace.path, options, files);
|
|
295
218
|
}
|
|
219
|
+
|
|
296
220
|
/**
|
|
297
221
|
* Create a compiler instance and run the cjs transformer for it
|
|
298
222
|
* @param options
|
|
@@ -300,11 +224,10 @@ class TypescriptMain {
|
|
|
300
224
|
* @param tsModule
|
|
301
225
|
* @returns
|
|
302
226
|
*/
|
|
303
|
-
|
|
304
|
-
|
|
305
227
|
createCjsCompiler(options, transformers = [], tsModule = _typescript().default) {
|
|
306
228
|
return this.createCompiler(options, [this.getCjsTransformer(), ...transformers], tsModule);
|
|
307
229
|
}
|
|
230
|
+
|
|
308
231
|
/**
|
|
309
232
|
* Create a compiler instance and run the esm transformer for it
|
|
310
233
|
* @param options
|
|
@@ -312,65 +235,56 @@ class TypescriptMain {
|
|
|
312
235
|
* @param tsModule
|
|
313
236
|
* @returns
|
|
314
237
|
*/
|
|
315
|
-
|
|
316
|
-
|
|
317
238
|
createEsmCompiler(options, transformers = [], tsModule = _typescript().default) {
|
|
318
239
|
return this.createCompiler(options, [this.getEsmTransformer(), ...transformers], tsModule);
|
|
319
240
|
}
|
|
241
|
+
|
|
320
242
|
/**
|
|
321
243
|
* Create a transformer that change the ts module to CommonJS
|
|
322
244
|
* @returns
|
|
323
245
|
*/
|
|
324
|
-
|
|
325
|
-
|
|
326
246
|
getCjsTransformer() {
|
|
327
247
|
const cjsTransformer = config => {
|
|
328
248
|
config.setModule('CommonJS');
|
|
329
249
|
return config;
|
|
330
250
|
};
|
|
331
|
-
|
|
332
251
|
return cjsTransformer;
|
|
333
252
|
}
|
|
253
|
+
|
|
334
254
|
/**
|
|
335
255
|
* Create a transformer that change the ts module to ES2020
|
|
336
256
|
* @returns
|
|
337
257
|
*/
|
|
338
|
-
|
|
339
|
-
|
|
340
258
|
getEsmTransformer() {
|
|
341
259
|
const esmTransformer = config => {
|
|
342
260
|
config.setModule('ES2020');
|
|
343
261
|
return config;
|
|
344
262
|
};
|
|
345
|
-
|
|
346
263
|
return esmTransformer;
|
|
347
264
|
}
|
|
265
|
+
|
|
348
266
|
/**
|
|
349
267
|
* create an instance of a typescript semantic schema extractor.
|
|
350
268
|
*/
|
|
351
|
-
|
|
352
|
-
|
|
353
269
|
createSchemaExtractor(tsconfig, path) {
|
|
354
270
|
return new (_typescript2().TypeScriptExtractor)(tsconfig, this.schemaTransformerSlot, this, path || this.workspace.path, this.depResolver, this.workspace);
|
|
355
271
|
}
|
|
272
|
+
|
|
356
273
|
/**
|
|
357
274
|
* add the default package json properties to the component
|
|
358
275
|
* :TODO @gilad why do we need this DSL? can't I just get the args here.
|
|
359
276
|
*/
|
|
360
|
-
|
|
361
|
-
|
|
362
277
|
getCjsPackageJsonProps() {
|
|
363
278
|
return {
|
|
364
279
|
main: 'dist/{main}.js',
|
|
365
280
|
types: '{main}.ts'
|
|
366
281
|
};
|
|
367
282
|
}
|
|
283
|
+
|
|
368
284
|
/**
|
|
369
285
|
* add type: module to the package.json props and the default props
|
|
370
286
|
* :TODO @gilad why do we need this DSL? can't I just get the args here.
|
|
371
287
|
*/
|
|
372
|
-
|
|
373
|
-
|
|
374
288
|
getEsmPackageJsonProps() {
|
|
375
289
|
return {
|
|
376
290
|
// main: 'dist-esm/{main}.js',
|
|
@@ -379,12 +293,10 @@ class TypescriptMain {
|
|
|
379
293
|
types: '{main}.ts'
|
|
380
294
|
};
|
|
381
295
|
}
|
|
382
|
-
|
|
383
296
|
getSupportedFilesForTsserver(components) {
|
|
384
297
|
const files = components.map(c => c.filesystem.files).flat().map(f => f.path);
|
|
385
298
|
return files.filter(f => f.endsWith('.ts') || f.endsWith('.tsx'));
|
|
386
299
|
}
|
|
387
|
-
|
|
388
300
|
async cleanTsconfigJson(options = {}) {
|
|
389
301
|
const components = await this.workspace.list();
|
|
390
302
|
const runtime = await this.envs.createEnvironment(components);
|
|
@@ -392,31 +304,25 @@ class TypescriptMain {
|
|
|
392
304
|
const results = await new (_tsconfigWriter().TsconfigWriter)(this.workspace, this.logger).clean(execContext, options);
|
|
393
305
|
return results;
|
|
394
306
|
}
|
|
395
|
-
|
|
396
307
|
async writeTsconfigJson(options = {}) {
|
|
397
308
|
const components = await this.workspace.list();
|
|
398
309
|
const runtime = await this.envs.createEnvironment(components);
|
|
399
310
|
const execContext = runtime.getEnvExecutionContext();
|
|
400
311
|
let cleanResults;
|
|
401
|
-
|
|
402
312
|
if (options.clean) {
|
|
403
313
|
cleanResults = await this.tsConfigWriter.clean(execContext, options);
|
|
404
314
|
}
|
|
405
|
-
|
|
406
315
|
const writeResults = await this.tsConfigWriter.write(execContext, options);
|
|
407
316
|
return {
|
|
408
317
|
writeResults,
|
|
409
318
|
cleanResults
|
|
410
319
|
};
|
|
411
320
|
}
|
|
412
|
-
|
|
413
321
|
async onPreWatch(components, watchOpts) {
|
|
414
322
|
const workspace = this.workspace;
|
|
415
|
-
|
|
416
323
|
if (!workspace || !watchOpts.spawnTSServer) {
|
|
417
324
|
return;
|
|
418
325
|
}
|
|
419
|
-
|
|
420
326
|
const {
|
|
421
327
|
verbose,
|
|
422
328
|
checkTypes
|
|
@@ -429,20 +335,17 @@ class TypescriptMain {
|
|
|
429
335
|
printTypeErrors
|
|
430
336
|
}, files);
|
|
431
337
|
}
|
|
432
|
-
|
|
433
338
|
async onComponentChange(component, files) {
|
|
434
339
|
if (!this.tsServer) {
|
|
435
340
|
return {
|
|
436
341
|
results: 'N/A'
|
|
437
342
|
};
|
|
438
343
|
}
|
|
439
|
-
|
|
440
344
|
await (0, _pMapSeries().default)(files, file => this.tsServer.onFileChange(file));
|
|
441
345
|
return {
|
|
442
346
|
results: 'succeed'
|
|
443
347
|
};
|
|
444
348
|
}
|
|
445
|
-
|
|
446
349
|
static async provider([schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs], config, [schemaTransformerSlot]) {
|
|
447
350
|
schema.registerParser(new (_typescript5().TypeScriptParser)());
|
|
448
351
|
const logger = loggerExt.createLogger(_typescript3().TypescriptAspect.id);
|
|
@@ -450,28 +353,22 @@ class TypescriptMain {
|
|
|
450
353
|
const tsconfigWriter = new (_tsconfigWriter().TsconfigWriter)(workspace, logger);
|
|
451
354
|
const tsMain = new TypescriptMain(logger, schemaTransformerSlot, workspace, depResolver, envs, tsconfigWriter);
|
|
452
355
|
schemaTransformerSlot.register([new (_transformers().ExportDeclaration)(), new (_transformers().FunctionDeclaration)(), new (_transformers().VariableStatementTransformer)(), new (_transformers().VariableDeclaration)(), new (_transformers().SourceFileTransformer)(), new (_transformers().TypeAliasTransformer)(), new (_transformers().ClassDecelerationTransformer)(), new (_transformers().InterfaceDeclarationTransformer)(), new (_transformers().EnumDeclarationTransformer)(), new (_transformers().BindingElementTransformer)()]);
|
|
453
|
-
|
|
454
356
|
if (workspace) {
|
|
455
357
|
workspace.registerOnPreWatch(tsMain.onPreWatch.bind(this));
|
|
456
358
|
workspace.registerOnComponentChange(tsMain.onComponentChange.bind(this));
|
|
457
359
|
workspace.registerOnComponentAdd(tsMain.onComponentChange.bind(this));
|
|
458
360
|
}
|
|
459
|
-
|
|
460
361
|
const checkTypesCmd = new (_checkTypes().CheckTypesCmd)(tsMain, workspace, logger);
|
|
461
362
|
const writeTsconfigCmd = new (_writeTsconfig().default)(tsMain);
|
|
462
363
|
cli.register(checkTypesCmd, writeTsconfigCmd);
|
|
463
364
|
return tsMain;
|
|
464
365
|
}
|
|
465
|
-
|
|
466
366
|
}
|
|
467
|
-
|
|
468
367
|
exports.TypescriptMain = TypescriptMain;
|
|
469
368
|
(0, _defineProperty2().default)(TypescriptMain, "runtime", _cli().MainRuntime);
|
|
470
369
|
(0, _defineProperty2().default)(TypescriptMain, "dependencies", [_schema().SchemaAspect, _logger().LoggerAspect, _aspectLoader().default, _workspace().WorkspaceAspect, _cli().CLIAspect, _dependencyResolver().DependencyResolverAspect, _envs().default]);
|
|
471
370
|
(0, _defineProperty2().default)(TypescriptMain, "slots", [_harmony().Slot.withType()]);
|
|
472
|
-
|
|
473
371
|
_typescript3().TypescriptAspect.addRuntime(TypescriptMain);
|
|
474
|
-
|
|
475
372
|
function runTransformersWithContext(config, transformers = [], context) {
|
|
476
373
|
if (!Array.isArray(transformers)) return config;
|
|
477
374
|
const newConfig = transformers.reduce((acc, transformer) => {
|
|
@@ -479,7 +376,6 @@ function runTransformersWithContext(config, transformers = [], context) {
|
|
|
479
376
|
}, config);
|
|
480
377
|
return newConfig;
|
|
481
378
|
}
|
|
482
|
-
|
|
483
379
|
var _default = TypescriptMain;
|
|
484
380
|
exports.default = _default;
|
|
485
381
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TypescriptMain","constructor","logger","schemaTransformerSlot","workspace","depResolver","envs","tsConfigWriter","createCompiler","options","transformers","tsModule","ts","configMutator","TypescriptConfigMutator","transformerContext","afterMutation","runTransformersWithContext","clone","TypescriptCompiler","TypescriptAspect","id","raw","getTsserverClient","tsServer","initTsserverClient","projectPath","files","TsserverClient","init","initTsserverClientFromWorkspace","Error","path","createCjsCompiler","getCjsTransformer","createEsmCompiler","getEsmTransformer","cjsTransformer","config","setModule","esmTransformer","createSchemaExtractor","tsconfig","TypeScriptExtractor","getCjsPackageJsonProps","main","types","getEsmPackageJsonProps","type","getSupportedFilesForTsserver","components","map","c","filesystem","flat","f","filter","endsWith","cleanTsconfigJson","list","runtime","createEnvironment","execContext","getEnvExecutionContext","results","TsconfigWriter","clean","writeTsconfigJson","cleanResults","writeResults","write","onPreWatch","watchOpts","spawnTSServer","verbose","checkTypes","printTypeErrors","Boolean","onComponentChange","component","pMapSeries","file","onFileChange","provider","schema","loggerExt","aspectLoader","cli","registerParser","TypeScriptParser","createLogger","registerPlugins","SchemaTransformerPlugin","tsconfigWriter","tsMain","register","ExportDeclaration","FunctionDeclaration","VariableStatementTransformer","VariableDeclaration","SourceFileTransformer","TypeAliasTransformer","ClassDecelerationTransformer","InterfaceDeclarationTransformer","EnumDeclarationTransformer","BindingElementTransformer","registerOnPreWatch","bind","registerOnComponentChange","registerOnComponentAdd","checkTypesCmd","CheckTypesCmd","writeTsconfigCmd","WriteTsconfigCmd","MainRuntime","SchemaAspect","LoggerAspect","AspectLoaderAspect","WorkspaceAspect","CLIAspect","DependencyResolverAspect","EnvsAspect","Slot","withType","addRuntime","context","Array","isArray","newConfig","reduce","acc","transformer"],"sources":["typescript.main.runtime.ts"],"sourcesContent":["import ts from 'typescript';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Compiler } from '@teambit/compiler';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { SchemaAspect, SchemaExtractor, SchemaMain } from '@teambit/schema';\nimport { PackageJsonProps } from '@teambit/pkg';\nimport { TypescriptConfigMutator } from '@teambit/typescript.modules.ts-config-mutator';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { WatchOptions, Workspace } from '@teambit/workspace';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport pMapSeries from 'p-map-series';\nimport { TsserverClient, TsserverClientOpts } from '@teambit/ts-server';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport type { Component } from '@teambit/component';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { TypeScriptCompilerOptions } from './compiler-options';\nimport { TypescriptAspect } from './typescript.aspect';\nimport { TypescriptCompiler } from './typescript.compiler';\nimport { TypeScriptParser } from './typescript.parser';\nimport { SchemaTransformer } from './schema-transformer';\nimport { SchemaTransformerPlugin } from './schema-transformer.plugin';\nimport {\n ExportDeclaration,\n TypeAliasTransformer,\n FunctionDeclaration,\n VariableStatementTransformer,\n VariableDeclaration,\n SourceFileTransformer,\n ClassDecelerationTransformer,\n InterfaceDeclarationTransformer,\n EnumDeclarationTransformer,\n BindingElementTransformer,\n} from './transformers';\nimport { CheckTypesCmd } from './cmds/check-types.cmd';\nimport { TsconfigPathsPerEnv, TsconfigWriter } from './tsconfig-writer';\nimport WriteTsconfigCmd from './cmds/write-tsconfig.cmd';\n\nexport type TsMode = 'build' | 'dev';\n\nexport type SchemaTransformerSlot = SlotRegistry<SchemaTransformer[]>;\n\nexport type TsConfigTransformContext = {\n // mode: TsMode;\n};\n\nexport type TsconfigWriterOptions = {\n clean?: boolean;\n silent?: boolean; // no prompt\n dedupe?: boolean;\n dryRun?: boolean;\n dryRunWithTsconfig?: boolean;\n};\n\nexport type TsConfigTransformer = (\n config: TypescriptConfigMutator,\n context: TsConfigTransformContext\n) => TypescriptConfigMutator;\n\nexport class TypescriptMain {\n constructor(\n private logger: Logger,\n private schemaTransformerSlot: SchemaTransformerSlot,\n private workspace: Workspace,\n private depResolver: DependencyResolverMain,\n private envs: EnvsMain,\n private tsConfigWriter: TsconfigWriter\n ) {}\n\n private tsServer: TsserverClient;\n /**\n * create a new compiler.\n */\n createCompiler(\n options: TypeScriptCompilerOptions,\n transformers: TsConfigTransformer[] = [],\n tsModule = ts\n ): Compiler {\n const configMutator = new TypescriptConfigMutator(options);\n const transformerContext: TsConfigTransformContext = {};\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n return new TypescriptCompiler(TypescriptAspect.id, this.logger, afterMutation.raw, tsModule);\n }\n\n /**\n * get TsserverClient instance if initiated already, otherwise, return undefined.\n */\n getTsserverClient(): TsserverClient | undefined {\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API.\n * @param projectPath absolute path of the project root directory\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClient(\n projectPath: string,\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n this.tsServer = new TsserverClient(projectPath, this.logger, options, files);\n this.tsServer.init();\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API. use only when running on the workspace.\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClientFromWorkspace(\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n if (!this.workspace) {\n throw new Error(`initTsserverClientFromWorkspace: workspace was not found`);\n }\n return this.initTsserverClient(this.workspace.path, options, files);\n }\n\n /**\n * Create a compiler instance and run the cjs transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createCjsCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getCjsTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a compiler instance and run the esm transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createEsmCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getEsmTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a transformer that change the ts module to CommonJS\n * @returns\n */\n getCjsTransformer(): TsConfigTransformer {\n const cjsTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('CommonJS');\n return config;\n };\n return cjsTransformer;\n }\n\n /**\n * Create a transformer that change the ts module to ES2020\n * @returns\n */\n getEsmTransformer(): TsConfigTransformer {\n const esmTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('ES2020');\n return config;\n };\n return esmTransformer;\n }\n\n /**\n * create an instance of a typescript semantic schema extractor.\n */\n createSchemaExtractor(tsconfig: any, path?: string): SchemaExtractor {\n return new TypeScriptExtractor(\n tsconfig,\n this.schemaTransformerSlot,\n this,\n path || this.workspace.path,\n this.depResolver,\n this.workspace\n );\n }\n\n /**\n * add the default package json properties to the component\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getCjsPackageJsonProps(): PackageJsonProps {\n return {\n main: 'dist/{main}.js',\n types: '{main}.ts',\n };\n }\n\n /**\n * add type: module to the package.json props and the default props\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getEsmPackageJsonProps(): PackageJsonProps {\n return {\n // main: 'dist-esm/{main}.js',\n main: 'dist/{main}.js',\n type: 'module',\n types: '{main}.ts',\n };\n }\n\n getSupportedFilesForTsserver(components: Component[]): string[] {\n const files = components\n .map((c) => c.filesystem.files)\n .flat()\n .map((f) => f.path);\n return files.filter((f) => f.endsWith('.ts') || f.endsWith('.tsx'));\n }\n\n async cleanTsconfigJson(options: TsconfigWriterOptions = {}) {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n\n const results = await new TsconfigWriter(this.workspace, this.logger).clean(execContext, options);\n\n return results;\n }\n\n async writeTsconfigJson(options: TsconfigWriterOptions = {}): Promise<{\n cleanResults?: string[];\n writeResults: TsconfigPathsPerEnv[];\n }> {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n\n let cleanResults: string[] | undefined;\n if (options.clean) {\n cleanResults = await this.tsConfigWriter.clean(execContext, options);\n }\n\n const writeResults = await this.tsConfigWriter.write(execContext, options);\n\n return { writeResults, cleanResults };\n }\n\n private async onPreWatch(components: Component[], watchOpts: WatchOptions) {\n const workspace = this.workspace;\n if (!workspace || !watchOpts.spawnTSServer) {\n return;\n }\n const { verbose, checkTypes } = watchOpts;\n const files = checkTypes ? this.getSupportedFilesForTsserver(components) : [];\n const printTypeErrors = Boolean(checkTypes);\n await this.initTsserverClientFromWorkspace({ verbose, checkTypes, printTypeErrors }, files);\n }\n\n private async onComponentChange(component: Component, files: string[]) {\n if (!this.tsServer) {\n return {\n results: 'N/A',\n };\n }\n await pMapSeries(files, (file) => this.tsServer.onFileChange(file));\n return {\n results: 'succeed',\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n SchemaAspect,\n LoggerAspect,\n AspectLoaderAspect,\n WorkspaceAspect,\n CLIAspect,\n DependencyResolverAspect,\n EnvsAspect,\n ];\n static slots = [Slot.withType<SchemaTransformer[]>()];\n\n static async provider(\n [schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs]: [\n SchemaMain,\n LoggerMain,\n AspectLoaderMain,\n Workspace,\n CLIMain,\n DependencyResolverMain,\n EnvsMain\n ],\n config,\n [schemaTransformerSlot]: [SchemaTransformerSlot]\n ) {\n schema.registerParser(new TypeScriptParser());\n const logger = loggerExt.createLogger(TypescriptAspect.id);\n aspectLoader.registerPlugins([new SchemaTransformerPlugin(schemaTransformerSlot)]);\n const tsconfigWriter = new TsconfigWriter(workspace, logger);\n const tsMain = new TypescriptMain(logger, schemaTransformerSlot, workspace, depResolver, envs, tsconfigWriter);\n schemaTransformerSlot.register([\n new ExportDeclaration(),\n new FunctionDeclaration(),\n new VariableStatementTransformer(),\n new VariableDeclaration(),\n new SourceFileTransformer(),\n new TypeAliasTransformer(),\n new ClassDecelerationTransformer(),\n new InterfaceDeclarationTransformer(),\n new EnumDeclarationTransformer(),\n new BindingElementTransformer(),\n ]);\n\n if (workspace) {\n workspace.registerOnPreWatch(tsMain.onPreWatch.bind(this));\n workspace.registerOnComponentChange(tsMain.onComponentChange.bind(this));\n workspace.registerOnComponentAdd(tsMain.onComponentChange.bind(this));\n }\n\n const checkTypesCmd = new CheckTypesCmd(tsMain, workspace, logger);\n const writeTsconfigCmd = new WriteTsconfigCmd(tsMain);\n cli.register(checkTypesCmd, writeTsconfigCmd);\n\n return tsMain;\n }\n}\n\nTypescriptAspect.addRuntime(TypescriptMain);\n\nexport function runTransformersWithContext(\n config: TypescriptConfigMutator,\n transformers: TsConfigTransformer[] = [],\n context: TsConfigTransformContext\n): TypescriptConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n\nexport default TypescriptMain;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["TypescriptMain","constructor","logger","schemaTransformerSlot","workspace","depResolver","envs","tsConfigWriter","createCompiler","options","transformers","tsModule","ts","configMutator","TypescriptConfigMutator","transformerContext","afterMutation","runTransformersWithContext","clone","TypescriptCompiler","TypescriptAspect","id","raw","getTsserverClient","tsServer","initTsserverClient","projectPath","files","TsserverClient","init","initTsserverClientFromWorkspace","Error","path","createCjsCompiler","getCjsTransformer","createEsmCompiler","getEsmTransformer","cjsTransformer","config","setModule","esmTransformer","createSchemaExtractor","tsconfig","TypeScriptExtractor","getCjsPackageJsonProps","main","types","getEsmPackageJsonProps","type","getSupportedFilesForTsserver","components","map","c","filesystem","flat","f","filter","endsWith","cleanTsconfigJson","list","runtime","createEnvironment","execContext","getEnvExecutionContext","results","TsconfigWriter","clean","writeTsconfigJson","cleanResults","writeResults","write","onPreWatch","watchOpts","spawnTSServer","verbose","checkTypes","printTypeErrors","Boolean","onComponentChange","component","pMapSeries","file","onFileChange","provider","schema","loggerExt","aspectLoader","cli","registerParser","TypeScriptParser","createLogger","registerPlugins","SchemaTransformerPlugin","tsconfigWriter","tsMain","register","ExportDeclaration","FunctionDeclaration","VariableStatementTransformer","VariableDeclaration","SourceFileTransformer","TypeAliasTransformer","ClassDecelerationTransformer","InterfaceDeclarationTransformer","EnumDeclarationTransformer","BindingElementTransformer","registerOnPreWatch","bind","registerOnComponentChange","registerOnComponentAdd","checkTypesCmd","CheckTypesCmd","writeTsconfigCmd","WriteTsconfigCmd","MainRuntime","SchemaAspect","LoggerAspect","AspectLoaderAspect","WorkspaceAspect","CLIAspect","DependencyResolverAspect","EnvsAspect","Slot","withType","addRuntime","context","Array","isArray","newConfig","reduce","acc","transformer"],"sources":["typescript.main.runtime.ts"],"sourcesContent":["import ts from 'typescript';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Compiler } from '@teambit/compiler';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { SchemaAspect, SchemaExtractor, SchemaMain } from '@teambit/schema';\nimport { PackageJsonProps } from '@teambit/pkg';\nimport { TypescriptConfigMutator } from '@teambit/typescript.modules.ts-config-mutator';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { WatchOptions, Workspace } from '@teambit/workspace';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport pMapSeries from 'p-map-series';\nimport { TsserverClient, TsserverClientOpts } from '@teambit/ts-server';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport type { Component } from '@teambit/component';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { TypeScriptCompilerOptions } from './compiler-options';\nimport { TypescriptAspect } from './typescript.aspect';\nimport { TypescriptCompiler } from './typescript.compiler';\nimport { TypeScriptParser } from './typescript.parser';\nimport { SchemaTransformer } from './schema-transformer';\nimport { SchemaTransformerPlugin } from './schema-transformer.plugin';\nimport {\n ExportDeclaration,\n TypeAliasTransformer,\n FunctionDeclaration,\n VariableStatementTransformer,\n VariableDeclaration,\n SourceFileTransformer,\n ClassDecelerationTransformer,\n InterfaceDeclarationTransformer,\n EnumDeclarationTransformer,\n BindingElementTransformer,\n} from './transformers';\nimport { CheckTypesCmd } from './cmds/check-types.cmd';\nimport { TsconfigPathsPerEnv, TsconfigWriter } from './tsconfig-writer';\nimport WriteTsconfigCmd from './cmds/write-tsconfig.cmd';\n\nexport type TsMode = 'build' | 'dev';\n\nexport type SchemaTransformerSlot = SlotRegistry<SchemaTransformer[]>;\n\nexport type TsConfigTransformContext = {\n // mode: TsMode;\n};\n\nexport type TsconfigWriterOptions = {\n clean?: boolean;\n silent?: boolean; // no prompt\n dedupe?: boolean;\n dryRun?: boolean;\n dryRunWithTsconfig?: boolean;\n};\n\nexport type TsConfigTransformer = (\n config: TypescriptConfigMutator,\n context: TsConfigTransformContext\n) => TypescriptConfigMutator;\n\nexport class TypescriptMain {\n constructor(\n private logger: Logger,\n private schemaTransformerSlot: SchemaTransformerSlot,\n private workspace: Workspace,\n private depResolver: DependencyResolverMain,\n private envs: EnvsMain,\n private tsConfigWriter: TsconfigWriter\n ) {}\n\n private tsServer: TsserverClient;\n /**\n * create a new compiler.\n */\n createCompiler(\n options: TypeScriptCompilerOptions,\n transformers: TsConfigTransformer[] = [],\n tsModule = ts\n ): Compiler {\n const configMutator = new TypescriptConfigMutator(options);\n const transformerContext: TsConfigTransformContext = {};\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n return new TypescriptCompiler(TypescriptAspect.id, this.logger, afterMutation.raw, tsModule);\n }\n\n /**\n * get TsserverClient instance if initiated already, otherwise, return undefined.\n */\n getTsserverClient(): TsserverClient | undefined {\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API.\n * @param projectPath absolute path of the project root directory\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClient(\n projectPath: string,\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n this.tsServer = new TsserverClient(projectPath, this.logger, options, files);\n this.tsServer.init();\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API. use only when running on the workspace.\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClientFromWorkspace(\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n if (!this.workspace) {\n throw new Error(`initTsserverClientFromWorkspace: workspace was not found`);\n }\n return this.initTsserverClient(this.workspace.path, options, files);\n }\n\n /**\n * Create a compiler instance and run the cjs transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createCjsCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getCjsTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a compiler instance and run the esm transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createEsmCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getEsmTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a transformer that change the ts module to CommonJS\n * @returns\n */\n getCjsTransformer(): TsConfigTransformer {\n const cjsTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('CommonJS');\n return config;\n };\n return cjsTransformer;\n }\n\n /**\n * Create a transformer that change the ts module to ES2020\n * @returns\n */\n getEsmTransformer(): TsConfigTransformer {\n const esmTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('ES2020');\n return config;\n };\n return esmTransformer;\n }\n\n /**\n * create an instance of a typescript semantic schema extractor.\n */\n createSchemaExtractor(tsconfig: any, path?: string): SchemaExtractor {\n return new TypeScriptExtractor(\n tsconfig,\n this.schemaTransformerSlot,\n this,\n path || this.workspace.path,\n this.depResolver,\n this.workspace\n );\n }\n\n /**\n * add the default package json properties to the component\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getCjsPackageJsonProps(): PackageJsonProps {\n return {\n main: 'dist/{main}.js',\n types: '{main}.ts',\n };\n }\n\n /**\n * add type: module to the package.json props and the default props\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getEsmPackageJsonProps(): PackageJsonProps {\n return {\n // main: 'dist-esm/{main}.js',\n main: 'dist/{main}.js',\n type: 'module',\n types: '{main}.ts',\n };\n }\n\n getSupportedFilesForTsserver(components: Component[]): string[] {\n const files = components\n .map((c) => c.filesystem.files)\n .flat()\n .map((f) => f.path);\n return files.filter((f) => f.endsWith('.ts') || f.endsWith('.tsx'));\n }\n\n async cleanTsconfigJson(options: TsconfigWriterOptions = {}) {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n\n const results = await new TsconfigWriter(this.workspace, this.logger).clean(execContext, options);\n\n return results;\n }\n\n async writeTsconfigJson(options: TsconfigWriterOptions = {}): Promise<{\n cleanResults?: string[];\n writeResults: TsconfigPathsPerEnv[];\n }> {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n\n let cleanResults: string[] | undefined;\n if (options.clean) {\n cleanResults = await this.tsConfigWriter.clean(execContext, options);\n }\n\n const writeResults = await this.tsConfigWriter.write(execContext, options);\n\n return { writeResults, cleanResults };\n }\n\n private async onPreWatch(components: Component[], watchOpts: WatchOptions) {\n const workspace = this.workspace;\n if (!workspace || !watchOpts.spawnTSServer) {\n return;\n }\n const { verbose, checkTypes } = watchOpts;\n const files = checkTypes ? this.getSupportedFilesForTsserver(components) : [];\n const printTypeErrors = Boolean(checkTypes);\n await this.initTsserverClientFromWorkspace({ verbose, checkTypes, printTypeErrors }, files);\n }\n\n private async onComponentChange(component: Component, files: string[]) {\n if (!this.tsServer) {\n return {\n results: 'N/A',\n };\n }\n await pMapSeries(files, (file) => this.tsServer.onFileChange(file));\n return {\n results: 'succeed',\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n SchemaAspect,\n LoggerAspect,\n AspectLoaderAspect,\n WorkspaceAspect,\n CLIAspect,\n DependencyResolverAspect,\n EnvsAspect,\n ];\n static slots = [Slot.withType<SchemaTransformer[]>()];\n\n static async provider(\n [schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs]: [\n SchemaMain,\n LoggerMain,\n AspectLoaderMain,\n Workspace,\n CLIMain,\n DependencyResolverMain,\n EnvsMain\n ],\n config,\n [schemaTransformerSlot]: [SchemaTransformerSlot]\n ) {\n schema.registerParser(new TypeScriptParser());\n const logger = loggerExt.createLogger(TypescriptAspect.id);\n aspectLoader.registerPlugins([new SchemaTransformerPlugin(schemaTransformerSlot)]);\n const tsconfigWriter = new TsconfigWriter(workspace, logger);\n const tsMain = new TypescriptMain(logger, schemaTransformerSlot, workspace, depResolver, envs, tsconfigWriter);\n schemaTransformerSlot.register([\n new ExportDeclaration(),\n new FunctionDeclaration(),\n new VariableStatementTransformer(),\n new VariableDeclaration(),\n new SourceFileTransformer(),\n new TypeAliasTransformer(),\n new ClassDecelerationTransformer(),\n new InterfaceDeclarationTransformer(),\n new EnumDeclarationTransformer(),\n new BindingElementTransformer(),\n ]);\n\n if (workspace) {\n workspace.registerOnPreWatch(tsMain.onPreWatch.bind(this));\n workspace.registerOnComponentChange(tsMain.onComponentChange.bind(this));\n workspace.registerOnComponentAdd(tsMain.onComponentChange.bind(this));\n }\n\n const checkTypesCmd = new CheckTypesCmd(tsMain, workspace, logger);\n const writeTsconfigCmd = new WriteTsconfigCmd(tsMain);\n cli.register(checkTypesCmd, writeTsconfigCmd);\n\n return tsMain;\n }\n}\n\nTypescriptAspect.addRuntime(TypescriptMain);\n\nexport function runTransformersWithContext(\n config: TypescriptConfigMutator,\n transformers: TsConfigTransformer[] = [],\n context: TsConfigTransformContext\n): TypescriptConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n\nexport default TypescriptMain;\n"],"mappings":"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"}
|