@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.
- package/LICENCE.md +287 -0
- package/README.md +93 -0
- package/dist/_sharedTemplates/actionTest.t +36 -0
- package/dist/_templates/add/action/01-action.ts.t +34 -0
- package/dist/_templates/add/action/01-test.ts.t +37 -0
- package/dist/_templates/add/action/01.interface.ts.t +15 -0
- package/dist/_templates/add/action/02-scriptRunner.t +3 -0
- package/dist/_templates/add/action/dict.js +18 -0
- package/dist/_templates/add/action/dict.js.map +1 -0
- package/dist/_templates/add/action/prompt.js +88 -0
- package/dist/_templates/add/action/prompt.js.map +1 -0
- package/dist/_templates/add/eventListener/01-event.ts.t +18 -0
- package/dist/_templates/add/eventListener/01-interface.ts.t +5 -0
- package/dist/_templates/add/eventListener/02-scriptRunner.ts.t +3 -0
- package/dist/_templates/add/eventListener/prompt.js +22 -0
- package/dist/_templates/add/eventListener/prompt.js.map +1 -0
- package/dist/_templates/add/externalEventListener/01-event.ts.t +16 -0
- package/dist/_templates/add/externalEventListener/01-interface.ts.t +5 -0
- package/dist/_templates/add/externalEventListener/02-scriptRunner.t +3 -0
- package/dist/_templates/add/externalEventListener/prompt.js +22 -0
- package/dist/_templates/add/externalEventListener/prompt.js.map +1 -0
- package/dist/_templates/add/generator/01-interface.ts.t +7 -0
- package/dist/_templates/add/generator/01-prompt.ts.t +19 -0
- package/dist/_templates/add/generator/02-scriptRunner.ts.t +7 -0
- package/dist/_templates/add/generator/03-scriptRunner.ts.t +3 -0
- package/dist/_templates/add/generator/prompt.js +45 -0
- package/dist/_templates/add/generator/prompt.js.map +1 -0
- package/dist/_templates/add/model/01-interfaces.model.ts.t +8 -0
- package/dist/_templates/add/model/01-model.ts.t +16 -0
- package/dist/_templates/add/model/02-scriptRunner.ts.t +3 -0
- package/dist/_templates/add/model/prompt.js +20 -0
- package/dist/_templates/add/model/prompt.js.map +1 -0
- package/dist/_templates/add/scheduledTask/01-task.ts.t +12 -0
- package/dist/_templates/add/scheduledTask/02-scriptRunner.t +3 -0
- package/dist/_templates/add/scheduledTask/prompt.js +20 -0
- package/dist/_templates/add/scheduledTask/prompt.js.map +1 -0
- package/dist/_templates/add/task/01-interface.ts.t +5 -0
- package/dist/_templates/add/task/01-task.ts.t +29 -0
- package/dist/_templates/add/task/02-scriptRunner.t +5 -0
- package/dist/_templates/add/task/prompt.js +32 -0
- package/dist/_templates/add/task/prompt.js.map +1 -0
- package/dist/_templates/add/test/01-test.ts.t +5 -0
- package/dist/_templates/add/test/02-scriptRunner.ts.t +3 -0
- package/dist/_templates/add/test/prompt.js +48 -0
- package/dist/_templates/add/test/prompt.js.map +1 -0
- package/dist/_templates/init/matchers/01-index.ts.t +5 -0
- package/dist/_templates/init/matchers/01-inject-setup.ts.t +8 -0
- package/dist/_templates/init/matchers/01-jest.d.ts.t +16 -0
- package/dist/_templates/init/matchers/01-matcher.ts.t +5 -0
- package/dist/_templates/init/matchers/01-new-setup.ts.t +8 -0
- package/dist/_templates/init/matchers/01-tsconfig.json.t +6 -0
- package/dist/_templates/init/matchers/02-scriptRunner.ts.t +3 -0
- package/dist/_templates/init/matchers/prompt.js +77 -0
- package/dist/_templates/init/matchers/prompt.js.map +1 -0
- package/dist/_templates/init/package/01-.eslintignore.t +7 -0
- package/dist/_templates/init/package/01-.gitignore.t +8 -0
- package/dist/_templates/init/package/01-.gitlab-ci.yml.t +13 -0
- package/dist/_templates/init/package/01-.prettierignore.t +5 -0
- package/dist/_templates/init/package/01-package.json.t +48 -0
- package/dist/_templates/init/package/01-readme.md.t +7 -0
- package/dist/_templates/init/package/01-src.index.ts.t +7 -0
- package/dist/_templates/init/package/01-test.tsconfig.json.t +19 -0
- package/dist/_templates/init/package/01-test.unit.index.ts.t +13 -0
- package/dist/_templates/init/package/01-tsconfig.json.t +22 -0
- package/dist/_templates/init/package/02-scriptRunner.t +7 -0
- package/dist/_templates/init/package/prompt.js +26 -0
- package/dist/_templates/init/package/prompt.js.map +1 -0
- package/dist/_templates/init/service/01-.env.example.t +59 -0
- package/dist/_templates/init/service/01-.env.test.t +4 -0
- package/dist/_templates/init/service/01-.eslintignore.t +8 -0
- package/dist/_templates/init/service/01-.gitignore.t +11 -0
- package/dist/_templates/init/service/01-.gitlab-ci.yml.t +20 -0
- package/dist/_templates/init/service/01-.prettierignore.t +6 -0
- package/dist/_templates/init/service/01-dockerfile.t +38 -0
- package/dist/_templates/init/service/01-migrate-mongo-config.ts.t +8 -0
- package/dist/_templates/init/service/01-migrations.sample-migration.ts.t +18 -0
- package/dist/_templates/init/service/01-migrations.tsconfig.json.t +21 -0
- package/dist/_templates/init/service/01-package.json.t +68 -0
- package/dist/_templates/init/service/01-proto.service.proto.t +22 -0
- package/dist/_templates/init/service/01-readme.md.t +7 -0
- package/dist/_templates/init/service/01-src.actions.v1.getAddResult.ts.t +29 -0
- package/dist/_templates/init/service/01-src.bootstrap.ts.t +18 -0
- package/dist/_templates/init/service/01-src.config.ts.t +160 -0
- package/dist/_templates/init/service/01-src.deps.ts.t +14 -0
- package/dist/_templates/init/service/01-src.index.ts.t +14 -0
- package/dist/_templates/init/service/01-src.interfaces.actions.v1.getAddResult.ts.t +13 -0
- package/dist/_templates/init/service/01-src.interfaces.config.ts.t +7 -0
- package/dist/_templates/init/service/01-src.interfaces.deps.ts.t +9 -0
- package/dist/_templates/init/service/01-tests.integration.actionts.getAddResult.spec.ts.t +39 -0
- package/dist/_templates/init/service/01-tests.interfaces.ts.t +9 -0
- package/dist/_templates/init/service/01-tests.jest.d.ts.t +5 -0
- package/dist/_templates/init/service/01-tests.tsconfig.json.t +23 -0
- package/dist/_templates/init/service/01-tests.utils.getApp.ts.t +26 -0
- package/dist/_templates/init/service/01-tests.utils.getDeps.ts.t +23 -0
- package/dist/_templates/init/service/01-tsconfig.json.t +25 -0
- package/dist/_templates/init/service/02-scriptRunner.ts.t +7 -0
- package/dist/_templates/init/service/prompt.js +36 -0
- package/dist/_templates/init/service/prompt.js.map +1 -0
- package/dist/bin.js +6 -0
- package/dist/bin.js.map +1 -0
- package/dist/depsNames.js +45 -0
- package/dist/depsNames.js.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/_templates/add/action.js +3 -0
- package/dist/interfaces/_templates/add/action.js.map +1 -0
- package/dist/interfaces/_templates/add/eventListener.js +3 -0
- package/dist/interfaces/_templates/add/eventListener.js.map +1 -0
- package/dist/interfaces/_templates/add/externalEventListener.js +3 -0
- package/dist/interfaces/_templates/add/externalEventListener.js.map +1 -0
- package/dist/interfaces/_templates/add/generator.js +3 -0
- package/dist/interfaces/_templates/add/generator.js.map +1 -0
- package/dist/interfaces/_templates/add/model.js +3 -0
- package/dist/interfaces/_templates/add/model.js.map +1 -0
- package/dist/interfaces/_templates/add/scheduledTask.js +3 -0
- package/dist/interfaces/_templates/add/scheduledTask.js.map +1 -0
- package/dist/interfaces/_templates/add/task.js +3 -0
- package/dist/interfaces/_templates/add/task.js.map +1 -0
- package/dist/interfaces/_templates/add/test.js +3 -0
- package/dist/interfaces/_templates/add/test.js.map +1 -0
- package/dist/interfaces/_templates/init/matcher.js +9 -0
- package/dist/interfaces/_templates/init/matcher.js.map +1 -0
- package/dist/interfaces/_templates/init/package.js +3 -0
- package/dist/interfaces/_templates/init/package.js.map +1 -0
- package/dist/interfaces/_templates/init/service.js +11 -0
- package/dist/interfaces/_templates/init/service.js.map +1 -0
- package/dist/interfaces/index.js +3 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/prompt/autocomplete.js +3 -0
- package/dist/interfaces/prompt/autocomplete.js.map +1 -0
- package/dist/interfaces/prompt/multiselect.js +3 -0
- package/dist/interfaces/prompt/multiselect.js.map +1 -0
- package/dist/interfaces/prompt/select.js +9 -0
- package/dist/interfaces/prompt/select.js.map +1 -0
- package/dist/prompt/autocomplete.js +12 -0
- package/dist/prompt/autocomplete.js.map +1 -0
- package/dist/prompt/index.js +12 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/prompt/select/baseSelect.js +12 -0
- package/dist/prompt/select/baseSelect.js.map +1 -0
- package/dist/prompt/select/multiselect.js +15 -0
- package/dist/prompt/select/multiselect.js.map +1 -0
- package/dist/prompt/select/yesNoSelect.js +17 -0
- package/dist/prompt/select/yesNoSelect.js.map +1 -0
- package/dist/utils.js +29 -0
- package/dist/utils.js.map +1 -0
- 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,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,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,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,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,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,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,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,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,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,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,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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"}
|