@tsed/cli 3.26.0-beta.1 → 3.26.2

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.
Files changed (32) hide show
  1. package/lib/cjs/commands/generate/GenerateCmd.js +4 -8
  2. package/lib/cjs/commands/generate/GenerateCmd.js.map +1 -1
  3. package/lib/cjs/commands/init/InitCmd.js +55 -17
  4. package/lib/cjs/commands/init/InitCmd.js.map +1 -1
  5. package/lib/cjs/commands/init/config/FeaturesPrompt.js +1 -1
  6. package/lib/cjs/commands/init/config/FeaturesPrompt.js.map +1 -1
  7. package/lib/cjs/commands/init/config/InitFileSchema.js +18 -14
  8. package/lib/cjs/commands/init/config/InitFileSchema.js.map +1 -1
  9. package/lib/cjs/utils/fillImports.js +48 -0
  10. package/lib/cjs/utils/fillImports.js.map +1 -0
  11. package/lib/esm/commands/generate/GenerateCmd.js +4 -8
  12. package/lib/esm/commands/generate/GenerateCmd.js.map +1 -1
  13. package/lib/esm/commands/init/InitCmd.js +56 -18
  14. package/lib/esm/commands/init/InitCmd.js.map +1 -1
  15. package/lib/esm/commands/init/config/FeaturesPrompt.js +1 -1
  16. package/lib/esm/commands/init/config/FeaturesPrompt.js.map +1 -1
  17. package/lib/esm/commands/init/config/InitFileSchema.js +18 -14
  18. package/lib/esm/commands/init/config/InitFileSchema.js.map +1 -1
  19. package/lib/esm/utils/fillImports.js +44 -0
  20. package/lib/esm/utils/fillImports.js.map +1 -0
  21. package/lib/types/commands/init/InitCmd.d.ts +1 -0
  22. package/lib/types/commands/init/config/InitFileSchema.d.ts +16 -12
  23. package/lib/types/utils/fillImports.d.ts +1 -0
  24. package/package.json +6 -7
  25. package/readme.md +92 -1
  26. package/templates/generate/server.hbs +4 -23
  27. package/templates/init/.barrelsby.json.hbs +1 -7
  28. package/lib/cjs/services/Features.js +0 -513
  29. package/lib/cjs/services/Features.js.map +0 -1
  30. package/lib/esm/services/Features.js +0 -508
  31. package/lib/esm/services/Features.js.map +0 -1
  32. package/lib/types/services/Features.d.ts +0 -394
@@ -1,513 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFeaturesChoicesValues = exports.parseFeaturesFile = exports.FEATURES_TYPEORM_CONNECTION_TYPES = void 0;
4
- const interfaces_1 = require("../interfaces");
5
- const isPlatform_1 = require("../commands/init/utils/isPlatform");
6
- exports.FEATURES_TYPEORM_CONNECTION_TYPES = [
7
- {
8
- name: "MySQL",
9
- value: {
10
- type: "typeorm:mysql",
11
- dependencies: {
12
- mysql2: "latest"
13
- }
14
- }
15
- },
16
- {
17
- name: "MariaDB",
18
- value: {
19
- type: "typeorm:mariadb",
20
- dependencies: {
21
- mariadb: "latest"
22
- }
23
- }
24
- },
25
- {
26
- name: "Postgres",
27
- value: {
28
- type: "typeorm:postgres",
29
- dependencies: {
30
- pg: "latest"
31
- }
32
- }
33
- },
34
- {
35
- name: "CockRoachDB",
36
- value: {
37
- type: "typeorm:postgres",
38
- dependencies: {
39
- cockroachdb: "latest"
40
- }
41
- }
42
- },
43
- {
44
- name: "SQLite",
45
- value: {
46
- type: "typeorm:sqlite",
47
- dependencies: {
48
- sqlite3: "latest"
49
- }
50
- }
51
- },
52
- {
53
- name: "Better SQLite3",
54
- value: {
55
- type: "typeorm:better-sqlite3",
56
- dependencies: {
57
- "better-sqlite3": "latest"
58
- }
59
- }
60
- },
61
- {
62
- name: "Cordova",
63
- value: {
64
- type: "typeorm:cordova"
65
- }
66
- },
67
- {
68
- name: "NativeScript",
69
- value: {
70
- type: "typeorm:nativescript"
71
- }
72
- },
73
- {
74
- name: "Oracle",
75
- value: {
76
- type: "typeorm:oracle",
77
- dependencies: {
78
- oracledb: "latest"
79
- }
80
- }
81
- },
82
- {
83
- name: "MsSQL",
84
- value: {
85
- type: "typeorm:mssql",
86
- dependencies: {
87
- mssql: "latest"
88
- }
89
- }
90
- },
91
- {
92
- name: "MongoDB",
93
- value: {
94
- type: "typeorm:mongodb",
95
- dependencies: {
96
- mongodb: "latest"
97
- }
98
- }
99
- },
100
- {
101
- name: "SQL.js",
102
- value: {
103
- type: "typeorm:sqljs",
104
- dependencies: {}
105
- }
106
- },
107
- {
108
- name: "ReactNative",
109
- value: {
110
- type: "typeorm:reactnative",
111
- dependencies: {}
112
- }
113
- },
114
- {
115
- name: "Expo",
116
- value: {
117
- type: "typeorm:expo",
118
- dependencies: {}
119
- }
120
- }
121
- ];
122
- const babelDevDependencies = {
123
- "@babel/cli": "latest",
124
- "@babel/core": "latest",
125
- "@babel/node": "latest",
126
- "@babel/plugin-proposal-class-properties": "latest",
127
- "@babel/plugin-proposal-decorators": "latest",
128
- "@babel/preset-env": "latest",
129
- "@babel/preset-typescript": "latest",
130
- "babel-plugin-transform-typescript-metadata": "latest",
131
- "babel-watch": "latest"
132
- };
133
- const platformChoices = [
134
- {
135
- name: "Express.js",
136
- checked: true,
137
- value: "express"
138
- },
139
- {
140
- name: "Koa.js",
141
- checked: false,
142
- value: "koa"
143
- }
144
- ];
145
- const conventionChoices = [
146
- {
147
- name: "Ts.ED",
148
- checked: true,
149
- value: interfaces_1.ProjectConvention.DEFAULT
150
- },
151
- {
152
- name: "Angular",
153
- checked: false,
154
- value: interfaces_1.ProjectConvention.ANGULAR
155
- }
156
- ];
157
- const featureChoices = (cliVersion) => [
158
- {
159
- name: "TypeGraphQL",
160
- value: {
161
- type: "graphql",
162
- dependencies: {
163
- "@tsed/typegraphql": "{{tsedVersion}}"
164
- },
165
- devDependencies: {
166
- "@tsed/cli-plugin-typegraphql": cliVersion
167
- }
168
- }
169
- },
170
- {
171
- name: "Database",
172
- value: { type: "db" }
173
- },
174
- {
175
- name: "Passport.js",
176
- when: (0, isPlatform_1.isPlatform)("express"),
177
- value: {
178
- type: "passportjs",
179
- devDependencies: {
180
- "@tsed/cli-plugin-passport": cliVersion
181
- }
182
- }
183
- },
184
- {
185
- name: "Socket.io",
186
- value: {
187
- type: "socketio",
188
- dependencies: {
189
- "@tsed/socketio": "{{tsedVersion}}",
190
- "socket.io": "latest"
191
- }
192
- }
193
- },
194
- {
195
- name: "Swagger",
196
- value: {
197
- type: "swagger",
198
- dependencies: {
199
- "@tsed/swagger": "{{tsedVersion}}"
200
- }
201
- }
202
- },
203
- {
204
- name: "OpenID Connect provider",
205
- value: {
206
- type: "oidc",
207
- devDependencies: {
208
- "@tsed/cli-plugin-oidc-provider": cliVersion
209
- }
210
- }
211
- },
212
- {
213
- name: "Testing",
214
- value: {
215
- type: "testing",
216
- dependencies: {},
217
- devDependencies: {
218
- "@types/supertest": "latest",
219
- supertest: "latest"
220
- }
221
- }
222
- },
223
- {
224
- name: "Linter",
225
- value: {
226
- type: "linter"
227
- }
228
- },
229
- {
230
- name: "Bundler",
231
- value: {
232
- type: "bundler"
233
- }
234
- },
235
- {
236
- name: "Commands",
237
- value: {
238
- type: "commands",
239
- dependencies: {
240
- "@tsed/cli-core": cliVersion
241
- },
242
- devDependencies: {
243
- "@types/inquirer": "latest"
244
- }
245
- }
246
- }
247
- ];
248
- const featuresDbChoices = (cliVersion) => [
249
- {
250
- name: "Prisma",
251
- value: {
252
- type: "prisma",
253
- devDependencies: {
254
- "@tsed/cli-plugin-prisma": cliVersion
255
- }
256
- }
257
- },
258
- {
259
- name: "Mongoose",
260
- value: {
261
- type: "mongoose",
262
- devDependencies: {
263
- "@tsed/cli-plugin-mongoose": cliVersion
264
- }
265
- }
266
- },
267
- {
268
- name: "TypeORM",
269
- value: {
270
- type: "typeorm",
271
- devDependencies: {
272
- "@tsed/cli-plugin-typeorm": cliVersion
273
- }
274
- }
275
- }
276
- ];
277
- const featuresTestingChoices = (cliVersion) => [
278
- {
279
- name: "Jest",
280
- value: {
281
- type: "jest",
282
- devDependencies: {
283
- "@tsed/cli-plugin-jest": cliVersion
284
- }
285
- }
286
- },
287
- {
288
- name: "Mocha + Chai + Sinon",
289
- value: {
290
- type: "mocha",
291
- devDependencies: {
292
- "@tsed/cli-plugin-mocha": cliVersion
293
- }
294
- }
295
- }
296
- ];
297
- const featuresLinterChoices = (cliVersion) => [
298
- {
299
- name: "EsLint",
300
- checked: true,
301
- value: {
302
- type: "eslint",
303
- devDependencies: {
304
- "@tsed/cli-plugin-eslint": cliVersion
305
- }
306
- }
307
- }
308
- ];
309
- const featuresExtraLinterChoices = [
310
- {
311
- name: "Prettier",
312
- value: {
313
- type: "prettier"
314
- }
315
- },
316
- {
317
- name: "Lint on commit",
318
- value: {
319
- type: "lintstaged"
320
- }
321
- }
322
- ];
323
- const featuresBundlerChoices = [
324
- {
325
- name: "Babel",
326
- value: {
327
- type: "babel",
328
- devDependencies: {
329
- ...babelDevDependencies
330
- }
331
- }
332
- },
333
- {
334
- name: "Webpack",
335
- value: {
336
- type: "babel:webpack",
337
- devDependencies: {
338
- ...babelDevDependencies,
339
- "babel-loader": "latest",
340
- webpack: "latest",
341
- "webpack-cli": "latest"
342
- }
343
- }
344
- }
345
- ];
346
- const packageManagerChoices = [
347
- {
348
- name: "Yarn",
349
- checked: true,
350
- value: "yarn"
351
- },
352
- {
353
- name: "NPM",
354
- checked: false,
355
- value: "npm"
356
- },
357
- {
358
- name: "PNPM - experimental",
359
- checked: false,
360
- value: "pnpm"
361
- }
362
- ];
363
- const parseFeaturesFile = (features, cliVersion) => {
364
- return {
365
- platform: features.platform,
366
- convention: features.convention,
367
- features: [
368
- ...featureChoices(cliVersion)
369
- .map((v) => v.value)
370
- .filter((v) => features.features.filter((v) => typeof v === "string").includes(v.type)),
371
- ...features.features.filter((v) => typeof v === "object")
372
- ],
373
- featuresDB: featuresDbChoices(cliVersion).find((v) => v.value.type === features.featuresDB)?.value,
374
- featuresTypeORM: exports.FEATURES_TYPEORM_CONNECTION_TYPES.find((v) => v.value.type === features.featuresTypeORM)?.value,
375
- featuresTesting: featuresTestingChoices(cliVersion).find((v) => v.value.type === features.featuresTesting)?.value,
376
- featuresLinter: featuresLinterChoices(cliVersion).find((v) => v.value.type === features.featuresLinter)?.value,
377
- featuresExtraLinter: featuresExtraLinterChoices.map((v) => v.value).filter((v) => features.featuresExtraLinter?.includes(v.type)),
378
- featuresBundler: featuresBundlerChoices.find((v) => v.value.type === features.featuresBundlerChoices)?.value,
379
- packageManager: features.packageManager
380
- };
381
- };
382
- exports.parseFeaturesFile = parseFeaturesFile;
383
- const getFeaturesChoicesValues = (cliVersion) => {
384
- return {
385
- platform: platformChoices.map((v) => v.value),
386
- convention: conventionChoices.map((v) => v.value),
387
- features: featureChoices(cliVersion).map((v) => v.value.type),
388
- featuresDB: featuresDbChoices(cliVersion).map((v) => v.value.type),
389
- featuresTypeORM: exports.FEATURES_TYPEORM_CONNECTION_TYPES.map((v) => v.value.type),
390
- featuresTesting: featuresTestingChoices(cliVersion).map((v) => v.value.type),
391
- featuresLinter: featuresLinterChoices(cliVersion).map((v) => v.value.type),
392
- featuresExtraLinter: featuresExtraLinterChoices.map((v) => v.value.type),
393
- featuresBundler: featuresBundlerChoices.map((v) => v.value.type),
394
- packageManager: packageManagerChoices.map((v) => v.value)
395
- };
396
- };
397
- exports.getFeaturesChoicesValues = getFeaturesChoicesValues;
398
- //
399
- // registerProvider({
400
- // provide: Features,
401
- // deps: [CliPackageJson],
402
- // useFactory(cliPackageJson: CliPackageJson) {
403
- // const cliVersion = cliPackageJson.version;
404
- //
405
- // return [
406
- // {
407
- // message: "Choose the target platform:",
408
- // type: "list",
409
- // name: "platform",
410
- // choices: platformChoices
411
- // },
412
- // {
413
- // message: "Choose the architecture for your project:",
414
- // type: "list",
415
- // name: "architecture",
416
- // choices: [
417
- // {
418
- // name: "Ts.ED",
419
- // checked: true,
420
- // value: ArchitectureConvention.DEFAULT
421
- // },
422
- // {
423
- // name: "feature",
424
- // checked: false,
425
- // value: ArchitectureConvention.FEATURE
426
- // }
427
- // ]
428
- // },
429
- // {
430
- // message: "Choose the convention file styling:",
431
- // type: "list",
432
- // name: "convention",
433
- // choices: conventionChoices
434
- // },
435
- // {
436
- // type: "checkbox",
437
- // name: "features",
438
- // message: "Check the features needed for your project",
439
- // choices: featureChoices(cliVersion)
440
- // },
441
- // {
442
- // message: "Choose a ORM manager",
443
- // type: "list",
444
- // name: "featuresDB",
445
- // when: hasFeature("db"),
446
- // choices: featuresDbChoices(cliVersion)
447
- // },
448
- // {
449
- // type: "list",
450
- // name: "featuresTypeORM",
451
- // message: "Which TypeORM you want to install?",
452
- // choices: FEATURES_TYPEORM_CONNECTION_TYPES,
453
- // when: hasValue("featuresDB.type", "typeorm")
454
- // },
455
- // // {
456
- // // type: "password",
457
- // // name: "GH_TOKEN",
458
- // // message:
459
- // // "Enter GH_TOKEN to use the premium @tsedio/prisma package or leave blank (see https://tsed.io/tutorials/prisma-client.html)",
460
- // // when: hasValue("featuresDB.type", "prisma")
461
- // // },
462
- // {
463
- // message: "Choose unit framework",
464
- // type: "list",
465
- // name: "featuresTesting",
466
- // when: hasFeature("testing"),
467
- // choices: featuresTestingChoices(cliVersion)
468
- // },
469
- // {
470
- // message: "Choose linter tools framework",
471
- // type: "list",
472
- // name: "featuresLinter",
473
- // when: hasFeature("linter"),
474
- // choices: featuresLinterChoices(cliVersion)
475
- // },
476
- // {
477
- // message: "Choose extra linter tools",
478
- // type: "checkbox",
479
- // name: "featuresExtraLinter",
480
- // when: hasFeature("linter"),
481
- // choices: featuresExtraLinterChoices
482
- // },
483
- // {
484
- // message: "Choose your bundler",
485
- // type: "list",
486
- // name: "featuresBundler",
487
- // when: hasFeature("bundler"),
488
- // choices: featuresBundlerChoices
489
- // },
490
- // {
491
- // message: "Choose the OIDC base path server",
492
- // name: "oidcBasePath",
493
- // default: "/oidc",
494
- // when: hasFeature("oidc"),
495
- // type: "input"
496
- // },
497
- // {
498
- // message: "Choose the OIDC base path server",
499
- // name: "oidcBasePath",
500
- // default: "/oidc",
501
- // when: hasFeature("oidc"),
502
- // type: "input"
503
- // },
504
- // {
505
- // message: "Choose the package manager:",
506
- // type: "list",
507
- // name: "packageManager",
508
- // choices: packageManagerChoices
509
- // }
510
- // ];
511
- // }
512
- // });
513
- //# sourceMappingURL=Features.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Features.js","sourceRoot":"","sources":["../../../src/services/Features.ts"],"names":[],"mappings":"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","sourcesContent":["import {ProjectConvention} from \"../interfaces\";\nimport {isPlatform} from \"../commands/init/utils/isPlatform\";\n\nexport const FEATURES_TYPEORM_CONNECTION_TYPES = [\n {\n name: \"MySQL\",\n value: {\n type: \"typeorm:mysql\",\n dependencies: {\n mysql2: \"latest\"\n }\n }\n },\n {\n name: \"MariaDB\",\n value: {\n type: \"typeorm:mariadb\",\n dependencies: {\n mariadb: \"latest\"\n }\n }\n },\n {\n name: \"Postgres\",\n value: {\n type: \"typeorm:postgres\",\n dependencies: {\n pg: \"latest\"\n }\n }\n },\n {\n name: \"CockRoachDB\",\n value: {\n type: \"typeorm:postgres\",\n dependencies: {\n cockroachdb: \"latest\"\n }\n }\n },\n {\n name: \"SQLite\",\n value: {\n type: \"typeorm:sqlite\",\n dependencies: {\n sqlite3: \"latest\"\n }\n }\n },\n {\n name: \"Better SQLite3\",\n value: {\n type: \"typeorm:better-sqlite3\",\n dependencies: {\n \"better-sqlite3\": \"latest\"\n }\n }\n },\n {\n name: \"Cordova\",\n value: {\n type: \"typeorm:cordova\"\n }\n },\n {\n name: \"NativeScript\",\n value: {\n type: \"typeorm:nativescript\"\n }\n },\n {\n name: \"Oracle\",\n value: {\n type: \"typeorm:oracle\",\n dependencies: {\n oracledb: \"latest\"\n }\n }\n },\n {\n name: \"MsSQL\",\n value: {\n type: \"typeorm:mssql\",\n dependencies: {\n mssql: \"latest\"\n }\n }\n },\n {\n name: \"MongoDB\",\n value: {\n type: \"typeorm:mongodb\",\n dependencies: {\n mongodb: \"latest\"\n }\n }\n },\n {\n name: \"SQL.js\",\n value: {\n type: \"typeorm:sqljs\",\n dependencies: {}\n }\n },\n {\n name: \"ReactNative\",\n value: {\n type: \"typeorm:reactnative\",\n dependencies: {}\n }\n },\n {\n name: \"Expo\",\n value: {\n type: \"typeorm:expo\",\n dependencies: {}\n }\n }\n];\n\nconst babelDevDependencies = {\n \"@babel/cli\": \"latest\",\n \"@babel/core\": \"latest\",\n \"@babel/node\": \"latest\",\n \"@babel/plugin-proposal-class-properties\": \"latest\",\n \"@babel/plugin-proposal-decorators\": \"latest\",\n \"@babel/preset-env\": \"latest\",\n \"@babel/preset-typescript\": \"latest\",\n \"babel-plugin-transform-typescript-metadata\": \"latest\",\n \"babel-watch\": \"latest\"\n};\n\nconst platformChoices = [\n {\n name: \"Express.js\",\n checked: true,\n value: \"express\"\n },\n {\n name: \"Koa.js\",\n checked: false,\n value: \"koa\"\n }\n];\n\nconst conventionChoices = [\n {\n name: \"Ts.ED\",\n checked: true,\n value: ProjectConvention.DEFAULT\n },\n {\n name: \"Angular\",\n checked: false,\n value: ProjectConvention.ANGULAR\n }\n];\n\nconst featureChoices = (cliVersion: string) => [\n {\n name: \"TypeGraphQL\",\n value: {\n type: \"graphql\",\n dependencies: {\n \"@tsed/typegraphql\": \"{{tsedVersion}}\"\n },\n devDependencies: {\n \"@tsed/cli-plugin-typegraphql\": cliVersion\n }\n }\n },\n {\n name: \"Database\",\n value: {type: \"db\"}\n },\n {\n name: \"Passport.js\",\n when: isPlatform(\"express\"),\n value: {\n type: \"passportjs\",\n devDependencies: {\n \"@tsed/cli-plugin-passport\": cliVersion\n }\n }\n },\n {\n name: \"Socket.io\",\n value: {\n type: \"socketio\",\n dependencies: {\n \"@tsed/socketio\": \"{{tsedVersion}}\",\n \"socket.io\": \"latest\"\n }\n }\n },\n {\n name: \"Swagger\",\n value: {\n type: \"swagger\",\n dependencies: {\n \"@tsed/swagger\": \"{{tsedVersion}}\"\n }\n }\n },\n {\n name: \"OpenID Connect provider\",\n value: {\n type: \"oidc\",\n devDependencies: {\n \"@tsed/cli-plugin-oidc-provider\": cliVersion\n }\n }\n },\n {\n name: \"Testing\",\n value: {\n type: \"testing\",\n dependencies: {},\n devDependencies: {\n \"@types/supertest\": \"latest\",\n supertest: \"latest\"\n }\n }\n },\n {\n name: \"Linter\",\n value: {\n type: \"linter\"\n }\n },\n {\n name: \"Bundler\",\n value: {\n type: \"bundler\"\n }\n },\n {\n name: \"Commands\",\n value: {\n type: \"commands\",\n dependencies: {\n \"@tsed/cli-core\": cliVersion\n },\n devDependencies: {\n \"@types/inquirer\": \"latest\"\n }\n }\n }\n];\n\nconst featuresDbChoices = (cliVersion: string) => [\n {\n name: \"Prisma\",\n value: {\n type: \"prisma\",\n devDependencies: {\n \"@tsed/cli-plugin-prisma\": cliVersion\n }\n }\n },\n {\n name: \"Mongoose\",\n value: {\n type: \"mongoose\",\n devDependencies: {\n \"@tsed/cli-plugin-mongoose\": cliVersion\n }\n }\n },\n {\n name: \"TypeORM\",\n value: {\n type: \"typeorm\",\n devDependencies: {\n \"@tsed/cli-plugin-typeorm\": cliVersion\n }\n }\n }\n];\n\nconst featuresTestingChoices = (cliVersion: string) => [\n {\n name: \"Jest\",\n value: {\n type: \"jest\",\n devDependencies: {\n \"@tsed/cli-plugin-jest\": cliVersion\n }\n }\n },\n {\n name: \"Mocha + Chai + Sinon\",\n value: {\n type: \"mocha\",\n devDependencies: {\n \"@tsed/cli-plugin-mocha\": cliVersion\n }\n }\n }\n];\n\nconst featuresLinterChoices = (cliVersion: string) => [\n {\n name: \"EsLint\",\n checked: true,\n value: {\n type: \"eslint\",\n devDependencies: {\n \"@tsed/cli-plugin-eslint\": cliVersion\n }\n }\n }\n];\n\nconst featuresExtraLinterChoices = [\n {\n name: \"Prettier\",\n value: {\n type: \"prettier\"\n }\n },\n {\n name: \"Lint on commit\",\n value: {\n type: \"lintstaged\"\n }\n }\n];\n\nconst featuresBundlerChoices = [\n {\n name: \"Babel\",\n value: {\n type: \"babel\",\n devDependencies: {\n ...babelDevDependencies\n }\n }\n },\n {\n name: \"Webpack\",\n value: {\n type: \"babel:webpack\",\n devDependencies: {\n ...babelDevDependencies,\n \"babel-loader\": \"latest\",\n webpack: \"latest\",\n \"webpack-cli\": \"latest\"\n }\n }\n }\n];\n\nconst packageManagerChoices = [\n {\n name: \"Yarn\",\n checked: true,\n value: \"yarn\"\n },\n {\n name: \"NPM\",\n checked: false,\n value: \"npm\"\n },\n {\n name: \"PNPM - experimental\",\n checked: false,\n value: \"pnpm\"\n }\n];\n\nexport const parseFeaturesFile = (features: Record<string, any>, cliVersion: string) => {\n return {\n platform: features.platform,\n convention: features.convention,\n features: [\n ...featureChoices(cliVersion)\n .map((v) => v.value)\n .filter((v) => features.features.filter((v: string | Record<string, any>) => typeof v === \"string\").includes(v.type)),\n ...features.features.filter((v: string | Record<string, any>) => typeof v === \"object\")\n ],\n featuresDB: featuresDbChoices(cliVersion).find((v) => v.value.type === features.featuresDB)?.value,\n featuresTypeORM: FEATURES_TYPEORM_CONNECTION_TYPES.find((v) => v.value.type === features.featuresTypeORM)?.value,\n featuresTesting: featuresTestingChoices(cliVersion).find((v) => v.value.type === features.featuresTesting)?.value,\n featuresLinter: featuresLinterChoices(cliVersion).find((v) => v.value.type === features.featuresLinter)?.value,\n featuresExtraLinter: featuresExtraLinterChoices.map((v) => v.value).filter((v) => features.featuresExtraLinter?.includes(v.type)),\n featuresBundler: featuresBundlerChoices.find((v) => v.value.type === features.featuresBundlerChoices)?.value,\n packageManager: features.packageManager\n };\n};\n\nexport const getFeaturesChoicesValues = (cliVersion: string) => {\n return {\n platform: platformChoices.map((v) => v.value),\n convention: conventionChoices.map((v) => v.value),\n features: featureChoices(cliVersion).map((v) => v.value.type),\n featuresDB: featuresDbChoices(cliVersion).map((v) => v.value.type),\n featuresTypeORM: FEATURES_TYPEORM_CONNECTION_TYPES.map((v) => v.value.type),\n featuresTesting: featuresTestingChoices(cliVersion).map((v) => v.value.type),\n featuresLinter: featuresLinterChoices(cliVersion).map((v) => v.value.type),\n featuresExtraLinter: featuresExtraLinterChoices.map((v) => v.value.type),\n featuresBundler: featuresBundlerChoices.map((v) => v.value.type),\n packageManager: packageManagerChoices.map((v) => v.value)\n };\n};\n//\n// registerProvider({\n// provide: Features,\n// deps: [CliPackageJson],\n// useFactory(cliPackageJson: CliPackageJson) {\n// const cliVersion = cliPackageJson.version;\n//\n// return [\n// {\n// message: \"Choose the target platform:\",\n// type: \"list\",\n// name: \"platform\",\n// choices: platformChoices\n// },\n// {\n// message: \"Choose the architecture for your project:\",\n// type: \"list\",\n// name: \"architecture\",\n// choices: [\n// {\n// name: \"Ts.ED\",\n// checked: true,\n// value: ArchitectureConvention.DEFAULT\n// },\n// {\n// name: \"feature\",\n// checked: false,\n// value: ArchitectureConvention.FEATURE\n// }\n// ]\n// },\n// {\n// message: \"Choose the convention file styling:\",\n// type: \"list\",\n// name: \"convention\",\n// choices: conventionChoices\n// },\n// {\n// type: \"checkbox\",\n// name: \"features\",\n// message: \"Check the features needed for your project\",\n// choices: featureChoices(cliVersion)\n// },\n// {\n// message: \"Choose a ORM manager\",\n// type: \"list\",\n// name: \"featuresDB\",\n// when: hasFeature(\"db\"),\n// choices: featuresDbChoices(cliVersion)\n// },\n// {\n// type: \"list\",\n// name: \"featuresTypeORM\",\n// message: \"Which TypeORM you want to install?\",\n// choices: FEATURES_TYPEORM_CONNECTION_TYPES,\n// when: hasValue(\"featuresDB.type\", \"typeorm\")\n// },\n// // {\n// // type: \"password\",\n// // name: \"GH_TOKEN\",\n// // message:\n// // \"Enter GH_TOKEN to use the premium @tsedio/prisma package or leave blank (see https://tsed.io/tutorials/prisma-client.html)\",\n// // when: hasValue(\"featuresDB.type\", \"prisma\")\n// // },\n// {\n// message: \"Choose unit framework\",\n// type: \"list\",\n// name: \"featuresTesting\",\n// when: hasFeature(\"testing\"),\n// choices: featuresTestingChoices(cliVersion)\n// },\n// {\n// message: \"Choose linter tools framework\",\n// type: \"list\",\n// name: \"featuresLinter\",\n// when: hasFeature(\"linter\"),\n// choices: featuresLinterChoices(cliVersion)\n// },\n// {\n// message: \"Choose extra linter tools\",\n// type: \"checkbox\",\n// name: \"featuresExtraLinter\",\n// when: hasFeature(\"linter\"),\n// choices: featuresExtraLinterChoices\n// },\n// {\n// message: \"Choose your bundler\",\n// type: \"list\",\n// name: \"featuresBundler\",\n// when: hasFeature(\"bundler\"),\n// choices: featuresBundlerChoices\n// },\n// {\n// message: \"Choose the OIDC base path server\",\n// name: \"oidcBasePath\",\n// default: \"/oidc\",\n// when: hasFeature(\"oidc\"),\n// type: \"input\"\n// },\n// {\n// message: \"Choose the OIDC base path server\",\n// name: \"oidcBasePath\",\n// default: \"/oidc\",\n// when: hasFeature(\"oidc\"),\n// type: \"input\"\n// },\n// {\n// message: \"Choose the package manager:\",\n// type: \"list\",\n// name: \"packageManager\",\n// choices: packageManagerChoices\n// }\n// ];\n// }\n// });\n"]}