@diia-inhouse/scaffold 2.23.0 → 2.24.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.
@@ -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 { <%= h.changeCase.pascal(name) %>Res } from '@src/generated'
7
+ import { ActionResult } from '<%= relativeInterfacePath %>'
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<<%= h.changeCase.pascal(name) %>Res>({})
34
+ expect(result).toEqual<ActionResult>({})
35
35
  })
36
36
  })
@@ -4,23 +4,22 @@ to: <%= actionPath %>
4
4
 
5
5
  import { GrpcAppAction } from '@diia-inhouse/diia-app'
6
6
 
7
- import { ActionContext } from '@diia-inhouse/types'
8
7
  <% if (isActionWithValidation) { %>
9
8
  import { ValidationSchema } from '@diia-inhouse/validators'
10
9
  <% } %>
11
10
 
12
- import { <%= h.changeCase.pascal(name) %>Req, <%= h.changeCase.pascal(name) %>Res } from '@src/generated'
11
+ import { ActionResult, Context } from '<%= relativeInterfacePath %>'
13
12
 
14
- export default class <%= h.changeCase.pascal(name) %>Action implements GrpcAppAction<ActionContext<<%= h.changeCase.pascal(name) %>Req>> {
13
+ export default class <%= h.changeCase.pascal(name) %>Action implements GrpcAppAction<Context> {
15
14
  constructor(private readonly service: unknown) {}
16
15
 
17
16
  readonly name: string = '<%= name %>'
18
17
 
19
18
  <% if (isActionWithValidation) { %>
20
- readonly validationRules: ValidationSchema<<%= h.changeCase.pascal(name) %>Req> = {}
19
+ readonly validationRules: ValidationSchema<Context['params']> = {}
21
20
  <% } %>
22
21
 
23
- async handler(args: ActionContext<<%= h.changeCase.pascal(name) %>Req>): Promise<<%= h.changeCase.pascal(name) %>Res> {
22
+ async handler(args: Context): Promise<ActionResult> {
24
23
  const {
25
24
  params: {},
26
25
  } = args
@@ -0,0 +1,12 @@
1
+ ---
2
+ to: <%= interfacePath %>
3
+ ---
4
+
5
+ import { ActionContext } from '@diia-inhouse/types'
6
+
7
+ import { <%= h.changeCase.pascal(name) %>Req, <%= h.changeCase.pascal(name) %>Res } from '@src/generated'
8
+
9
+
10
+ export type Context = ActionContext<<%= h.changeCase.pascal(name) %>Req>
11
+
12
+ export type ActionResult = <%= h.changeCase.pascal(name) %>Res
@@ -7,16 +7,16 @@ import <%= h.changeCase.pascal(name) %>Action from '<%= relateActionPathFromTest
7
7
 
8
8
  import { getApp } from '@tests/utils/getApp'
9
9
 
10
- import { <%= h.changeCase.pascal(name) %>Req, <%= h.changeCase.pascal(name) %>Res } from '@src/generated'
10
+ import { ActionResult } from '<%= relativeInterfacePath %>'
11
11
 
12
12
  describe(`Action ${<%= h.changeCase.pascal(name) %>Action.name}`, () => {
13
13
  let app: Awaited<ReturnType<typeof getApp>>
14
- let <%= name %>Action: <%= h.changeCase.pascal(name) %>Action
14
+ let action: <%= h.changeCase.pascal(name) %>Action
15
15
  const testKit = new TestKit()
16
16
 
17
17
  beforeAll(async () => {
18
18
  app = await getApp()
19
- <%= name %>Action = app.container.build(<%= h.changeCase.pascal(name) %>Action)
19
+ action = app.container.build(<%= h.changeCase.pascal(name) %>Action)
20
20
  })
21
21
 
22
22
  afterAll(async () => {
@@ -29,9 +29,9 @@ describe(`Action ${<%= h.changeCase.pascal(name) %>Action.name}`, () => {
29
29
  const session = testKit.session.getUserSession()
30
30
 
31
31
  // Act
32
- const result = await <%= name %>Action.handler({session, headers, params: {}})
32
+ const result = await action.handler({session, headers, params: {}})
33
33
 
34
34
  // Assert
35
- expect(result).toEqual<<%= h.changeCase.pascal(name) %>Res>({})
35
+ expect(result).toEqual<ActionResult>({})
36
36
  })
37
37
  })
@@ -1,3 +1,3 @@
1
1
  ---
2
- sh: "npx prettier --write <%= actionPath %> <%= testPath %>"
2
+ sh: "npx prettier --write <%= actionPath %> <%= interfacePath %> <%= testPath %>"
3
3
  ---
@@ -56,6 +56,8 @@ exports.default = {
56
56
  }
57
57
  const newActionPath = actionFolder === ROOT_ACTION ? node_path_1.default.join(normalizedVersion, actionName) : node_path_1.default.join(normalizedVersion, actionFolder, actionName);
58
58
  const finalActionPath = node_path_1.default.resolve(process.cwd(), 'src/actions', `${newActionPath}.ts`);
59
+ const finalInterfacePath = node_path_1.default.resolve(process.cwd(), 'src/interfaces/actions', `${newActionPath}.ts`);
60
+ const relativeInterfacePath = node_path_1.default.join('@interfaces/actions', newActionPath);
59
61
  const testPath = node_path_1.default.resolve(process.cwd(), 'tests/integration/actions/', `${newActionPath}.spec.ts`);
60
62
  const relateActionPathFromTest = node_path_1.default.join('@src/actions', newActionPath);
61
63
  const isActionWithValidation = await (0, prompt_1.promptYesNoSelect)({
@@ -65,6 +67,8 @@ exports.default = {
65
67
  name: actionName,
66
68
  version,
67
69
  actionPath: finalActionPath,
70
+ interfacePath: finalInterfacePath,
71
+ relativeInterfacePath,
68
72
  isActionWithValidation,
69
73
  testPath,
70
74
  relateActionPathFromTest,
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/action/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/_templates/add/action/prompt.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,4 @@
2
2
  to: <%= testPath %>
3
3
  ---
4
4
 
5
- <%- include(sharedTemplatePath, {name, relateActionPathFromTest}) %>
5
+ <%- include(sharedTemplatePath, {name, relativeInterfacePath, relateActionPathFromTest}) %>
@@ -33,11 +33,13 @@ 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);
36
37
  const relateActionPathFromTest = node_path_1.default.join('@src', actionPath);
37
38
  const result = {
38
39
  sharedTemplatePath: (0, utils_1.getSharedTemplate)('actionTest.t'),
39
40
  testPath,
40
41
  name: actionName,
42
+ relativeInterfacePath: relativeInterfacePathFromTest,
41
43
  relateActionPathFromTest,
42
44
  };
43
45
  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,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"}
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"}
@@ -4,12 +4,11 @@ to: <%= serviceName %>/src/actions/v1/getAddResult.ts
4
4
 
5
5
  import { GrpcAppAction } from '@diia-inhouse/diia-app'
6
6
 
7
- import { ActionContext } from '@diia-inhouse/types'
8
7
  import { ValidationSchema } from '@diia-inhouse/validators'
9
8
 
10
- import { GetAddResultReq, GetAddResultRes } from '@src/generated'
9
+ import { ActionResult, Context } from '@interfaces/actions/v1/getAddResult'
11
10
 
12
- export default class GetAddResultAction implements GrpcAppAction<ActionContext<GetAddResultReq>> {
11
+ export default class GetAddResultAction implements GrpcAppAction<Context> {
13
12
  readonly name = 'getAddResult'
14
13
 
15
14
  readonly validationRules: ValidationSchema<GetAddResultReq> = {
@@ -17,7 +16,7 @@ export default class GetAddResultAction implements GrpcAppAction<ActionContext<G
17
16
  b: {type: 'number'}
18
17
  }
19
18
 
20
- async handler(args: ActionContext<GetAddResultReq>): Promise<GetAddResultRes> {
19
+ async handler(args: Context): Promise<ActionResult> {
21
20
  const { params: { a, b } } = args
22
21
 
23
22
  return { result: a + b }
@@ -0,0 +1,11 @@
1
+ ---
2
+ to: <%= serviceName %>/src/interfaces/actions/v1/getAddResult.ts
3
+ ---
4
+
5
+ import { ActionContext } from '@diia-inhouse/types'
6
+
7
+ import { GetAddResultReq, GetAddResultRes } from '@src/generated'
8
+
9
+ export type Context = ActionContext<GetAddResultReq>
10
+
11
+ export type ActionResult = GetAddResultRes
@@ -4,19 +4,20 @@ to: <%= serviceName %>/tests/integration/actions/v1/getAddResult.spec.ts
4
4
 
5
5
  import TestKit from '@diia-inhouse/test'
6
6
 
7
+ import { ActionResult } from '@interfaces/actions/v1/getAddResult'
8
+
7
9
  import GetAddResultAction from '@src/actions/v1/getAddResult'
8
- import { GetAddResultRes } from '@src/generated'
9
10
 
10
11
  import { getApp } from '@tests/utils/getApp'
11
12
 
12
13
  describe(`Action ${GetAddResultAction.name}`, () => {
13
14
  let app: Awaited<ReturnType<typeof getApp>>
14
- let getAddResult: GetAddResultAction
15
+ let action: GetAddResultAction
15
16
  const testKit = new TestKit()
16
17
 
17
18
  beforeAll(async () => {
18
19
  app = await getApp()
19
- getAddResult = app.container.build(GetAddResultAction)
20
+ action = app.container.build(GetAddResultAction)
20
21
  })
21
22
 
22
23
  afterAll(async () => {
@@ -32,9 +33,9 @@ describe(`Action ${GetAddResultAction.name}`, () => {
32
33
  const b = 3;
33
34
 
34
35
  // Act
35
- const result = await getAddResult.handler({ params: { a, b }, session, headers })
36
+ const result = await action.handler({ params: { a, b }, session, headers })
36
37
 
37
38
  // Assert
38
- expect(result).toEqual<GetAddResultRes>({ result: 5 })
39
+ expect(result).toEqual<ActionResult>({ result: 5 })
39
40
  })
40
41
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diia-inhouse/scaffold",
3
- "version": "2.23.0",
3
+ "version": "2.24.0",
4
4
  "main": "dist/index.js",
5
5
  "engines": {
6
6
  "node": ">=20"