@bmstravel/nvp-plop-templates 0.2.4 → 0.2.6

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.
@@ -1,4 +1,4 @@
1
- import { IBaseAction, IBaseAdapter, I{{pascalCase serviceName}}Service, UserAuthMeta } from "@src/types";
1
+ import { IBaseActionSchema, IBaseAdapter, I{{pascalCase serviceName}}Service, UserAuthMeta } from "@src/types";
2
2
  import { Context } from "moleculer";
3
3
  import { VISIBILITY, ERR_SYSTEM } from "@src/common";
4
4
  import { MoleculerRegularError } from "@src/errors";
@@ -7,71 +7,40 @@ export type {{pascalCase actionName}}Params = {
7
7
 
8
8
  }
9
9
 
10
+ async function handler(ctx: Context<{{pascalCase actionName}}Params, UserAuthMeta>) {
11
+ const $this: I{{pascalCase serviceName}}Service = this;
12
+ const $adapter: IBaseAdapter = $this.adapter;
13
+ const i18next = ctx.broker.i18next
14
+ try {
15
+ const params = ctx.params;
16
+ this.logger.info(`🎁 INFO $this:`, $this);
17
+ this.logger.info(`🎁 INFO $adapter:`, $adapter);
18
+ this.logger.info(`🎁 INFO params:`, params);
19
+
20
+ return {
21
+ code: 0,
22
+ data: {},
23
+ };
24
+ } catch(err) {
25
+ throw new MoleculerRegularError({
26
+ message: i18next.t('ERR_SYSTEM', ERR_SYSTEM.message),
27
+ code: ERR_SYSTEM.code,
28
+ type: ERR_SYSTEM.type,
29
+ data: {
30
+ error: err.message,
31
+ stack: err.stack,
32
+ },
33
+ error: err,
34
+ });
35
+ }
36
+ }
37
+
10
38
  /**
11
39
  * @description {{pascalCase actionName}} action
12
40
  * @example
13
41
  * rest: "POST {{pascalCase serviceName}}/{{pascalCase actionName}}",
14
- * cacher: {
15
- * keys: ["#token", "user"],
16
- * },
17
- * visibility: VISIBILITY.PUBLISHED,
18
- * timeout: 5000, // 5 secs
19
- * params: {
20
- * id: { type: "number", positive: true, integer: true },
21
- * name: "string|min:3|max:20", // empty:true,length:20,pattern:/^[a-z]$/,contains,numeric,enum,alpha,alphanum,alphadash,singleLine,hex,base64,trim,trimLeft,trimRight,lowercase:true,uppercase:true,convert:true
22
- * age: "number|optional|integer|positive|min:0|max:99", // convert:true, negative:true
23
- * thumb: "string|nullable|optional",
24
- * foo: "string[]",
25
- * recent: "boolean|default:true",
26
- * createdAt: {
27
- * type: "date",
28
- * default: (schema, field, parent, context) => new Date()
29
- * }
30
- * email: { type: "email" },
31
- * money: { type: "currency", currencySymbol: '$' },
32
- * dob: { type: "date" },
33
- * sex: { type: "enum", values: ["male", "female"] },
34
- * cache: [
35
- * { type: "string" },
36
- * { type: "boolean" }
37
- * ],
38
- * roles: [
39
- * { type: "array", unique: true },
40
- * // { type: "array", items: "string", default: ["user"] },
41
- * // { type: "array", items: "string", enum: [ "user", "admin" ] }
42
- * ],
43
- * status: { type: "multi", rules: [
44
- * { type: "boolean" },
45
- * { type: "number" }
46
- * ], default: true } // true,false,1,0
47
- * dot: {
48
- * $$type: "object",
49
- * x: "number", // object props here
50
- * y: "number", // object props here
51
- * },
52
- * circle: {
53
- * $$type: "object|optional",
54
- * o: {
55
- * $$type: "object",
56
- * x: "number",
57
- * y: "number",
58
- * },
59
- * r: "number"
60
- * },
61
- * list: { type: "array", min: 2, items: {
62
- * type: "number", positive: true, integer: true
63
- * } },
64
- * mac: { type: "mac" } // 01:C8:95:4B:65:FE, 01C8.954B.65FE, 01-C8-95-4B-65-FE,
65
- * url: { type: "url" },
66
- * uuid: { type: "uuid" },
67
- * _id: {
68
- * type: "objectID",
69
- * ObjectID // passing the ObjectID class example: const { ObjectID } = require("mongodb")
70
- * }
71
- * },
72
- * async handler(ctx: Context<any, any>) {}
73
42
  */
74
- const {{pascalCase actionName}}Action: IBaseAction = {
43
+ const {{pascalCase actionName}}Action: IBaseActionSchema<ReturnType<typeof handler>, {{pascalCase actionName}}Params, UserAuthMeta> = {
75
44
  {{#if actionPath}}
76
45
  rest: "{{method}} {{actionPath}}",
77
46
  {{/if}}
@@ -89,33 +58,7 @@ const {{pascalCase actionName}}Action: IBaseAction = {
89
58
  {{/eq}}
90
59
  params: {
91
60
  },
92
- async handler(ctx: Context<{{pascalCase actionName}}Params, UserAuthMeta>) {
93
- const $this: I{{pascalCase serviceName}}Service = this;
94
- const $adapter: IBaseAdapter = $this.adapter;
95
- const i18next = ctx.broker.i18next
96
- try {
97
- const params = ctx.params;
98
- this.logger.info(`🎁 INFO $this:`, $this);
99
- this.logger.info(`🎁 INFO $adapter:`, $adapter);
100
- this.logger.info(`🎁 INFO params:`, params);
101
-
102
- return {
103
- code: 0,
104
- data: {},
105
- };
106
- } catch(err) {
107
- throw new MoleculerRegularError({
108
- message: i18next.t('ERR_SYSTEM', ERR_SYSTEM.message),
109
- code: ERR_SYSTEM.code,
110
- type: ERR_SYSTEM.type,
111
- data: {
112
- error: err.message,
113
- stack: err.stack,
114
- },
115
- error: err,
116
- });
117
- }
118
- },
61
+ handler,
119
62
  };
120
63
 
121
64
  export default {{pascalCase actionName}}Action;
@@ -24,6 +24,7 @@ export const {{pascalCase mixinName}}Mixin = () => {
24
24
  /* MOL_METHOD_MIXIN */
25
25
  async {{camelCase mixinMethod}}({ }: {{pascalCase mixinMethod}}Params) {
26
26
  const $this: IBaseService<any, any> = this
27
+ $this.logger.info("{{camelCase mixinMethod}} parameters", ctx.params)
27
28
  const $cacher = $this.broker.cacher as RedisCacher
28
29
  return {}
29
30
  },
@@ -35,10 +36,11 @@ export const {{pascalCase mixinName}}Mixin = () => {
35
36
  {{camelCase mixinAction}}: {
36
37
  async handler(ctx: Context<{{pascalCase mixinAction}}Params, any>) {
37
38
  const $this: IBaseService<any, any> = this
39
+ $this.logger.info("{{camelCase mixinAction}} parameters", ctx.params)
38
40
  return {
39
41
  code: 0,
40
42
  data: {},
41
- },
43
+ }
42
44
  },
43
45
  }
44
46
  }
@@ -50,7 +52,7 @@ export const {{pascalCase mixinName}}Mixin = () => {
50
52
  params: {},
51
53
  handler(ctx: Context<{{pascalCase mixinEvent}}Params, any>) {
52
54
  const $this: IBaseService<any, any> = this
53
- $this.logger.info("Event received, parameters OK!", ctx.params);
55
+ $this.logger.info("{{camelCase mixinEvent}} event received, parameters OK!", ctx.params);
54
56
  },
55
57
  }
56
58
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bmstravel/nvp-plop-templates",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "🏆 Using for plop templates",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",
@@ -15,5 +15,5 @@
15
15
  "phongnv86 <phongnguyenvan86@gmail.com>",
16
16
  "phongnv86 <phongnv@media-one.vn>"
17
17
  ],
18
- "gitHead": "7df419526ad801372b57e69bad7803f1fbc93510"
18
+ "gitHead": "8e2aefd89cbc161e10838a2a479f7182e4bc41b1"
19
19
  }