@diia-inhouse/scaffold 2.17.0

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 (147) hide show
  1. package/LICENCE.md +287 -0
  2. package/README.md +93 -0
  3. package/dist/_sharedTemplates/actionTest.t +36 -0
  4. package/dist/_templates/add/action/01-action.ts.t +34 -0
  5. package/dist/_templates/add/action/01-test.ts.t +37 -0
  6. package/dist/_templates/add/action/01.interface.ts.t +15 -0
  7. package/dist/_templates/add/action/02-scriptRunner.t +3 -0
  8. package/dist/_templates/add/action/dict.js +18 -0
  9. package/dist/_templates/add/action/dict.js.map +1 -0
  10. package/dist/_templates/add/action/prompt.js +88 -0
  11. package/dist/_templates/add/action/prompt.js.map +1 -0
  12. package/dist/_templates/add/eventListener/01-event.ts.t +18 -0
  13. package/dist/_templates/add/eventListener/01-interface.ts.t +5 -0
  14. package/dist/_templates/add/eventListener/02-scriptRunner.ts.t +3 -0
  15. package/dist/_templates/add/eventListener/prompt.js +22 -0
  16. package/dist/_templates/add/eventListener/prompt.js.map +1 -0
  17. package/dist/_templates/add/externalEventListener/01-event.ts.t +16 -0
  18. package/dist/_templates/add/externalEventListener/01-interface.ts.t +5 -0
  19. package/dist/_templates/add/externalEventListener/02-scriptRunner.t +3 -0
  20. package/dist/_templates/add/externalEventListener/prompt.js +22 -0
  21. package/dist/_templates/add/externalEventListener/prompt.js.map +1 -0
  22. package/dist/_templates/add/generator/01-interface.ts.t +7 -0
  23. package/dist/_templates/add/generator/01-prompt.ts.t +19 -0
  24. package/dist/_templates/add/generator/02-scriptRunner.ts.t +7 -0
  25. package/dist/_templates/add/generator/03-scriptRunner.ts.t +3 -0
  26. package/dist/_templates/add/generator/prompt.js +45 -0
  27. package/dist/_templates/add/generator/prompt.js.map +1 -0
  28. package/dist/_templates/add/model/01-interfaces.model.ts.t +8 -0
  29. package/dist/_templates/add/model/01-model.ts.t +16 -0
  30. package/dist/_templates/add/model/02-scriptRunner.ts.t +3 -0
  31. package/dist/_templates/add/model/prompt.js +20 -0
  32. package/dist/_templates/add/model/prompt.js.map +1 -0
  33. package/dist/_templates/add/scheduledTask/01-task.ts.t +12 -0
  34. package/dist/_templates/add/scheduledTask/02-scriptRunner.t +3 -0
  35. package/dist/_templates/add/scheduledTask/prompt.js +20 -0
  36. package/dist/_templates/add/scheduledTask/prompt.js.map +1 -0
  37. package/dist/_templates/add/task/01-interface.ts.t +5 -0
  38. package/dist/_templates/add/task/01-task.ts.t +29 -0
  39. package/dist/_templates/add/task/02-scriptRunner.t +5 -0
  40. package/dist/_templates/add/task/prompt.js +32 -0
  41. package/dist/_templates/add/task/prompt.js.map +1 -0
  42. package/dist/_templates/add/test/01-test.ts.t +5 -0
  43. package/dist/_templates/add/test/02-scriptRunner.ts.t +3 -0
  44. package/dist/_templates/add/test/prompt.js +48 -0
  45. package/dist/_templates/add/test/prompt.js.map +1 -0
  46. package/dist/_templates/init/matchers/01-index.ts.t +5 -0
  47. package/dist/_templates/init/matchers/01-inject-setup.ts.t +8 -0
  48. package/dist/_templates/init/matchers/01-jest.d.ts.t +16 -0
  49. package/dist/_templates/init/matchers/01-matcher.ts.t +5 -0
  50. package/dist/_templates/init/matchers/01-new-setup.ts.t +8 -0
  51. package/dist/_templates/init/matchers/01-tsconfig.json.t +6 -0
  52. package/dist/_templates/init/matchers/02-scriptRunner.ts.t +3 -0
  53. package/dist/_templates/init/matchers/prompt.js +77 -0
  54. package/dist/_templates/init/matchers/prompt.js.map +1 -0
  55. package/dist/_templates/init/package/01-.eslintignore.t +7 -0
  56. package/dist/_templates/init/package/01-.gitignore.t +8 -0
  57. package/dist/_templates/init/package/01-.gitlab-ci.yml.t +13 -0
  58. package/dist/_templates/init/package/01-.prettierignore.t +5 -0
  59. package/dist/_templates/init/package/01-package.json.t +48 -0
  60. package/dist/_templates/init/package/01-readme.md.t +7 -0
  61. package/dist/_templates/init/package/01-src.index.ts.t +7 -0
  62. package/dist/_templates/init/package/01-test.tsconfig.json.t +19 -0
  63. package/dist/_templates/init/package/01-test.unit.index.ts.t +13 -0
  64. package/dist/_templates/init/package/01-tsconfig.json.t +22 -0
  65. package/dist/_templates/init/package/02-scriptRunner.t +7 -0
  66. package/dist/_templates/init/package/prompt.js +26 -0
  67. package/dist/_templates/init/package/prompt.js.map +1 -0
  68. package/dist/_templates/init/service/01-.env.example.t +59 -0
  69. package/dist/_templates/init/service/01-.env.test.t +4 -0
  70. package/dist/_templates/init/service/01-.eslintignore.t +8 -0
  71. package/dist/_templates/init/service/01-.gitignore.t +11 -0
  72. package/dist/_templates/init/service/01-.gitlab-ci.yml.t +20 -0
  73. package/dist/_templates/init/service/01-.prettierignore.t +6 -0
  74. package/dist/_templates/init/service/01-dockerfile.t +38 -0
  75. package/dist/_templates/init/service/01-migrate-mongo-config.ts.t +8 -0
  76. package/dist/_templates/init/service/01-migrations.sample-migration.ts.t +18 -0
  77. package/dist/_templates/init/service/01-migrations.tsconfig.json.t +21 -0
  78. package/dist/_templates/init/service/01-package.json.t +68 -0
  79. package/dist/_templates/init/service/01-proto.service.proto.t +22 -0
  80. package/dist/_templates/init/service/01-readme.md.t +7 -0
  81. package/dist/_templates/init/service/01-src.actions.v1.getAddResult.ts.t +29 -0
  82. package/dist/_templates/init/service/01-src.bootstrap.ts.t +18 -0
  83. package/dist/_templates/init/service/01-src.config.ts.t +160 -0
  84. package/dist/_templates/init/service/01-src.deps.ts.t +14 -0
  85. package/dist/_templates/init/service/01-src.index.ts.t +14 -0
  86. package/dist/_templates/init/service/01-src.interfaces.actions.v1.getAddResult.ts.t +13 -0
  87. package/dist/_templates/init/service/01-src.interfaces.config.ts.t +7 -0
  88. package/dist/_templates/init/service/01-src.interfaces.deps.ts.t +9 -0
  89. package/dist/_templates/init/service/01-tests.integration.actionts.getAddResult.spec.ts.t +39 -0
  90. package/dist/_templates/init/service/01-tests.interfaces.ts.t +9 -0
  91. package/dist/_templates/init/service/01-tests.jest.d.ts.t +5 -0
  92. package/dist/_templates/init/service/01-tests.tsconfig.json.t +23 -0
  93. package/dist/_templates/init/service/01-tests.utils.getApp.ts.t +26 -0
  94. package/dist/_templates/init/service/01-tests.utils.getDeps.ts.t +23 -0
  95. package/dist/_templates/init/service/01-tsconfig.json.t +25 -0
  96. package/dist/_templates/init/service/02-scriptRunner.ts.t +7 -0
  97. package/dist/_templates/init/service/prompt.js +36 -0
  98. package/dist/_templates/init/service/prompt.js.map +1 -0
  99. package/dist/bin.js +6 -0
  100. package/dist/bin.js.map +1 -0
  101. package/dist/depsNames.js +45 -0
  102. package/dist/depsNames.js.map +1 -0
  103. package/dist/index.js +22 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/interfaces/_templates/add/action.js +3 -0
  106. package/dist/interfaces/_templates/add/action.js.map +1 -0
  107. package/dist/interfaces/_templates/add/eventListener.js +3 -0
  108. package/dist/interfaces/_templates/add/eventListener.js.map +1 -0
  109. package/dist/interfaces/_templates/add/externalEventListener.js +3 -0
  110. package/dist/interfaces/_templates/add/externalEventListener.js.map +1 -0
  111. package/dist/interfaces/_templates/add/generator.js +3 -0
  112. package/dist/interfaces/_templates/add/generator.js.map +1 -0
  113. package/dist/interfaces/_templates/add/model.js +3 -0
  114. package/dist/interfaces/_templates/add/model.js.map +1 -0
  115. package/dist/interfaces/_templates/add/scheduledTask.js +3 -0
  116. package/dist/interfaces/_templates/add/scheduledTask.js.map +1 -0
  117. package/dist/interfaces/_templates/add/task.js +3 -0
  118. package/dist/interfaces/_templates/add/task.js.map +1 -0
  119. package/dist/interfaces/_templates/add/test.js +3 -0
  120. package/dist/interfaces/_templates/add/test.js.map +1 -0
  121. package/dist/interfaces/_templates/init/matcher.js +9 -0
  122. package/dist/interfaces/_templates/init/matcher.js.map +1 -0
  123. package/dist/interfaces/_templates/init/package.js +3 -0
  124. package/dist/interfaces/_templates/init/package.js.map +1 -0
  125. package/dist/interfaces/_templates/init/service.js +11 -0
  126. package/dist/interfaces/_templates/init/service.js.map +1 -0
  127. package/dist/interfaces/index.js +3 -0
  128. package/dist/interfaces/index.js.map +1 -0
  129. package/dist/interfaces/prompt/autocomplete.js +3 -0
  130. package/dist/interfaces/prompt/autocomplete.js.map +1 -0
  131. package/dist/interfaces/prompt/multiselect.js +3 -0
  132. package/dist/interfaces/prompt/multiselect.js.map +1 -0
  133. package/dist/interfaces/prompt/select.js +9 -0
  134. package/dist/interfaces/prompt/select.js.map +1 -0
  135. package/dist/prompt/autocomplete.js +12 -0
  136. package/dist/prompt/autocomplete.js.map +1 -0
  137. package/dist/prompt/index.js +12 -0
  138. package/dist/prompt/index.js.map +1 -0
  139. package/dist/prompt/select/baseSelect.js +12 -0
  140. package/dist/prompt/select/baseSelect.js.map +1 -0
  141. package/dist/prompt/select/multiselect.js +15 -0
  142. package/dist/prompt/select/multiselect.js.map +1 -0
  143. package/dist/prompt/select/yesNoSelect.js +17 -0
  144. package/dist/prompt/select/yesNoSelect.js.map +1 -0
  145. package/dist/utils.js +29 -0
  146. package/dist/utils.js.map +1 -0
  147. package/package.json +66 -0
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_path_1 = __importDefault(require("node:path"));
7
+ const lodash_1 = require("lodash");
8
+ exports.default = {
9
+ prompt: async ({ prompter }) => {
10
+ const { eventEnumKey } = await prompter.prompt({
11
+ type: 'input',
12
+ name: 'eventEnumKey',
13
+ message: "What's your InternalEvent enum key?",
14
+ required: true,
15
+ });
16
+ const fileName = `${(0, lodash_1.camelCase)(eventEnumKey)}.ts`;
17
+ const eventPath = node_path_1.default.resolve(process.cwd(), 'src/eventListeners', fileName);
18
+ const eventInterfacePath = node_path_1.default.resolve(process.cwd(), 'src/interfaces/eventListeners', fileName);
19
+ return { eventEnumKey, eventPath, eventInterfacePath };
20
+ },
21
+ };
22
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/eventListener/prompt.ts"],"names":[],"mappings":";;;;;AAAA,0DAA4B;AAE5B,mCAAkC;AAKlC,kBAAe;IACX,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAU,EAAoB,EAAE;QACrD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC3C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,qCAAqC;YAC9C,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,GAAG,IAAA,kBAAS,EAAC,YAAY,CAAC,KAAK,CAAA;QAChD,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QAC7E,MAAM,kBAAkB,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,+BAA+B,EAAE,QAAQ,CAAC,CAAA;QAEjG,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC1D,CAAC;CACJ,CAAA"}
@@ -0,0 +1,16 @@
1
+ ---
2
+ to: <%= eventPath %>
3
+ ---
4
+
5
+ import { EventBusListener, ExternalEvent } from '@diia-inhouse/diia-queue'
6
+ import { ValidationSchema } from '@diia-inhouse/validators'
7
+
8
+ import { ExternalEventPayload } from '@interfaces/externalEventListeners/<%= h.changeCase.camel(eventEnumKey) %>'
9
+
10
+ export default class <%= eventEnumKey %>EventListener implements EventBusListener {
11
+ readonly event: ExternalEvent = ExternalEvent.<%= eventEnumKey %>
12
+
13
+ readonly isSync: boolean = true
14
+
15
+ readonly validationRules: ValidationSchema<ExternalEventPayload> = {}
16
+ }
@@ -0,0 +1,5 @@
1
+ ---
2
+ to: <%= eventInterfacePath %>
3
+ ---
4
+
5
+ export interface ExternalEventPayload {}
@@ -0,0 +1,3 @@
1
+ ---
2
+ sh: "npx prettier --write <%= eventPath %> <%= eventInterfacePath %>"
3
+ ---
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_path_1 = __importDefault(require("node:path"));
7
+ const lodash_1 = require("lodash");
8
+ exports.default = {
9
+ prompt: async ({ prompter }) => {
10
+ const { eventEnumKey } = await prompter.prompt({
11
+ type: 'input',
12
+ name: 'eventEnumKey',
13
+ message: "What's your ExternalEvent enum key?",
14
+ required: true,
15
+ });
16
+ const fileName = `${(0, lodash_1.camelCase)(eventEnumKey)}.ts`;
17
+ const eventPath = node_path_1.default.resolve(process.cwd(), 'src/externalEventListeners', fileName);
18
+ const eventInterfacePath = node_path_1.default.resolve(process.cwd(), 'src/interfaces/externalEventListeners', fileName);
19
+ return { eventEnumKey, eventPath, eventInterfacePath };
20
+ },
21
+ };
22
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/externalEventListener/prompt.ts"],"names":[],"mappings":";;;;;AAAA,0DAA4B;AAE5B,mCAAkC;AAKlC,kBAAe;IACX,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAU,EAAoB,EAAE;QACrD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC3C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,qCAAqC;YAC9C,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,GAAG,IAAA,kBAAS,EAAC,YAAY,CAAC,KAAK,CAAA;QAChD,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,4BAA4B,EAAE,QAAQ,CAAC,CAAA;QACrF,MAAM,kBAAkB,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uCAAuC,EAAE,QAAQ,CAAC,CAAA;QAEzG,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC1D,CAAC;CACJ,CAAA"}
@@ -0,0 +1,7 @@
1
+ ---
2
+ to: <%= generatorInterfacePath %>.ts
3
+ ---
4
+
5
+ export interface Answers {
6
+ name: string
7
+ }
@@ -0,0 +1,19 @@
1
+ ---
2
+ to: <%= generatorPath %>/prompt.ts
3
+ ---
4
+ import {Answers} from '<%= generatorRelativeInterfacePath %>'
5
+
6
+ import { Prompt } from '../../../interfaces'
7
+
8
+ export default {
9
+ prompt: async ({ prompter }: Prompt): Promise<Answers> => {
10
+ const { name } = await prompter.prompt({
11
+ type: 'input',
12
+ name: 'name',
13
+ message: "input name",
14
+ required: true,
15
+ })
16
+
17
+ return { name }
18
+ },
19
+ }
@@ -0,0 +1,7 @@
1
+ ---
2
+ to: <%= scriptRunnerPath %>
3
+ ---
4
+
5
+ ---
6
+ sh: ""
7
+ ---
@@ -0,0 +1,3 @@
1
+ ---
2
+ sh: "npm run lint-fix"
3
+ ---
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_fs_1 = __importDefault(require("node:fs"));
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const prompt_1 = require("../../../prompt");
9
+ const NEW_GENERATOR_TYPE = 'new-type';
10
+ function getGeneratorTypes() {
11
+ const generatorsPath = node_path_1.default.resolve(process.cwd(), 'src/_templates');
12
+ const generators = node_fs_1.default
13
+ .readdirSync(generatorsPath, { withFileTypes: true })
14
+ .filter((entity) => entity.isDirectory())
15
+ .map((directory) => directory.name);
16
+ return [NEW_GENERATOR_TYPE, ...generators];
17
+ }
18
+ exports.default = {
19
+ prompt: async ({ prompter }) => {
20
+ const { generatorName } = await prompter.prompt({
21
+ type: 'input',
22
+ name: 'generatorName',
23
+ message: "What's your new generator name?",
24
+ required: true,
25
+ });
26
+ const generatorTypeAnswer = await (0, prompt_1.promptBaseSelect)({ message: "What's your new generator name?", choices: getGeneratorTypes() });
27
+ let generatorFolder = generatorTypeAnswer;
28
+ if (generatorTypeAnswer === NEW_GENERATOR_TYPE) {
29
+ const { newGeneratorType } = await prompter.prompt({
30
+ type: 'input',
31
+ name: 'newGeneratorType',
32
+ message: "What's your new generator type?",
33
+ required: true,
34
+ });
35
+ generatorFolder = newGeneratorType;
36
+ }
37
+ const withScriptRunner = await (0, prompt_1.promptYesNoSelect)({ message: 'Do you need to execute scripts after generation?' });
38
+ const generatorPath = node_path_1.default.resolve(process.cwd(), 'src/_templates', generatorFolder, generatorName);
39
+ const generatorInterfacePath = node_path_1.default.join(process.cwd(), 'src/interfaces/_templates', generatorFolder, generatorName);
40
+ const generatorRelativeInterfacePath = node_path_1.default.relative(generatorPath, generatorInterfacePath);
41
+ const scriptRunnerPath = withScriptRunner ? node_path_1.default.resolve(generatorPath, '02-scriptRunner.ts.t') : '';
42
+ return { generatorPath, generatorInterfacePath, generatorRelativeInterfacePath, scriptRunnerPath, generatorName };
43
+ },
44
+ };
45
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/generator/prompt.ts"],"names":[],"mappings":";;;;;AAAA,sDAAwB;AACxB,0DAA4B;AAI5B,4CAAqE;AAErE,MAAM,kBAAkB,GAAG,UAAU,CAAA;AAErC,SAAS,iBAAiB;IACtB,MAAM,cAAc,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAA;IAEpE,MAAM,UAAU,GAAG,iBAAE;SAChB,WAAW,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACpD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;SACxC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAEvC,OAAO,CAAC,kBAAkB,EAAE,GAAG,UAAU,CAAC,CAAA;AAC9C,CAAC;AAED,kBAAe;IACX,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAU,EAAoB,EAAE;QACrD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC5C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,iCAAiC;YAC1C,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAA;QAEF,MAAM,mBAAmB,GAAG,MAAM,IAAA,yBAAgB,EAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAA;QAEhI,IAAI,eAAe,GAAG,mBAAmB,CAAA;QAEzC,IAAI,mBAAmB,KAAK,kBAAkB,EAAE,CAAC;YAC7C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBAC/C,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,iCAAiC;gBAC1C,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAA;YAEF,eAAe,GAAG,gBAAgB,CAAA;QACtC,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,0BAAiB,EAAC,EAAE,OAAO,EAAE,kDAAkD,EAAE,CAAC,CAAA;QAEjH,MAAM,aAAa,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAA;QACnG,MAAM,sBAAsB,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,2BAA2B,EAAE,eAAe,EAAE,aAAa,CAAC,CAAA;QACpH,MAAM,8BAA8B,GAAG,mBAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAA;QAE3F,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAEpG,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAA;IACrH,CAAC;CACJ,CAAA"}
@@ -0,0 +1,8 @@
1
+ ---
2
+ to: <%= interfacePath %>
3
+ ---
4
+ import { Document } from 'mongoose'
5
+
6
+ export interface <%= h.changeCase.pascal(name) %> {}
7
+
8
+ export interface <%= h.changeCase.pascal(name) %>Model extends <%= h.changeCase.pascal(name) %>, Document {}
@@ -0,0 +1,16 @@
1
+ ---
2
+ to: <%= modelPath %>
3
+ ---
4
+
5
+ import { Model, Schema, model, models } from 'mongoose'
6
+
7
+ import {
8
+ <%= h.changeCase.pascal(name) %>
9
+ } from '@interfaces/models/<%= name %>'
10
+
11
+ export const <%= name %>Schema = new Schema<<%= h.changeCase.pascal(name) %>>(
12
+ {},
13
+ { timestamps: true },
14
+ )
15
+
16
+ export default <Model<<%= h.changeCase.pascal(name) %>>>models.<%= h.changeCase.pascal(name) %> || model('<%= h.changeCase.pascal(name) %>', <%= name %>Schema)
@@ -0,0 +1,3 @@
1
+ ---
2
+ sh: "npx prettier --write <%= modelPath %> <%= interfacePath%> "
3
+ ---
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_path_1 = __importDefault(require("node:path"));
7
+ exports.default = {
8
+ prompt: async ({ prompter }) => {
9
+ const { name } = await prompter.prompt({
10
+ type: 'input',
11
+ name: 'name',
12
+ message: "What's your new model name?",
13
+ required: true,
14
+ });
15
+ const modelPath = node_path_1.default.resolve(process.cwd(), 'src/models', `${name}.ts`);
16
+ const interfacePath = node_path_1.default.resolve(process.cwd(), 'src/interfaces/models', `${name}.ts`);
17
+ return { name, modelPath, interfacePath };
18
+ },
19
+ };
20
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/model/prompt.ts"],"names":[],"mappings":";;;;;AAAA,0DAA4B;AAK5B,kBAAe;IACX,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAU,EAAoB,EAAE;QACrD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACnC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,6BAA6B;YACtC,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,GAAG,IAAI,KAAK,CAAC,CAAA;QACzE,MAAM,aAAa,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,GAAG,IAAI,KAAK,CAAC,CAAA;QAExF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;IAC7C,CAAC;CACJ,CAAA"}
@@ -0,0 +1,12 @@
1
+ ---
2
+ to: <%= scheduledTaskPath %>
3
+ ---
4
+
5
+ import { EventBusListener, ScheduledTaskEvent } from '@diia-inhouse/diia-queue'
6
+
7
+ export default class <%= taskEnumKey %>Task implements EventBusListener {
8
+ readonly event: ScheduledTaskEvent = ScheduledTaskEvent.<%= taskEnumKey %>
9
+
10
+ async handler(): Promise<void> {}
11
+ }
12
+
@@ -0,0 +1,3 @@
1
+ ---
2
+ sh: "npx prettier --write <%= scheduledTaskPath %>"
3
+ ---
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_path_1 = __importDefault(require("node:path"));
7
+ const lodash_1 = require("lodash");
8
+ exports.default = {
9
+ prompt: async ({ prompter }) => {
10
+ const { taskEnumKey } = await prompter.prompt({
11
+ type: 'input',
12
+ name: 'taskEnumKey',
13
+ message: "What's your ScheduledTask enum key?",
14
+ required: true,
15
+ });
16
+ const scheduledTaskPath = node_path_1.default.resolve(process.cwd(), 'src/scheduledTasks', `${(0, lodash_1.camelCase)(taskEnumKey)}.ts`);
17
+ return { taskEnumKey, scheduledTaskPath };
18
+ },
19
+ };
20
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/scheduledTask/prompt.ts"],"names":[],"mappings":";;;;;AAAA,0DAA4B;AAE5B,mCAAkC;AAKlC,kBAAe;IACX,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAU,EAAoB,EAAE;QACrD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,qCAAqC;YAC9C,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAA;QAEF,MAAM,iBAAiB,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,EAAE,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAE3G,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAC7C,CAAC;CACJ,CAAA"}
@@ -0,0 +1,5 @@
1
+ ---
2
+ to: <%= taskInterfacePath %>
3
+ ---
4
+
5
+ <%= isTaskWithValidation ? "export interface TaskPayload {}" : '' %>
@@ -0,0 +1,29 @@
1
+ ---
2
+ to: <%= taskPath %>
3
+ ---
4
+
5
+ import { TaskListener } from '@diia-inhouse/diia-queue'
6
+
7
+ <% if (isTaskWithValidation) { %>
8
+ import { ValidationSchema } from '@diia-inhouse/validators'
9
+ import { ExternalEventPayload } from '@interfaces/externalEventListeners/<%= h.changeCase.camel(taskEnumKey) %>'
10
+ import { TaskPayload } from '@interfaces/tasks/<%= h.changeCase.camel(taskEnumKey) %>'
11
+ <% } %>
12
+
13
+
14
+ import { ServiceTask } from '@interfaces/tasks'
15
+
16
+ export default class <%= taskEnumKey %>Task implements TaskListener {
17
+ readonly name: string = ServiceTask.<%= taskEnumKey %>
18
+
19
+ <% if (isDelayedTask) { %>
20
+ readonly isDelayed: boolean = true
21
+ <% } %>
22
+
23
+
24
+ <% if (isTaskWithValidation) { %>
25
+ readonly validationRules: ValidationSchema<TaskPayload> = {}
26
+ <% } %>
27
+
28
+ async handler(<%= isTaskWithValidation ? "payload: TaskPayload" : '' %>): Promise<void> {}
29
+ }
@@ -0,0 +1,5 @@
1
+ ---
2
+ sh: "npx prettier --write <%= taskPath %> <% taskInterfacePath %>"
3
+ ---
4
+
5
+
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_path_1 = __importDefault(require("node:path"));
7
+ const lodash_1 = require("lodash");
8
+ const select_1 = require("../../../interfaces/prompt/select");
9
+ const prompt_1 = require("../../../prompt");
10
+ exports.default = {
11
+ prompt: async ({ prompter }) => {
12
+ const { taskEnumKey } = await prompter.prompt({
13
+ type: 'input',
14
+ name: 'taskEnumKey',
15
+ message: "What's your ServiceTask enum key?",
16
+ required: true,
17
+ });
18
+ const isTaskWithValidation = await (0, prompt_1.promptYesNoSelect)({
19
+ message: 'Do you need validation?',
20
+ initial: select_1.YesNoAnswer.Yes,
21
+ });
22
+ const isDelayedTask = await (0, prompt_1.promptYesNoSelect)({
23
+ message: 'Do you need delayed task?',
24
+ initial: select_1.YesNoAnswer.Yes,
25
+ });
26
+ const fileName = `${(0, lodash_1.camelCase)(taskEnumKey)}.ts`;
27
+ const taskPath = node_path_1.default.resolve(process.cwd(), 'src/tasks', fileName);
28
+ const taskInterfacePath = isTaskWithValidation ? node_path_1.default.resolve(process.cwd(), 'src/interfaces/tasks', fileName) : '';
29
+ return { taskEnumKey, taskPath, isTaskWithValidation, taskInterfacePath, isDelayedTask };
30
+ },
31
+ };
32
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/task/prompt.ts"],"names":[],"mappings":";;;;;AAAA,0DAA4B;AAE5B,mCAAkC;AAIlC,8DAA+D;AAC/D,4CAAmD;AAEnD,kBAAe;IACX,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAU,EAAoB,EAAE;QACrD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,mCAAmC;YAC5C,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAA;QAEF,MAAM,oBAAoB,GAAG,MAAM,IAAA,0BAAiB,EAAC;YACjD,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,oBAAW,CAAC,GAAG;SAC3B,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,MAAM,IAAA,0BAAiB,EAAC;YAC1C,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,oBAAW,CAAC,GAAG;SAC3B,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,KAAK,CAAA;QAC/C,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QACnE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAEnH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAA;IAC5F,CAAC;CACJ,CAAA"}
@@ -0,0 +1,5 @@
1
+ ---
2
+ to: <%= testPath %>
3
+ ---
4
+
5
+ <%- include(sharedTemplatePath, {name, relativeInterfacePath, relateActionPathFromTest}) %>
@@ -0,0 +1,3 @@
1
+ ---
2
+ sh: "npx prettier --write <%= testPath %>"
3
+ ---
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_fs_1 = __importDefault(require("node:fs"));
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const autocomplete_1 = require("../../../prompt/autocomplete");
9
+ const utils_1 = require("../../../utils");
10
+ async function walker() {
11
+ const acc = [];
12
+ const rootActionsFolderPath = node_path_1.default.resolve(process.cwd(), 'src/actions');
13
+ const fn = async (currentFolderPath) => {
14
+ const readdirResult = node_fs_1.default.readdirSync(currentFolderPath, { withFileTypes: true });
15
+ for (const file of readdirResult.filter((entity) => entity.isFile())) {
16
+ const from = node_path_1.default.resolve(process.cwd(), 'src');
17
+ const currentFilePath = node_path_1.default.join(currentFolderPath, node_path_1.default.parse(file.name).name);
18
+ const relativeFilePath = node_path_1.default.relative(from, currentFilePath);
19
+ acc.push(relativeFilePath);
20
+ }
21
+ const folders = readdirResult.filter((entity) => entity.isDirectory()).map((folder) => node_path_1.default.join(currentFolderPath, folder.name));
22
+ await Promise.all(folders.map((folder) => fn(folder)));
23
+ };
24
+ await fn(rootActionsFolderPath);
25
+ return acc;
26
+ }
27
+ exports.default = {
28
+ prompt: async () => {
29
+ const actionPath = await (0, autocomplete_1.promptAutoComplete)({
30
+ name: 'action',
31
+ message: 'Choose action folder',
32
+ choices: await walker(),
33
+ });
34
+ const actionName = node_path_1.default.basename(actionPath);
35
+ const testPath = node_path_1.default.join('tests', 'integration', `${actionPath}.spec.ts`);
36
+ const relativeInterfacePathFromTest = node_path_1.default.join('@interfaces', actionPath);
37
+ const relateActionPathFromTest = node_path_1.default.join('@src', actionPath);
38
+ const result = {
39
+ sharedTemplatePath: (0, utils_1.getSharedTemplate)('actionTest.t'),
40
+ testPath,
41
+ name: actionName,
42
+ relativeInterfacePath: relativeInterfacePathFromTest,
43
+ relateActionPathFromTest,
44
+ };
45
+ return result;
46
+ },
47
+ };
48
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/test/prompt.ts"],"names":[],"mappings":";;;;;AAAA,sDAAwB;AACxB,0DAA4B;AAG5B,+DAAiE;AACjE,0CAAkD;AAElD,KAAK,UAAU,MAAM;IACjB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,MAAM,qBAAqB,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAA;IAExE,MAAM,EAAE,GAAG,KAAK,EAAE,iBAAyB,EAAiB,EAAE;QAC1D,MAAM,aAAa,GAAG,iBAAE,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAEhF,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAA;YAC/C,MAAM,eAAe,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;YAEhF,MAAM,gBAAgB,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;YAE7D,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC9B,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAEjI,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAA;IAED,MAAM,EAAE,CAAC,qBAAqB,CAAC,CAAA;IAE/B,OAAO,GAAG,CAAA;AACd,CAAC;AAED,kBAAe;IACX,MAAM,EAAE,KAAK,IAAsB,EAAE;QACjC,MAAM,UAAU,GAAG,MAAM,IAAA,iCAAkB,EAAC;YACxC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,sBAAsB;YAC/B,OAAO,EAAE,MAAM,MAAM,EAAE;SAC1B,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAE5C,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,UAAU,UAAU,CAAC,CAAA;QAC3E,MAAM,6BAA6B,GAAG,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;QAC1E,MAAM,wBAAwB,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAE9D,MAAM,MAAM,GAAG;YACX,kBAAkB,EAAE,IAAA,yBAAiB,EAAC,cAAc,CAAC;YAErD,QAAQ;YACR,IAAI,EAAE,UAAU;YAChB,qBAAqB,EAAE,6BAA6B;YACpD,wBAAwB;SAC3B,CAAA;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;CACJ,CAAA"}
@@ -0,0 +1,5 @@
1
+ ---
2
+ to: <%= rootMatcherPath %>
3
+ ---
4
+
5
+ export { <%= name %> } from './<%= name %>'
@@ -0,0 +1,8 @@
1
+ ---
2
+ inject: true
3
+ to: <%= overrideSetupFilePath %>
4
+ ---
5
+ import * as matchers from './matchers'
6
+
7
+ expect.extend(matchers)
8
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ to: <%= jestTypesDeclarationPath %>
3
+ force: true
4
+ ---
5
+
6
+ /// <reference types="@diia-inhouse/configs/jest/types" />
7
+
8
+ declare namespace jest {
9
+ interface Matchers<R> {
10
+ <%= tsConfigPath %>(): any
11
+ }
12
+
13
+ interface Expect {
14
+ <%= tsConfigPath %>(): any
15
+ }
16
+ }
@@ -0,0 +1,5 @@
1
+ ---
2
+ to: <%= matcherPath %>
3
+ ---
4
+
5
+ export function <%= name %>(): unkown {}
@@ -0,0 +1,8 @@
1
+ ---
2
+ unless_exists: true
3
+ to: <%= newSetupFilePath %>
4
+ ---
5
+ import * as matchers from './matchers'
6
+
7
+ expect.extend(matchers)
8
+
@@ -0,0 +1,6 @@
1
+ ---
2
+ to: <%= tsConfigPath %>
3
+ force: true
4
+ ---
5
+
6
+ <%- JSON.stringify(tsConfigContent, null, 2) %>
@@ -0,0 +1,3 @@
1
+ ---
2
+ sh: "npx prettier --write <%= tsConfigPath %> <%= matcherPath %> <%= jestTypesDeclarationPath %>"
3
+ ---
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_fs_1 = __importDefault(require("node:fs"));
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const matcher_1 = require("../../../interfaces/_templates/init/matcher");
10
+ const prompt_1 = require("../../../prompt");
11
+ const MATCHERS_FOLDER_NAME = 'matchers';
12
+ exports.default = {
13
+ prompt: async ({ prompter }) => {
14
+ const testsPath = node_path_1.default.resolve(process.cwd(), 'tests');
15
+ const existingMatchers = Object.values(matcher_1.ProjectJestType).filter((projectType) => {
16
+ const matcherPath = node_path_1.default.resolve(testsPath, projectType, MATCHERS_FOLDER_NAME);
17
+ return node_fs_1.default.existsSync(matcherPath);
18
+ });
19
+ if (existingMatchers.length > 0) {
20
+ console.log('\n');
21
+ for (const projectJestType of existingMatchers) {
22
+ console.log(chalk_1.default.red.bold(`${projectJestType} matchers already exists!\r`));
23
+ }
24
+ throw new Error('Matchers are already initialized');
25
+ }
26
+ const { name } = await prompter.prompt({
27
+ type: 'input',
28
+ name: 'name',
29
+ message: "\nWhat's your new matcher name?",
30
+ required: true,
31
+ });
32
+ const projectFolder = await (0, prompt_1.promptAutoComplete)({
33
+ name: 'projectFolder',
34
+ message: 'Select jest-project where do you want use new matcher \r',
35
+ choices: Object.values(matcher_1.ProjectJestType),
36
+ });
37
+ const matcherFolderPath = node_path_1.default.resolve(testsPath, projectFolder, MATCHERS_FOLDER_NAME);
38
+ const rootMatcherPath = node_path_1.default.resolve(matcherFolderPath, 'index.ts');
39
+ const isRootMatcherExists = node_fs_1.default.existsSync(rootMatcherPath);
40
+ if (isRootMatcherExists) {
41
+ console.log(chalk_1.default.red.bold(`${rootMatcherPath} already exists!\r`));
42
+ throw new Error('You can use this scaffold only for matcher initialization');
43
+ }
44
+ const matcherPath = node_path_1.default.resolve(matcherFolderPath, `${name}.ts`);
45
+ const jestTypesDeclarationPath = node_path_1.default.resolve(testsPath, 'jest.d.ts');
46
+ const isJestTypesDeclarationExists = node_fs_1.default.existsSync(jestTypesDeclarationPath);
47
+ let rootTsConfigPath = node_path_1.default.resolve(process.cwd(), 'tsconfig.json');
48
+ let extendedTsConfig = '';
49
+ if (isJestTypesDeclarationExists) {
50
+ console.log(chalk_1.default.red.bold(`${jestTypesDeclarationPath} already exists!\r`));
51
+ console.log(chalk_1.default.red.bold('This file will be override\r'));
52
+ rootTsConfigPath = '';
53
+ }
54
+ else {
55
+ if (!node_fs_1.default.existsSync(rootTsConfigPath)) {
56
+ throw new Error('You can use this scaffold only inside ts-project');
57
+ }
58
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
59
+ const tsConfig = require(rootTsConfigPath);
60
+ extendedTsConfig = { ...tsConfig, include: [...tsConfig.include, 'tests/jest.d.ts'] };
61
+ }
62
+ const setupFilePath = node_path_1.default.resolve(testsPath, projectFolder, 'setup.ts');
63
+ const isSetupFileExists = node_fs_1.default.existsSync(setupFilePath);
64
+ const [newSetupFilePath, overrideSetupFilePath] = isSetupFileExists ? [undefined, setupFilePath] : [setupFilePath, undefined];
65
+ return {
66
+ name,
67
+ matcherPath,
68
+ rootMatcherPath,
69
+ jestTypesDeclarationPath,
70
+ tsConfigPath: rootTsConfigPath,
71
+ tsConfigContent: extendedTsConfig,
72
+ newSetupFilePath,
73
+ overrideSetupFilePath,
74
+ };
75
+ },
76
+ };
77
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/init/matchers/prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ ---
2
+ to: <%= packageName %>/.eslintignore
3
+ ---
4
+
5
+ node_modules
6
+ dist
7
+ coverage
@@ -0,0 +1,8 @@
1
+ ---
2
+ to: <%= packageName %>/.gitignore
3
+ ---
4
+ .vscode
5
+ dist
6
+ node_modules
7
+ .DS_Store
8
+ src/generated
@@ -0,0 +1,13 @@
1
+ ---
2
+ to: <%= packageName %>/.gitlab-ci.yml
3
+ ---
4
+
5
+ variables:
6
+ LINT_COMMIT: 'true'
7
+ RUN_UNIT_TESTS: 'true'
8
+ NODE_PACKAGE_MANAGER: 'npm'
9
+
10
+ include:
11
+ project: diia-inhouse/ci
12
+ ref: main
13
+ file: main/package.gitlab-ci.yaml
@@ -0,0 +1,5 @@
1
+ ---
2
+ to: <%= packageName %>/.prettierignore
3
+ ---
4
+
5
+ dist