@diia-inhouse/scaffold 2.17.0 → 2.22.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/dist/_sharedTemplates/actionTest.t +2 -2
- package/dist/_templates/add/action/01-action.ts.t +5 -10
- package/dist/_templates/add/action/01-test.ts.t +2 -2
- package/dist/_templates/add/action/02-scriptRunner.t +1 -1
- package/dist/_templates/add/action/prompt.js +0 -14
- package/dist/_templates/add/action/prompt.js.map +1 -1
- package/dist/_templates/add/test/01-test.ts.t +1 -1
- package/dist/_templates/add/test/prompt.js +0 -2
- package/dist/_templates/add/test/prompt.js.map +1 -1
- package/dist/_templates/init/package/01-package.json.t +2 -2
- package/dist/_templates/init/package/01-tsconfig.json.t +1 -2
- package/dist/_templates/init/service/01-.env.example.t +2 -1
- package/dist/_templates/init/service/01-.eslintignore.t +2 -1
- package/dist/_templates/init/service/01-.prettierignore.t +1 -1
- package/dist/_templates/init/service/01-dockerfile.t +1 -1
- package/dist/_templates/init/service/01-package.json.t +6 -3
- package/dist/_templates/init/service/01-src.actions.v1.getAddResult.ts.t +5 -9
- package/dist/_templates/init/service/01-src.bootstrap.ts.t +5 -1
- package/dist/_templates/init/service/01-src.config.ts.t +18 -11
- package/dist/_templates/init/service/01-src.deps.ts.t +2 -3
- package/dist/_templates/init/service/01-tests.integration.actionts.getAddResult.spec.ts.t +3 -2
- package/dist/_templates/init/service/01-tests.utils.getApp.ts.t +10 -10
- package/dist/_templates/init/service/01-tests.utils.getDeps.ts.t +4 -5
- package/dist/_templates/init/service/01-tsconfig.json.t +1 -2
- package/dist/_templates/init/service/prompt.js +1 -2
- package/dist/_templates/init/service/prompt.js.map +1 -1
- package/package.json +14 -15
- package/dist/_templates/add/action/01.interface.ts.t +0 -15
- package/dist/_templates/add/action/dict.js +0 -18
- package/dist/_templates/add/action/dict.js.map +0 -1
- package/dist/_templates/init/service/01-src.interfaces.actions.v1.getAddResult.ts.t +0 -13
|
@@ -4,7 +4,7 @@ import <%= h.changeCase.pascal(name) %>Action from '<%= relateActionPathFromTest
|
|
|
4
4
|
|
|
5
5
|
import { getApp } from '@tests/utils/getApp'
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { <%= h.changeCase.pascal(name) %>Res } from '@src/generated'
|
|
8
8
|
|
|
9
9
|
describe(`Action ${<%= h.changeCase.pascal(name) %>Action.name}`, () => {
|
|
10
10
|
let app: Awaited<ReturnType<typeof getApp>>
|
|
@@ -31,6 +31,6 @@ describe(`Action ${<%= h.changeCase.pascal(name) %>Action.name}`, () => {
|
|
|
31
31
|
const result = await action.handler({session, headers, params: {}})
|
|
32
32
|
|
|
33
33
|
// Assert
|
|
34
|
-
expect(result).toEqual
|
|
34
|
+
expect(result).toEqual<<%= h.changeCase.pascal(name) %>Res>({})
|
|
35
35
|
})
|
|
36
36
|
})
|
|
@@ -4,30 +4,25 @@ to: <%= actionPath %>
|
|
|
4
4
|
|
|
5
5
|
import { GrpcAppAction } from '@diia-inhouse/diia-app'
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { ActionContext } from '@diia-inhouse/types'
|
|
8
8
|
<% if (isActionWithValidation) { %>
|
|
9
9
|
import { ValidationSchema } from '@diia-inhouse/validators'
|
|
10
10
|
<% } %>
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import { <%= h.changeCase.pascal(name) %>Req, <%= h.changeCase.pascal(name) %>Res } from '@src/generated'
|
|
13
13
|
|
|
14
|
-
export default class <%= h.changeCase.pascal(name) %>Action implements GrpcAppAction {
|
|
14
|
+
export default class <%= h.changeCase.pascal(name) %>Action implements GrpcAppAction<ActionContext<<%= h.changeCase.pascal(name) %>Req>> {
|
|
15
15
|
constructor(private readonly service: unknown) {}
|
|
16
16
|
|
|
17
|
-
readonly sessionType: SessionType = SessionType.<%= sessionType %>
|
|
18
|
-
|
|
19
|
-
readonly actionVersion: ActionVersion = ActionVersion.V<%= version %>
|
|
20
|
-
|
|
21
17
|
readonly name: string = '<%= name %>'
|
|
22
18
|
|
|
23
19
|
<% if (isActionWithValidation) { %>
|
|
24
|
-
readonly validationRules: ValidationSchema
|
|
20
|
+
readonly validationRules: ValidationSchema<<%= h.changeCase.pascal(name) %>Req> = {}
|
|
25
21
|
<% } %>
|
|
26
22
|
|
|
27
|
-
async handler(args:
|
|
23
|
+
async handler(args: ActionContext<<%= h.changeCase.pascal(name) %>Req>): Promise<<%= h.changeCase.pascal(name) %>Res> {
|
|
28
24
|
const {
|
|
29
25
|
params: {},
|
|
30
|
-
<% if (sessionType === 'User') { %> session: { user }, <% } %>
|
|
31
26
|
} = args
|
|
32
27
|
}
|
|
33
28
|
}
|
|
@@ -7,7 +7,7 @@ import <%= h.changeCase.pascal(name) %>Action from '<%= relateActionPathFromTest
|
|
|
7
7
|
|
|
8
8
|
import { getApp } from '@tests/utils/getApp'
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { <%= h.changeCase.pascal(name) %>Req, <%= h.changeCase.pascal(name) %>Res } from '@src/generated'
|
|
11
11
|
|
|
12
12
|
describe(`Action ${<%= h.changeCase.pascal(name) %>Action.name}`, () => {
|
|
13
13
|
let app: Awaited<ReturnType<typeof getApp>>
|
|
@@ -32,6 +32,6 @@ describe(`Action ${<%= h.changeCase.pascal(name) %>Action.name}`, () => {
|
|
|
32
32
|
const result = await <%= name %>Action.handler({session, headers, params: {}})
|
|
33
33
|
|
|
34
34
|
// Assert
|
|
35
|
-
expect(result).toEqual
|
|
35
|
+
expect(result).toEqual<<%= h.changeCase.pascal(name) %>Res>({})
|
|
36
36
|
})
|
|
37
37
|
})
|
|
@@ -5,9 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
7
7
|
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
-
const types_1 = require("@diia-inhouse/types");
|
|
9
8
|
const prompt_1 = require("../../../prompt");
|
|
10
|
-
const dict_1 = require("./dict");
|
|
11
9
|
const ROOT_ACTION = '.';
|
|
12
10
|
const NEW_FOLDER = 'new-folder';
|
|
13
11
|
function getActionsFolder(versionFolder) {
|
|
@@ -58,28 +56,16 @@ exports.default = {
|
|
|
58
56
|
}
|
|
59
57
|
const newActionPath = actionFolder === ROOT_ACTION ? node_path_1.default.join(normalizedVersion, actionName) : node_path_1.default.join(normalizedVersion, actionFolder, actionName);
|
|
60
58
|
const finalActionPath = node_path_1.default.resolve(process.cwd(), 'src/actions', `${newActionPath}.ts`);
|
|
61
|
-
const finalInterfacePath = node_path_1.default.resolve(process.cwd(), 'src/interfaces/actions', `${newActionPath}.ts`);
|
|
62
|
-
const relativeInterfacePath = node_path_1.default.join('@interfaces/actions', newActionPath);
|
|
63
59
|
const testPath = node_path_1.default.resolve(process.cwd(), 'tests/integration/actions/', `${newActionPath}.spec.ts`);
|
|
64
60
|
const relateActionPathFromTest = node_path_1.default.join('@src/actions', newActionPath);
|
|
65
61
|
const isActionWithValidation = await (0, prompt_1.promptYesNoSelect)({
|
|
66
62
|
message: 'Do you need validation?',
|
|
67
63
|
});
|
|
68
|
-
const sessionType = await (0, prompt_1.promptAutoComplete)({
|
|
69
|
-
name: 'sessionType',
|
|
70
|
-
message: 'Pick SessionType for current action',
|
|
71
|
-
choices: Object.keys(types_1.SessionType),
|
|
72
|
-
});
|
|
73
|
-
const inheritedActionInterface = dict_1.mapSessionTypeToActionArguments[sessionType];
|
|
74
64
|
return {
|
|
75
65
|
name: actionName,
|
|
76
66
|
version,
|
|
77
67
|
actionPath: finalActionPath,
|
|
78
|
-
interfacePath: finalInterfacePath,
|
|
79
|
-
relativeInterfacePath,
|
|
80
68
|
isActionWithValidation,
|
|
81
|
-
inheritedActionInterface,
|
|
82
|
-
sessionType,
|
|
83
69
|
testPath,
|
|
84
70
|
relateActionPathFromTest,
|
|
85
71
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/action/prompt.ts"],"names":[],"mappings":";;;;;AAAA,sDAAwB;AACxB,0DAA4B;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/action/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,13 +33,11 @@ exports.default = {
|
|
|
33
33
|
});
|
|
34
34
|
const actionName = node_path_1.default.basename(actionPath);
|
|
35
35
|
const testPath = node_path_1.default.join('tests', 'integration', `${actionPath}.spec.ts`);
|
|
36
|
-
const relativeInterfacePathFromTest = node_path_1.default.join('@interfaces', actionPath);
|
|
37
36
|
const relateActionPathFromTest = node_path_1.default.join('@src', actionPath);
|
|
38
37
|
const result = {
|
|
39
38
|
sharedTemplatePath: (0, utils_1.getSharedTemplate)('actionTest.t'),
|
|
40
39
|
testPath,
|
|
41
40
|
name: actionName,
|
|
42
|
-
relativeInterfacePath: relativeInterfacePathFromTest,
|
|
43
41
|
relateActionPathFromTest,
|
|
44
42
|
};
|
|
45
43
|
return result;
|
|
@@ -1 +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,
|
|
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,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,wBAAwB;SAC3B,CAAA;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;CACJ,CAAA"}
|
|
@@ -10,7 +10,7 @@ to: <%= packageName %>/package.json
|
|
|
10
10
|
"main": "dist/index.js",
|
|
11
11
|
"types": "dist/types/index.d.ts",
|
|
12
12
|
"engines": {
|
|
13
|
-
"node": ">=
|
|
13
|
+
"node": ">=20"
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
16
16
|
"build": "tsc",
|
|
@@ -23,7 +23,7 @@ to: <%= packageName %>/package.json
|
|
|
23
23
|
"test": "jest",
|
|
24
24
|
"test:unit": "npm run test --selectProjects unit",
|
|
25
25
|
"find-circulars": "madge --circular --extensions ts ./",
|
|
26
|
-
"lint:lockfile": "lockfile-lint --path package-lock.json --allowed-hosts registry.npmjs.org --validate-https"
|
|
26
|
+
"lint:lockfile": "lockfile-lint --path package-lock.json --allowed-hosts registry.npmjs.org gitlab.diia.org.ua --validate-https"
|
|
27
27
|
},
|
|
28
28
|
"files": ["dist"],
|
|
29
29
|
"keywords": [],
|
|
@@ -14,8 +14,7 @@ to: <%= packageName %>/tsconfig.json
|
|
|
14
14
|
"@interfaces/*": ["src/interfaces/*"],
|
|
15
15
|
"@src/*": ["src/*"],
|
|
16
16
|
"@tests/*": ["tests/*"]
|
|
17
|
-
}
|
|
18
|
-
"plugins": [{ "transform": "typescript-transform-paths" }, { "transform": "typescript-transform-paths", "afterDeclarations": true }]
|
|
17
|
+
}
|
|
19
18
|
},
|
|
20
19
|
"include": ["src/**/*"],
|
|
21
20
|
"exclude": ["node_modules", "tests"]
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
to: <%= serviceName %>/.env.example
|
|
3
3
|
---
|
|
4
4
|
NODE_ENV=local
|
|
5
|
-
LOG_LEVEL=
|
|
5
|
+
LOG_LEVEL=info
|
|
6
6
|
|
|
7
7
|
TRANSPORT_TYPE=Redis
|
|
8
8
|
TRANSPORT_OPTIONS={"host":"localhost","port":"6379"}
|
|
@@ -55,5 +55,6 @@ HEALTH_CHECK_IS_ENABLED=false
|
|
|
55
55
|
HEALTH_CHECK_IS_PORT=4545
|
|
56
56
|
|
|
57
57
|
GRPC_SERVER_ENABLED=true
|
|
58
|
+
GRPC_REFLECTION_ENABLED=true
|
|
58
59
|
GRPC_SERVICES=["ua.gov.diia.<%= h.changeCase.pascalCase(serviceName).toLowerCase() %>.<%= h.changeCase.pascalCase(serviceName) %>"]
|
|
59
60
|
GRPC_SERVER_PORT=5<%= Math.floor(Math.random() * (999 - 100) + 100) %>
|
|
@@ -15,8 +15,8 @@ to: <%= serviceName %>/package.json
|
|
|
15
15
|
"semantic-release": "semantic-release",
|
|
16
16
|
"lint": "eslint --ext .ts . && prettier --check .",
|
|
17
17
|
"lint-fix": "eslint --ext .ts --fix && prettier --write .",
|
|
18
|
-
"lint:lockfile": "lockfile-lint --path package-lock.json --allowed-hosts registry.npmjs.org --validate-https",
|
|
19
|
-
"test": "jest",
|
|
18
|
+
"lint:lockfile": "lockfile-lint --path package-lock.json --allowed-hosts registry.npmjs.org gitlab.diia.org.ua --validate-https",
|
|
19
|
+
"test": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest",
|
|
20
20
|
"test:integration": "npm run test --selectProjects integration --",
|
|
21
21
|
<%if (h.isOptionSelected(selectedOptions, 'database')) {%>
|
|
22
22
|
"migrate-deploy": "npm run migrate up",
|
|
@@ -31,8 +31,11 @@ to: <%= serviceName %>/package.json
|
|
|
31
31
|
},
|
|
32
32
|
"keywords": [],
|
|
33
33
|
"engines": {
|
|
34
|
-
"node": ">=
|
|
34
|
+
"node": ">=20"
|
|
35
35
|
},
|
|
36
|
+
"files": [
|
|
37
|
+
"dist"
|
|
38
|
+
],
|
|
36
39
|
"_moduleAliases": {
|
|
37
40
|
"@services": "dist/services",
|
|
38
41
|
"@interfaces": "dist/interfaces",
|
|
@@ -4,24 +4,20 @@ to: <%= serviceName %>/src/actions/v1/getAddResult.ts
|
|
|
4
4
|
|
|
5
5
|
import { GrpcAppAction } from '@diia-inhouse/diia-app'
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { ActionContext } from '@diia-inhouse/types'
|
|
8
8
|
import { ValidationSchema } from '@diia-inhouse/validators'
|
|
9
9
|
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
export default class GetAddResult implements GrpcAppAction {
|
|
13
|
-
readonly sessionType = SessionType.None
|
|
14
|
-
|
|
15
|
-
readonly actionVersion = ActionVersion.V1
|
|
10
|
+
import { GetAddResultReq, GetAddResultRes } from '@src/generated'
|
|
16
11
|
|
|
12
|
+
export default class GetAddResultAction implements GrpcAppAction<ActionContext<GetAddResultReq>> {
|
|
17
13
|
readonly name = 'getAddResult'
|
|
18
14
|
|
|
19
|
-
readonly validationRules: ValidationSchema<
|
|
15
|
+
readonly validationRules: ValidationSchema<GetAddResultReq> = {
|
|
20
16
|
a: {type: 'number'},
|
|
21
17
|
b: {type: 'number'}
|
|
22
18
|
}
|
|
23
19
|
|
|
24
|
-
async handler(args:
|
|
20
|
+
async handler(args: ActionContext<GetAddResultReq>): Promise<GetAddResultRes> {
|
|
25
21
|
const { params: { a, b } } = args
|
|
26
22
|
|
|
27
23
|
return { result: a + b }
|
|
@@ -14,5 +14,9 @@ export async function bootstrap(serviceName: string): Promise<void> {
|
|
|
14
14
|
const app = new Application<ServiceContext<AppConfig, AppDeps>>(serviceName)
|
|
15
15
|
|
|
16
16
|
await app.setConfig(configFactory)
|
|
17
|
-
await app.setDeps(deps)
|
|
17
|
+
await app.setDeps(deps)
|
|
18
|
+
|
|
19
|
+
const appOperator = await app.initialize()
|
|
20
|
+
|
|
21
|
+
await appOperator.start()
|
|
18
22
|
}
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
to: <%= serviceName %>/src/config.ts
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { BaseConfig } from '@diia-inhouse/diia-app'
|
|
6
6
|
|
|
7
7
|
import { EnvService } from '@diia-inhouse/env'
|
|
8
|
-
import { HealthCheckConfig } from '@diia-inhouse/healthcheck'
|
|
9
8
|
|
|
10
9
|
<%if (h.isOptionSelected(selectedOptions, 'database')) {%>
|
|
11
10
|
import { AppDbConfig, ReplicaSetNodeConfig } from '@diia-inhouse/db'
|
|
@@ -26,23 +25,23 @@ import {
|
|
|
26
25
|
<%}%>
|
|
27
26
|
|
|
28
27
|
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
29
|
-
export default (envService: EnvService <%= h.isOptionSelected(selectedOptions, ['internal', 'external']) ? ", serviceName: string" : '' %>) => ({
|
|
30
|
-
transporter:
|
|
28
|
+
export default async (envService: EnvService <%= h.isOptionSelected(selectedOptions, ['internal', 'external']) ? ", serviceName: string" : '' %>) => ({
|
|
29
|
+
transporter: {
|
|
31
30
|
type: envService.getVar('TRANSPORT_TYPE'),
|
|
32
31
|
options: envService.getVar('TRANSPORT_OPTIONS', 'object', {}),
|
|
33
32
|
},
|
|
34
33
|
|
|
35
|
-
balancing:
|
|
34
|
+
balancing: {
|
|
36
35
|
strategy: envService.getVar('BALANCING_STRATEGY_NAME', 'string'),
|
|
37
36
|
strategyOptions: envService.getVar('BALANCING_STRATEGY_OPTIONS', 'object', {}),
|
|
38
37
|
},
|
|
39
38
|
|
|
40
|
-
healthCheck:
|
|
39
|
+
healthCheck: {
|
|
41
40
|
isEnabled: envService.getVar('HEALTH_CHECK_IS_ENABLED', 'boolean'),
|
|
42
41
|
port: envService.getVar('HEALTH_CHECK_IS_PORT', 'number', 4545),
|
|
43
42
|
},
|
|
44
43
|
|
|
45
|
-
metrics:
|
|
44
|
+
metrics: {
|
|
46
45
|
moleculer: {
|
|
47
46
|
prometheus: {
|
|
48
47
|
isEnabled: envService.getVar('METRICS_MOLECULER_PROMETHEUS_IS_ENABLED', 'boolean', true),
|
|
@@ -63,10 +62,18 @@ export default (envService: EnvService <%= h.isOptionSelected(selectedOptions, [
|
|
|
63
62
|
},
|
|
64
63
|
},
|
|
65
64
|
|
|
65
|
+
grpcServer: {
|
|
66
|
+
isEnabled: envService.getVar('GRPC_SERVER_ENABLED', 'boolean', false),
|
|
67
|
+
port: envService.getVar('GRPC_SERVER_PORT', 'number', 5000),
|
|
68
|
+
services: envService.getVar('GRPC_SERVICES', 'object'),
|
|
69
|
+
isReflectionEnabled: envService.getVar('GRPC_REFLECTION_ENABLED', 'boolean', false),
|
|
70
|
+
maxReceiveMessageLength: envService.getVar('GRPC_SERVER_MAX_RECEIVE_MESSAGE_LENGTH', 'number', 1024 * 1024 * 4),
|
|
71
|
+
},
|
|
72
|
+
|
|
66
73
|
grpc: {},
|
|
67
74
|
|
|
68
75
|
<%if (h.isOptionSelected(selectedOptions, 'database')) {%>
|
|
69
|
-
db:
|
|
76
|
+
db: {
|
|
70
77
|
database: envService.getVar('MONGO_DATABASE', 'string'),
|
|
71
78
|
replicaSet: envService.getVar('MONGO_REPLICA_SET', 'string'),
|
|
72
79
|
user: await envService.getSecret('MONGO_USER', { accessor: 'username', nullable: true }),
|
|
@@ -86,7 +93,7 @@ export default (envService: EnvService <%= h.isOptionSelected(selectedOptions, [
|
|
|
86
93
|
<%}%>
|
|
87
94
|
|
|
88
95
|
<%if (h.isOptionSelected(selectedOptions, 'external')) {%>
|
|
89
|
-
redis:
|
|
96
|
+
redis: {
|
|
90
97
|
readWrite: envService.getVar('REDIS_READ_WRITE_OPTIONS', 'object'),
|
|
91
98
|
|
|
92
99
|
readOnly: envService.getVar('REDIS_READ_ONLY_OPTIONS', 'object'),
|
|
@@ -94,7 +101,7 @@ export default (envService: EnvService <%= h.isOptionSelected(selectedOptions, [
|
|
|
94
101
|
<%}%>
|
|
95
102
|
|
|
96
103
|
<%if (h.isOptionSelected(selectedOptions, 'redis')) {%>
|
|
97
|
-
store:
|
|
104
|
+
store: {
|
|
98
105
|
readWrite: envService.getVar('STORE_READ_WRITE_OPTIONS', 'object'),
|
|
99
106
|
|
|
100
107
|
readOnly: envService.getVar('STORE_READ_ONLY_OPTIONS', 'object'),
|
|
@@ -102,7 +109,7 @@ export default (envService: EnvService <%= h.isOptionSelected(selectedOptions, [
|
|
|
102
109
|
<%}%>
|
|
103
110
|
|
|
104
111
|
<%if (h.isOptionSelected(selectedOptions, ['internal', 'external'])) {%>
|
|
105
|
-
rabbit:
|
|
112
|
+
rabbit: {
|
|
106
113
|
<%if (h.isOptionSelected(selectedOptions, 'internal')) {%>
|
|
107
114
|
[QueueConnectionType.Internal]: {
|
|
108
115
|
connection: {
|
|
@@ -7,8 +7,7 @@ import { DepsFactoryFn } from "@diia-inhouse/diia-app";
|
|
|
7
7
|
import { AppDeps } from "@interfaces/deps";
|
|
8
8
|
import { AppConfig } from "@interfaces/config";
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
): ReturnType<DepsFactoryFn<AppConfig, AppDeps>> => {
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
|
+
export default async (_config: AppConfig): ReturnType<DepsFactoryFn<AppConfig, AppDeps>> => {
|
|
13
12
|
return {};
|
|
14
13
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
to: <%= serviceName %>/tests/integration/actions/v1/
|
|
2
|
+
to: <%= serviceName %>/tests/integration/actions/v1/getAddResult.spec.ts
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
import TestKit from '@diia-inhouse/test'
|
|
6
6
|
|
|
7
7
|
import GetAddResultAction from '@src/actions/v1/getAddResult'
|
|
8
|
+
import { GetAddResultRes } from '@src/generated'
|
|
8
9
|
|
|
9
10
|
import { getApp } from '@tests/utils/getApp'
|
|
10
11
|
|
|
@@ -34,6 +35,6 @@ describe(`Action ${GetAddResultAction.name}`, () => {
|
|
|
34
35
|
const result = await getAddResult.handler({ params: { a, b }, session, headers })
|
|
35
36
|
|
|
36
37
|
// Assert
|
|
37
|
-
expect(result).toEqual({ result: 5 })
|
|
38
|
+
expect(result).toEqual<GetAddResultRes>({ result: 5 })
|
|
38
39
|
})
|
|
39
40
|
})
|
|
@@ -2,11 +2,7 @@
|
|
|
2
2
|
to: <%= serviceName %>/tests/utils/getApp.ts
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { Application, GrpcService, MoleculerService, ServiceContext, ServiceOperator } from '@diia-inhouse/diia-app'
|
|
8
|
-
|
|
9
|
-
import { mockClass } from '@diia-inhouse/test'
|
|
5
|
+
import { Application, ServiceContext, ServiceOperator } from '@diia-inhouse/diia-app'
|
|
10
6
|
|
|
11
7
|
import config from '@src/config'
|
|
12
8
|
|
|
@@ -16,11 +12,15 @@ import deps from '@tests/utils/getDeps'
|
|
|
16
12
|
import { AppConfig } from '@interfaces/config'
|
|
17
13
|
import { AppDeps } from '@interfaces/deps'
|
|
18
14
|
|
|
19
|
-
export function getApp(): ServiceOperator<AppConfig, AppDeps & TestDeps
|
|
15
|
+
export async function getApp(): Promise<ServiceOperator<AppConfig, AppDeps & TestDeps>> {
|
|
20
16
|
const app = new Application<ServiceContext<AppConfig, AppDeps & TestDeps>>('<%= h.changeCase.pascal(serviceName) %>')
|
|
21
|
-
.setConfig(config)
|
|
22
|
-
.setDeps(deps)
|
|
23
|
-
.initialize()
|
|
24
17
|
|
|
25
|
-
|
|
18
|
+
await app.setConfig(config)
|
|
19
|
+
await app.setDeps(deps)
|
|
20
|
+
|
|
21
|
+
const appOperator = await app.initialize()
|
|
22
|
+
|
|
23
|
+
await appOperator.start()
|
|
24
|
+
|
|
25
|
+
return appOperator
|
|
26
26
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
to: <%= serviceName %>/tests/utils/getDeps.ts
|
|
3
3
|
---
|
|
4
|
-
import { asClass } from 'awilix'
|
|
5
4
|
|
|
6
|
-
import { DepsFactoryFn } from '@diia-inhouse/diia-app'
|
|
5
|
+
import { DepsFactoryFn, asClass } from '@diia-inhouse/diia-app'
|
|
7
6
|
|
|
8
|
-
import { IdentifierService } from '@diia-inhouse/crypto'
|
|
9
7
|
import TestKit from '@diia-inhouse/test'
|
|
10
8
|
|
|
11
9
|
import deps from '@src/deps'
|
|
@@ -15,9 +13,10 @@ import { TestDeps } from '@tests/interfaces'
|
|
|
15
13
|
import { AppConfig } from '@interfaces/config'
|
|
16
14
|
import { AppDeps } from '@interfaces/deps'
|
|
17
15
|
|
|
18
|
-
export default (config: AppConfig): ReturnType<DepsFactoryFn<AppConfig, AppDeps & TestDeps>> => {
|
|
16
|
+
export default async (config: AppConfig): ReturnType<DepsFactoryFn<AppConfig, AppDeps & TestDeps>> => {
|
|
19
17
|
return {
|
|
20
|
-
...deps(config),
|
|
18
|
+
...(await deps(config)),
|
|
19
|
+
|
|
21
20
|
testKit: asClass(TestKit).singleton(),
|
|
22
21
|
}
|
|
23
22
|
}
|
|
@@ -18,8 +18,7 @@ to: <%= serviceName %>/tsconfig.json
|
|
|
18
18
|
"@actions/*": ["src/actions/*"],
|
|
19
19
|
"@src/*": ["src/*"],
|
|
20
20
|
"@tests/*": ["tests/*"]
|
|
21
|
-
}
|
|
22
|
-
"plugins": [{ "transform": "typescript-transform-paths" }, { "transform": "typescript-transform-paths", "afterDeclarations": true }]
|
|
21
|
+
}
|
|
23
22
|
},
|
|
24
23
|
"include": ["src/**/*", "tests/jest.d.ts"]
|
|
25
24
|
}
|
|
@@ -14,7 +14,7 @@ exports.default = {
|
|
|
14
14
|
const { serviceName } = await prompter.prompt({
|
|
15
15
|
type: 'input',
|
|
16
16
|
name: 'serviceName',
|
|
17
|
-
message: "What's your new service name (e.g.
|
|
17
|
+
message: "What's your new service name (e.g. criminal-cert-service)?",
|
|
18
18
|
required: true,
|
|
19
19
|
});
|
|
20
20
|
const { description } = await prompter.prompt({
|
|
@@ -27,7 +27,6 @@ exports.default = {
|
|
|
27
27
|
message: 'Which external dependencies do you want use with that service?',
|
|
28
28
|
choices,
|
|
29
29
|
});
|
|
30
|
-
console.log(chalk_1.default.red.bold('\n!!! REMINDER !!!\r'));
|
|
31
30
|
console.log(chalk_1.default.red.bold("Don't forget to add charts and envs to the infra repo manually\r"));
|
|
32
31
|
const { devDeps, deps } = depsNames_1.serviceDependencies;
|
|
33
32
|
return { serviceName, description, dependencies: { devDeps: devDeps.join(' '), deps: deps.join(' ') }, selectedOptions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/init/service/prompt.ts"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AAEzB,kDAAwD;AAExD,yEAAkF;AAElF,iDAAyD;AAEzD,MAAM,OAAO,GAAwB,MAAM,CAAC,MAAM,CAAC,qBAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAEnG,kBAAe;IACX,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAU,EAAoB,EAAE;QACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC,CAAA;QAEvH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/init/service/prompt.ts"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AAEzB,kDAAwD;AAExD,yEAAkF;AAElF,iDAAyD;AAEzD,MAAM,OAAO,GAAwB,MAAM,CAAC,MAAM,CAAC,qBAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAEnG,kBAAe;IACX,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAU,EAAoB,EAAE;QACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC,CAAA;QAEvH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,4DAA4D;YACrE,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAA;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,sCAAsC;YAC/C,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAA;QAEF,MAAM,eAAe,GAAG,MAAM,IAAA,yBAAiB,EAAc;YACzD,OAAO,EAAE,gEAAgE;YACzE,OAAO;SACV,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAA;QAE/F,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,+BAAmB,CAAA;QAE7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,EAAE,CAAA;IAC5H,CAAC;CACJ,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diia-inhouse/scaffold",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.22.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
|
-
"license": "SEE LICENCE IN LICENCE.md",
|
|
6
|
-
"repository": "https://github.com/diia-open-source/be-scaffold.git",
|
|
7
5
|
"engines": {
|
|
8
|
-
"node": ">=
|
|
6
|
+
"node": ">=20"
|
|
9
7
|
},
|
|
10
8
|
"scripts": {
|
|
11
9
|
"lint": "eslint --ext .ts . && prettier --check .",
|
|
12
10
|
"lint-fix": "eslint --ext .ts . --fix && prettier --write .",
|
|
13
11
|
"lint:lockfile": "lockfile-lint --path package-lock.json --allowed-hosts registry.npmjs.org --validate-https",
|
|
14
|
-
"
|
|
15
|
-
"build": "tsc && npm run cp:templates",
|
|
12
|
+
"build": "rimraf dist && tsc && npm run cp:templates",
|
|
16
13
|
"clean:result": "rimraf generation-result",
|
|
17
14
|
"cp:templates": "cd src && copyfiles _templates/**/*.t ../dist && copyfiles _sharedTemplates/**/*.t ../dist",
|
|
18
15
|
"prepare": "npm run build",
|
|
19
|
-
"find-circulars": "madge --circular --extensions ts ./"
|
|
16
|
+
"find-circulars": "madge --circular --extensions ts ./",
|
|
17
|
+
"semantic-release": "semantic-release"
|
|
20
18
|
},
|
|
21
19
|
"bin": {
|
|
22
20
|
"scaffold": "dist/bin.js"
|
|
@@ -26,7 +24,7 @@
|
|
|
26
24
|
],
|
|
27
25
|
"author": "Diia",
|
|
28
26
|
"dependencies": {
|
|
29
|
-
"@diia-inhouse/types": "6.
|
|
27
|
+
"@diia-inhouse/types": "6.35.2",
|
|
30
28
|
"chalk": "4.1.2",
|
|
31
29
|
"enquirer": "2.4.1",
|
|
32
30
|
"execa": "5.1.1",
|
|
@@ -34,19 +32,19 @@
|
|
|
34
32
|
"lodash": "4.17.21"
|
|
35
33
|
},
|
|
36
34
|
"devDependencies": {
|
|
37
|
-
"@diia-inhouse/configs": "
|
|
35
|
+
"@diia-inhouse/configs": "2.0.0",
|
|
38
36
|
"@diia-inhouse/eslint-config": "5.1.0",
|
|
39
|
-
"@types/lodash": "4.
|
|
37
|
+
"@types/lodash": "4.17.6",
|
|
40
38
|
"@types/node": "20.12.7",
|
|
41
39
|
"copyfiles": "2.4.1",
|
|
42
40
|
"eslint": "8.57.0",
|
|
43
41
|
"eslint-plugin-prettier": "5.1.3",
|
|
44
|
-
"lockfile-lint": "4.
|
|
42
|
+
"lockfile-lint": "4.14.0",
|
|
45
43
|
"madge": "7.0.0",
|
|
46
|
-
"prettier": "3.2
|
|
44
|
+
"prettier": "3.3.2",
|
|
47
45
|
"protobufjs": "7.2.5",
|
|
48
|
-
"rimraf": "
|
|
49
|
-
"semantic-release": "
|
|
46
|
+
"rimraf": "6.0.0",
|
|
47
|
+
"semantic-release": "24.0.0",
|
|
50
48
|
"typescript": "5.4.5"
|
|
51
49
|
},
|
|
52
50
|
"release": {
|
|
@@ -62,5 +60,6 @@
|
|
|
62
60
|
"madge": {
|
|
63
61
|
"tsConfig": "./tsconfig.json"
|
|
64
62
|
},
|
|
65
|
-
"
|
|
63
|
+
"repository": "https://github.com/diia-open-source/be-scaffold.git",
|
|
64
|
+
"license": "SEE LICENCE IN LICENCE.md"
|
|
66
65
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
to: <%= interfacePath %>
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
<% if (inheritedActionInterface) { %>
|
|
6
|
-
import { <%= inheritedActionInterface %> } from '@diia-inhouse/types'
|
|
7
|
-
<% } %>
|
|
8
|
-
import { <%= h.changeCase.pascal(name) %>Req, <%= h.changeCase.pascal(name) %>Res } from '@src/generated'
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export interface CustomActionArguments <%= inheritedActionInterface ? `extends ${inheritedActionInterface}` : '' %> {
|
|
12
|
-
params: <%= h.changeCase.pascal(name) %>Req
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export type ActionResult = <%= h.changeCase.pascal(name) %>Res
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mapSessionTypeToActionArguments = void 0;
|
|
4
|
-
const types_1 = require("@diia-inhouse/types");
|
|
5
|
-
exports.mapSessionTypeToActionArguments = {
|
|
6
|
-
[types_1.SessionType.User]: 'UserActionArguments',
|
|
7
|
-
[types_1.SessionType.Partner]: 'PartnerActionArguments',
|
|
8
|
-
[types_1.SessionType.EResident]: 'EResidentActionArguments',
|
|
9
|
-
[types_1.SessionType.Acquirer]: 'AcquirerActionArguments',
|
|
10
|
-
[types_1.SessionType.Temporary]: 'TemporaryActionArguments',
|
|
11
|
-
[types_1.SessionType.PortalUser]: 'PortalUserActionArguments',
|
|
12
|
-
[types_1.SessionType.ServiceUser]: 'ServiceUserActionArguments',
|
|
13
|
-
[types_1.SessionType.EResidentApplicant]: 'UserActionArguments',
|
|
14
|
-
[types_1.SessionType.ServiceEntrance]: 'UserActionArguments',
|
|
15
|
-
[types_1.SessionType.CabinetUser]: 'UserActionArguments',
|
|
16
|
-
[types_1.SessionType.None]: 'ServiceActionArguments',
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=dict.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dict.js","sourceRoot":"","sources":["../../../../src/_templates/add/action/dict.ts"],"names":[],"mappings":";;;AAAA,+CAAiD;AAEpC,QAAA,+BAA+B,GAAgC;IACxE,CAAC,mBAAW,CAAC,IAAI,CAAC,EAAE,qBAAqB;IACzC,CAAC,mBAAW,CAAC,OAAO,CAAC,EAAE,wBAAwB;IAC/C,CAAC,mBAAW,CAAC,SAAS,CAAC,EAAE,0BAA0B;IACnD,CAAC,mBAAW,CAAC,QAAQ,CAAC,EAAE,yBAAyB;IACjD,CAAC,mBAAW,CAAC,SAAS,CAAC,EAAE,0BAA0B;IACnD,CAAC,mBAAW,CAAC,UAAU,CAAC,EAAE,2BAA2B;IACrD,CAAC,mBAAW,CAAC,WAAW,CAAC,EAAE,4BAA4B;IACvD,CAAC,mBAAW,CAAC,kBAAkB,CAAC,EAAE,qBAAqB;IACvD,CAAC,mBAAW,CAAC,eAAe,CAAC,EAAE,qBAAqB;IACpD,CAAC,mBAAW,CAAC,WAAW,CAAC,EAAE,qBAAqB;IAChD,CAAC,mBAAW,CAAC,IAAI,CAAC,EAAE,wBAAwB;CAC/C,CAAA"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
to: <%= serviceName %>/src/interfaces/actions/v1/getAddResult.ts
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
import { UserActionArguments } from '@diia-inhouse/types'
|
|
6
|
-
|
|
7
|
-
import { GetAddResultReq, GetAddResultRes } from '@src/generated'
|
|
8
|
-
|
|
9
|
-
export interface CustomActionArguments extends UserActionArguments {
|
|
10
|
-
params: GetAddResultReq
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export type ActionResult = GetAddResultRes
|