gg-express 1.0.37 → 1.0.38

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/GGApi.js CHANGED
@@ -82,6 +82,12 @@ function run() {
82
82
  const data2 = yield api.get("/api/users/id", {
83
83
  data: [{ id: 2 }, { id: 3 }, { id: 20 }],
84
84
  });
85
+ api.post("/api/item", {
86
+ data: { id: 2 },
87
+ parameter: {
88
+ lotNumber: 2,
89
+ },
90
+ });
85
91
  });
86
92
  }
87
93
  run();
@@ -20,10 +20,10 @@ interface requireParamsStructure {
20
20
  structure: {
21
21
  [key: string]: paramType;
22
22
  };
23
- isStructurePartial?: boolean;
23
+ isPartialStructure?: boolean;
24
24
  }
25
25
  type numberOrString<T> = T extends "number" ? number : T extends "string" ? string : T extends "any" ? any : T extends string[] ? Unarray<T> : T extends number[] ? Unarray<T> : "error-type";
26
- type singleOrArrayObject<DT extends requireParamsStructure["dataType"], T extends requireParamsStructure["structure"], K extends keyof T, P extends requireParamsStructure["parameter"], J extends requireParamsStructure["isStructurePartial"]> = DT extends "arrayObject" ? {
26
+ type singleOrArrayObject<DT extends requireParamsStructure["dataType"], T extends requireParamsStructure["structure"], K extends keyof T, P extends requireParamsStructure["parameter"], J extends requireParamsStructure["isPartialStructure"]> = DT extends "arrayObject" ? {
27
27
  data: {
28
28
  parameter: {
29
29
  [Key in keyof P]: numberOrString<P[Key]>;
@@ -46,8 +46,8 @@ type singleOrArrayObject<DT extends requireParamsStructure["dataType"], T extend
46
46
  };
47
47
  };
48
48
  };
49
- type MyRequest<DT extends requireParamsStructure["dataType"], T extends requireParamsStructure["structure"], K extends keyof T, P extends requireParamsStructure["parameter"], J extends requireParamsStructure["isStructurePartial"]> = Request<{}, {}, singleOrArrayObject<DT, T, K, P, J>, singleOrArrayObject<DT, T, K, P, J>, {}>;
50
- type MyResponse<DT extends responseStructure["dataType"], T extends responseStructure["structure"], K extends keyof T, P extends responseStructure["parameter"], J extends requireParamsStructure["isStructurePartial"]> = Response<{
49
+ type MyRequest<DT extends requireParamsStructure["dataType"], T extends requireParamsStructure["structure"], K extends keyof T, P extends requireParamsStructure["parameter"], J extends requireParamsStructure["isPartialStructure"]> = Request<{}, {}, singleOrArrayObject<DT, T, K, P, J>, singleOrArrayObject<DT, T, K, P, J>, {}>;
50
+ type MyResponse<DT extends responseStructure["dataType"], T extends responseStructure["structure"], K extends keyof T, P extends responseStructure["parameter"], J extends requireParamsStructure["isPartialStructure"]> = Response<{
51
51
  status: "SUCCESS" | "ERROR";
52
52
  message: string;
53
53
  parameter: {
@@ -64,19 +64,19 @@ export default class GGExpress {
64
64
  private outputPath;
65
65
  constructor(app: Express.Express, outputPath: string[]);
66
66
  private rootMethod;
67
- get<M extends requireParamsStructure, T extends M["structure"], K extends keyof T, R extends responseStructure, RS extends R["structure"], KR extends keyof RS, P extends M["parameter"], PP extends R["parameter"], J extends M["isStructurePartial"]>(url: `/api/${string}`, options: {
67
+ get<M extends requireParamsStructure, T extends M["structure"], K extends keyof T, R extends responseStructure, RS extends R["structure"], KR extends keyof RS, P extends M["parameter"], PP extends R["parameter"], J extends M["isPartialStructure"]>(url: `/api/${string}`, options: {
68
68
  requireParams: M;
69
69
  responseStructure: R;
70
70
  }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P, J>, res: MyResponse<R["dataType"], RS, KR, PP, J>, next: NextFunction) => any>): Express.Express;
71
- post<M extends requireParamsStructure, T extends M["structure"], K extends keyof T, R extends responseStructure, RS extends R["structure"], KR extends keyof RS, P extends M["parameter"], PP extends R["parameter"], J extends M["isStructurePartial"]>(url: `/api/${string}`, options: {
71
+ post<M extends requireParamsStructure, T extends M["structure"], K extends keyof T, R extends responseStructure, RS extends R["structure"], KR extends keyof RS, P extends M["parameter"], PP extends R["parameter"], J extends M["isPartialStructure"]>(url: `/api/${string}`, options: {
72
72
  requireParams: M;
73
73
  responseStructure: R;
74
74
  }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P, J>, res: MyResponse<R["dataType"], RS, KR, PP, J>, next: NextFunction) => any>): Express.Express;
75
- put<M extends requireParamsStructure, T extends M["structure"], K extends keyof T, R extends responseStructure, RS extends R["structure"], KR extends keyof RS, P extends M["parameter"], PP extends R["parameter"], J extends M["isStructurePartial"]>(url: `/api/${string}`, options: {
75
+ put<M extends requireParamsStructure, T extends M["structure"], K extends keyof T, R extends responseStructure, RS extends R["structure"], KR extends keyof RS, P extends M["parameter"], PP extends R["parameter"], J extends M["isPartialStructure"]>(url: `/api/${string}`, options: {
76
76
  requireParams: M;
77
77
  responseStructure: R;
78
78
  }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P, J>, res: MyResponse<R["dataType"], RS, KR, PP, J>, next: NextFunction) => any>): Express.Express;
79
- delete<M extends requireParamsStructure, T extends M["structure"], K extends keyof T, R extends responseStructure, RS extends R["structure"], KR extends keyof RS, P extends M["parameter"], PP extends R["parameter"], J extends M["isStructurePartial"]>(url: `/api/${string}`, options: {
79
+ delete<M extends requireParamsStructure, T extends M["structure"], K extends keyof T, R extends responseStructure, RS extends R["structure"], KR extends keyof RS, P extends M["parameter"], PP extends R["parameter"], J extends M["isPartialStructure"]>(url: `/api/${string}`, options: {
80
80
  requireParams: M;
81
81
  responseStructure: R;
82
82
  }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P, J>, res: MyResponse<R["dataType"], RS, KR, PP, J>, next: NextFunction) => any>): Express.Express;
package/dist/GGExpress.js CHANGED
@@ -125,7 +125,13 @@ class GGExpress {
125
125
  rawString = filterDuplicateUrlOut
126
126
  .map((row) => {
127
127
  const parameterCode = genParamCodeParameter(row.requireParams);
128
- const parameterDataCode = genDataParamCode(row.requireParams);
128
+ let parameterDataCode = genDataParamCode(row.requireParams);
129
+ const isPartial = (code) => {
130
+ if (row.requireParams.isPartialStructure === true)
131
+ return `Partial<${code}>`;
132
+ else
133
+ return code;
134
+ };
129
135
  const requireParameterCode = () => {
130
136
  if (parameterCode === "")
131
137
  return "";
@@ -136,7 +142,7 @@ class GGExpress {
136
142
  if (parameterDataCode === "")
137
143
  return "";
138
144
  else
139
- return ` data:{${parameterDataCode}}${isArray(row.requireParams)}`;
145
+ return ` data:${isPartial(`{${parameterDataCode}}`)}${isArray(row.requireParams)}`;
140
146
  };
141
147
  let requireParamCode = `{${[requireParameterCode(), requireDataCode()]
142
148
  .filter((row) => row.length > 0)
@@ -26,11 +26,11 @@ export interface staticRouteInterface {
26
26
  parameter: {
27
27
  lotNumber: number;
28
28
  };
29
- data: {
29
+ data: Partial<{
30
30
  id: number;
31
31
  name: string;
32
32
  price: number;
33
- }[];
33
+ }>;
34
34
  };
35
35
  responseStructure: {
36
36
  status: "SUCCESS" | "ERROR";
package/dist/test.js CHANGED
@@ -40,7 +40,8 @@ function run() {
40
40
  parameter: {
41
41
  lotNumber: "number",
42
42
  },
43
- dataType: "arrayObject",
43
+ isPartialStructure: true,
44
+ dataType: "singleObject",
44
45
  structure: {
45
46
  id: "number",
46
47
  name: "string",
@@ -56,6 +57,7 @@ function run() {
56
57
  },
57
58
  },
58
59
  }, (req, res, next) => {
60
+ req.body.data.data;
59
61
  // in body or query, you can access only requireParams that you declare at start
60
62
  const data = req.body.data;
61
63
  /* data structure
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gg-express",
3
- "version": "1.0.37",
3
+ "version": "1.0.38",
4
4
  "description": "",
5
5
  "main": "dist/GGExpress.js",
6
6
  "scripts": {
package/src/GGApi.ts CHANGED
@@ -83,5 +83,11 @@ async function run() {
83
83
  const data2 = await api.get("/api/users/id", {
84
84
  data: [{ id: 2 }, { id: 3 }, { id: 20 }],
85
85
  })
86
+ api.post("/api/item", {
87
+ data: { id: 2 },
88
+ parameter: {
89
+ lotNumber: 2,
90
+ },
91
+ })
86
92
  }
87
93
  run()
package/src/GGExpress.ts CHANGED
@@ -28,7 +28,7 @@ interface requireParamsStructure {
28
28
  structure: {
29
29
  [key: string]: paramType
30
30
  }
31
- isStructurePartial?: boolean
31
+ isPartialStructure?: boolean
32
32
  }
33
33
  type numberOrString<T> = T extends "number"
34
34
  ? number
@@ -47,7 +47,7 @@ type singleOrArrayObject<
47
47
  T extends requireParamsStructure["structure"],
48
48
  K extends keyof T,
49
49
  P extends requireParamsStructure["parameter"],
50
- J extends requireParamsStructure["isStructurePartial"]
50
+ J extends requireParamsStructure["isPartialStructure"]
51
51
  > = DT extends "arrayObject"
52
52
  ? {
53
53
  data: {
@@ -71,7 +71,7 @@ type MyRequest<
71
71
  T extends requireParamsStructure["structure"],
72
72
  K extends keyof T,
73
73
  P extends requireParamsStructure["parameter"],
74
- J extends requireParamsStructure["isStructurePartial"]
74
+ J extends requireParamsStructure["isPartialStructure"]
75
75
  > = Request<
76
76
  {},
77
77
  {},
@@ -85,7 +85,7 @@ type MyResponse<
85
85
  T extends responseStructure["structure"],
86
86
  K extends keyof T,
87
87
  P extends responseStructure["parameter"],
88
- J extends requireParamsStructure["isStructurePartial"]
88
+ J extends requireParamsStructure["isPartialStructure"]
89
89
  > = Response<{
90
90
  status: "SUCCESS" | "ERROR"
91
91
  message: string
@@ -119,7 +119,7 @@ export default class GGExpress {
119
119
  KR extends keyof RS,
120
120
  P extends M["parameter"],
121
121
  PP extends R["parameter"],
122
- J extends M["isStructurePartial"]
122
+ J extends M["isPartialStructure"]
123
123
  >(
124
124
  method: "get" | "post" | "put" | "delete",
125
125
  url: string,
@@ -163,7 +163,7 @@ export default class GGExpress {
163
163
  KR extends keyof RS,
164
164
  P extends M["parameter"],
165
165
  PP extends R["parameter"],
166
- J extends M["isStructurePartial"]
166
+ J extends M["isPartialStructure"]
167
167
  >(
168
168
  url: `/api/${string}`,
169
169
  options: {
@@ -190,7 +190,7 @@ export default class GGExpress {
190
190
  KR extends keyof RS,
191
191
  P extends M["parameter"],
192
192
  PP extends R["parameter"],
193
- J extends M["isStructurePartial"]
193
+ J extends M["isPartialStructure"]
194
194
  >(
195
195
  url: `/api/${string}`,
196
196
  options: {
@@ -216,7 +216,7 @@ export default class GGExpress {
216
216
  KR extends keyof RS,
217
217
  P extends M["parameter"],
218
218
  PP extends R["parameter"],
219
- J extends M["isStructurePartial"]
219
+ J extends M["isPartialStructure"]
220
220
  >(
221
221
  url: `/api/${string}`,
222
222
  options: {
@@ -242,7 +242,7 @@ export default class GGExpress {
242
242
  KR extends keyof RS,
243
243
  P extends M["parameter"],
244
244
  PP extends R["parameter"],
245
- J extends M["isStructurePartial"]
245
+ J extends M["isPartialStructure"]
246
246
  >(
247
247
  url: `/api/${string}`,
248
248
  options: {
@@ -339,8 +339,13 @@ export default class GGExpress {
339
339
  rawString = filterDuplicateUrlOut
340
340
  .map((row) => {
341
341
  const parameterCode = genParamCodeParameter(row.requireParams)
342
- const parameterDataCode = genDataParamCode(row.requireParams)
342
+ let parameterDataCode = genDataParamCode(row.requireParams)
343
343
 
344
+ const isPartial = (code: string) => {
345
+ if (row.requireParams.isPartialStructure === true)
346
+ return `Partial<${code}>`
347
+ else return code
348
+ }
344
349
  const requireParameterCode = () => {
345
350
  if (parameterCode === "") return ""
346
351
  else return ` parameter:{${parameterCode}} `
@@ -348,7 +353,9 @@ export default class GGExpress {
348
353
  const requireDataCode = () => {
349
354
  if (parameterDataCode === "") return ""
350
355
  else
351
- return ` data:{${parameterDataCode}}${isArray(row.requireParams)}`
356
+ return ` data:${isPartial(`{${parameterDataCode}}`)}${isArray(
357
+ row.requireParams
358
+ )}`
352
359
  }
353
360
  let requireParamCode = `{${[requireParameterCode(), requireDataCode()]
354
361
  .filter((row) => row.length > 0)
@@ -1,18 +1,29 @@
1
1
  export interface staticRouteInterface {
2
- get : { "/api/users/id" : {
3
- requireParams : { data:{ id : number}[]},
4
- responseStructure : {
5
- status : "SUCCESS" | "ERROR",
6
- message : string,
7
- parameter : { numberOfPeople : number, itemName : string}, data : { id : number, name : string } []}
8
- } },
9
- post : { "/api/item" : {
10
- requireParams : { parameter:{ lotNumber : number} , data:{ id : number, name : string, price : number}[]},
11
- responseStructure : {
12
- status : "SUCCESS" | "ERROR",
13
- message : string,
14
- parameter : { numberOfPeople : number, itemName : string}, data : { id : number, name : string } []}
15
- } },
16
- put : { },
17
- delete : { },
18
- }
2
+ get: {
3
+ "/api/users/id": {
4
+ requireParams: { data: { id: number }[] }
5
+ responseStructure: {
6
+ status: "SUCCESS" | "ERROR"
7
+ message: string
8
+ parameter: { numberOfPeople: number; itemName: string }
9
+ data: { id: number; name: string }[]
10
+ }
11
+ }
12
+ }
13
+ post: {
14
+ "/api/item": {
15
+ requireParams: {
16
+ parameter: { lotNumber: number }
17
+ data: Partial<{ id: number; name: string; price: number }>
18
+ }
19
+ responseStructure: {
20
+ status: "SUCCESS" | "ERROR"
21
+ message: string
22
+ parameter: { numberOfPeople: number; itemName: string }
23
+ data: { id: number; name: string }[]
24
+ }
25
+ }
26
+ }
27
+ put: {}
28
+ delete: {}
29
+ }
package/src/test.ts CHANGED
@@ -42,7 +42,8 @@ function run() {
42
42
  parameter: {
43
43
  lotNumber: "number",
44
44
  },
45
- dataType: "arrayObject",
45
+ isPartialStructure: true,
46
+ dataType: "singleObject",
46
47
  structure: {
47
48
  id: "number",
48
49
  name: "string",
@@ -59,6 +60,7 @@ function run() {
59
60
  },
60
61
  },
61
62
  (req, res, next) => {
63
+ req.body.data.data
62
64
  // in body or query, you can access only requireParams that you declare at start
63
65
  const data = req.body.data
64
66
  /* data structure