gg-express 1.0.17 → 1.0.19

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
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
@@ -57,10 +66,14 @@ class GGApi {
57
66
  }
58
67
  }
59
68
  exports.GGApi = GGApi;
60
- const api = new GGApi();
61
- api.post("/api/item", {
62
- parameter: {
63
- bankID: 1,
64
- },
65
- data: [{ id: 2, name: "2" }],
66
- });
69
+ function run() {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ const api = new GGApi();
72
+ const data = yield api.post("/api/item", {
73
+ parameter: {
74
+ bankID: 1,
75
+ },
76
+ data: [{ id: 2, name: "2" }],
77
+ });
78
+ });
79
+ }
@@ -38,9 +38,12 @@ type singleOrArrayObject<DT extends requireParamsStructure["dataType"], T extend
38
38
  };
39
39
  };
40
40
  type MyRequest<DT extends requireParamsStructure["dataType"], T extends requireParamsStructure["structure"], K extends keyof T, P extends requireParamsStructure["parameter"]> = Request<{}, {}, singleOrArrayObject<DT, T, K, P>, singleOrArrayObject<DT, T, K, P>, {}>;
41
- type MyResponse<DT extends responseStructure["dataType"], T extends responseStructure["structure"], K extends keyof T> = Response<{
41
+ type MyResponse<DT extends responseStructure["dataType"], T extends responseStructure["structure"], K extends keyof T, P extends responseStructure["parameter"]> = Response<{
42
42
  status: "SUCCESS" | "ERROR";
43
43
  message: string;
44
+ parameter: {
45
+ [Key in keyof P]: numberOrString<P[Key]>;
46
+ };
44
47
  data: DT extends "arrayObject" ? Array<{
45
48
  [key in K]: numberOrString<T[key]>;
46
49
  }> : {
@@ -52,22 +55,22 @@ export default class GGExpress {
52
55
  private outputPath;
53
56
  constructor(app: Express.Express, outputPath: string[]);
54
57
  private rootMethod;
55
- 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"]>(url: `/api/${string}`, options: {
58
+ 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 M["parameter"]>(url: `/api/${string}`, options: {
56
59
  requireParams: M;
57
60
  responseStructure: R;
58
- }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P>, res: MyResponse<R["dataType"], RS, KR>, next: NextFunction) => any>): Express.Express;
59
- 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"]>(url: `/api/${string}`, options: {
61
+ }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P>, res: MyResponse<R["dataType"], RS, KR, PP>, next: NextFunction) => any>): Express.Express;
62
+ 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 M["parameter"]>(url: `/api/${string}`, options: {
60
63
  requireParams: M;
61
64
  responseStructure: R;
62
- }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P>, res: MyResponse<R["dataType"], RS, KR>, next: NextFunction) => any>): Express.Express;
63
- 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"]>(url: `/api/${string}`, options: {
65
+ }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P>, res: MyResponse<R["dataType"], RS, KR, PP>, next: NextFunction) => any>): Express.Express;
66
+ 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 M["parameter"]>(url: `/api/${string}`, options: {
64
67
  requireParams: M;
65
68
  responseStructure: R;
66
- }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P>, res: MyResponse<R["dataType"], RS, KR>, next: NextFunction) => any>): Express.Express;
67
- 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"]>(url: `/api/${string}`, options: {
69
+ }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P>, res: MyResponse<R["dataType"], RS, KR, PP>, next: NextFunction) => any>): Express.Express;
70
+ 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 M["parameter"]>(url: `/api/${string}`, options: {
68
71
  requireParams: M;
69
72
  responseStructure: R;
70
- }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P>, res: MyResponse<R["dataType"], RS, KR>, next: NextFunction) => any>): Express.Express;
73
+ }, ...middlewares: Array<(req: MyRequest<M["dataType"], T, K, P>, res: MyResponse<R["dataType"], RS, KR, PP>, next: NextFunction) => any>): Express.Express;
71
74
  generateAPIFiles(): void;
72
75
  private generateStaticRouteFile;
73
76
  private generateGGApi;
package/dist/GGExpress.js CHANGED
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
@@ -38,168 +47,105 @@ class GGExpress {
38
47
  this.generateStaticRouteFile();
39
48
  }
40
49
  generateStaticRouteFile() {
41
- const genParamCodeParameter = (data) => {
42
- let result;
43
- const resultArray = Object.entries(data["parameter"]).map(([key, value]) => ({
44
- name: key,
45
- value: value,
46
- }));
47
- if (resultArray.length === 0)
48
- return "";
49
- result = resultArray
50
- .map((row) => {
51
- if (Array.isArray(row.value)) {
52
- return ` ${row.name} : ${row.value
53
- .map((vRow) => {
54
- if (typeof vRow === "string")
55
- return `"${vRow}"`;
56
- else if (typeof vRow === "number")
57
- return `${vRow}`;
58
- })
59
- .join(" | ")}`;
60
- }
61
- else
62
- return ` ${row.name} : ${row.value}`;
63
- })
64
- .join(",");
65
- return result;
66
- };
67
- const genParamCode = (data) => {
68
- let result;
69
- const resultArray = Object.entries(data["structure"]).map(([key, value]) => ({
70
- name: key,
71
- value: value,
72
- }));
73
- if (resultArray.length === 0)
74
- return "";
75
- result = resultArray
76
- .map((row) => {
77
- if (Array.isArray(row.value)) {
78
- return ` ${row.name} : ${row.value
79
- .map((vRow) => {
80
- if (typeof vRow === "string")
81
- return `"${vRow}"`;
82
- else if (typeof vRow === "number")
83
- return `${vRow}`;
84
- })
85
- .join(" | ")}`;
86
- }
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const genParamCodeParameter = (data) => {
52
+ let result;
53
+ const resultArray = Object.entries(data["parameter"]).map(([key, value]) => ({
54
+ name: key,
55
+ value: value,
56
+ }));
57
+ if (resultArray.length === 0)
58
+ return "";
59
+ result = resultArray
60
+ .map((row) => {
61
+ if (Array.isArray(row.value)) {
62
+ return ` ${row.name} : ${row.value
63
+ .map((vRow) => {
64
+ if (typeof vRow === "string")
65
+ return `"${vRow}"`;
66
+ else if (typeof vRow === "number")
67
+ return `${vRow}`;
68
+ })
69
+ .join(" | ")}`;
70
+ }
71
+ else
72
+ return ` ${row.name} : ${row.value}`;
73
+ })
74
+ .join(",");
75
+ return result;
76
+ };
77
+ const genParamCode = (data) => {
78
+ let result;
79
+ const resultArray = Object.entries(data["structure"]).map(([key, value]) => ({
80
+ name: key,
81
+ value: value,
82
+ }));
83
+ if (resultArray.length === 0)
84
+ return "";
85
+ result = resultArray
86
+ .map((row) => {
87
+ if (Array.isArray(row.value)) {
88
+ return ` ${row.name} : ${row.value
89
+ .map((vRow) => {
90
+ if (typeof vRow === "string")
91
+ return `"${vRow}"`;
92
+ else if (typeof vRow === "number")
93
+ return `${vRow}`;
94
+ })
95
+ .join(" | ")}`;
96
+ }
97
+ else
98
+ return ` ${row.name} : ${row.value}`;
99
+ })
100
+ .join(",");
101
+ return result;
102
+ };
103
+ const isArray = (data) => {
104
+ if (Object.entries(data["structure"]).length === 0)
105
+ return "";
106
+ else if (data["dataType"] === "arrayObject")
107
+ return "[]";
87
108
  else
88
- return ` ${row.name} : ${row.value}`;
89
- })
90
- .join(",");
91
- return result;
92
- };
93
- const isArray = (data) => {
94
- if (Object.entries(data["structure"]).length === 0)
95
- return "";
96
- else if (data["dataType"] === "arrayObject")
97
- return "[]";
98
- else
99
- return "";
100
- };
101
- const genInterfaceString = (data) => {
102
- let rawString = ``;
103
- if (data.length === 0)
104
- return "";
105
- rawString = data
106
- .map((row) => {
107
- return ` "${row.url}" : {
109
+ return "";
110
+ };
111
+ const genInterfaceString = (data) => {
112
+ let rawString = ``;
113
+ if (data.length === 0)
114
+ return "";
115
+ rawString = data
116
+ .map((row) => {
117
+ return ` "${row.url}" : {
108
118
  requireParams : { parameter : {${genParamCodeParameter(row.requireParams)}}, data : { ${genParamCode(row.requireParams)} }${isArray(row.requireParams)}},
109
- responseStructure : { parameter : {${genParamCodeParameter(row.responseStructure)}}, data : { ${genParamCode(row.responseStructure)} } ${isArray(row.responseStructure)}}
119
+ responseStructure : {
120
+ status : "SUCCESS" | "ERROR",
121
+ message : string,
122
+ parameter : {${genParamCodeParameter(row.responseStructure)}}, data : { ${genParamCode(row.responseStructure)} } ${isArray(row.responseStructure)}}
110
123
  } `;
111
- })
112
- .join(",");
113
- return rawString;
114
- };
115
- const getRoute = myExpressRouteList.filter((row) => row.method === "get");
116
- const postRoute = myExpressRouteList.filter((row) => row.method === "post");
117
- const putRoute = myExpressRouteList.filter((row) => row.method === "put");
118
- const deleteDelete = myExpressRouteList.filter((row) => row.method === "delete");
119
- let content = `export interface staticRouteInterface {
124
+ })
125
+ .join(",");
126
+ return rawString;
127
+ };
128
+ const getRoute = myExpressRouteList.filter((row) => row.method === "get");
129
+ const postRoute = myExpressRouteList.filter((row) => row.method === "post");
130
+ const putRoute = myExpressRouteList.filter((row) => row.method === "put");
131
+ const deleteDelete = myExpressRouteList.filter((row) => row.method === "delete");
132
+ let content = `export interface staticRouteInterface {
120
133
  get : { ${genInterfaceString(getRoute)} },
121
134
  post : { ${genInterfaceString(postRoute)} },
122
135
  put : { ${genInterfaceString(putRoute)} },
123
136
  delete : { ${genInterfaceString(deleteDelete)} },
124
137
  }`;
125
- for (let row of this.outputPath) {
126
- fs_1.default.writeFileSync(path_1.default.join(row, "staticRouteInterface.ts"), content);
127
- this.generateGGApi(path_1.default.join(row, "apiConnector.ts"));
128
- }
138
+ for (let row of this.outputPath) {
139
+ fs_1.default.writeFileSync(path_1.default.join(row, "staticRouteInterface.ts"), content);
140
+ yield this.generateGGApi(path_1.default.join(row, "apiConnector.ts"));
141
+ }
142
+ });
129
143
  }
130
144
  generateGGApi(filePathWithFileName) {
131
- let code = `
132
- import axios from "axios"
133
- import { staticRouteInterface } from "./staticRouteInterface"
134
-
135
- export class GGApi {
136
- constructor() {}
137
-
138
- get<T extends keyof staticRouteInterface["get"]>(
139
- url: T,
140
- requireParams: staticRouteInterface["get"][T]["requireParams"]
141
- ): Promise<staticRouteInterface["get"][T]["responseStructure"]> {
142
- return new Promise((resolve, reject) => {
143
- axios
144
- .get(url, { params: requireParams })
145
- .then((response) => {
146
- resolve(response.data)
147
- })
148
- .catch((error) => {
149
- reject(error)
150
- })
151
- })
152
- }
153
-
154
- post<T extends keyof staticRouteInterface["post"]>(
155
- url: T,
156
- requireParams: staticRouteInterface["post"][T]["requireParams"]
157
- ): Promise<staticRouteInterface["post"][T]["responseStructure"]> {
158
- return new Promise((resolve, reject) => {
159
- axios
160
- .post(url, { data: requireParams })
161
- .then((response) => {
162
- resolve(response.data)
163
- })
164
- .catch((error) => {
165
- reject(error)
166
- })
167
- })
168
- }
169
- put<T extends keyof staticRouteInterface["put"]>(
170
- url: T,
171
- requireParams: staticRouteInterface["put"][T]["requireParams"]
172
- ): Promise<staticRouteInterface["put"][T]["responseStructure"]> {
173
- return new Promise((resolve, reject) => {
174
- axios
175
- .put(url, { data: requireParams })
176
- .then((response) => {
177
- resolve(response.data)
178
- })
179
- .catch((error) => {
180
- reject(error)
181
- })
182
- })
183
- }
184
- delete<T extends keyof staticRouteInterface["delete"]>(
185
- url: T,
186
- requireParams: staticRouteInterface["delete"][T]["requireParams"]
187
- ): Promise<staticRouteInterface["delete"][T]["responseStructure"]> {
188
- return new Promise((resolve, reject) => {
189
- axios
190
- .delete(url, { data: requireParams })
191
- .then((response) => {
192
- resolve(response.data)
193
- })
194
- .catch((error) => {
195
- reject(error)
196
- })
197
- })
198
- }
199
- }
200
-
201
- `;
202
- fs_1.default.writeFileSync(filePathWithFileName, code);
145
+ return __awaiter(this, void 0, void 0, function* () {
146
+ const code = yield fs_1.default.readFileSync("./GGApi.ts");
147
+ fs_1.default.writeFileSync(filePathWithFileName, code);
148
+ });
203
149
  }
204
150
  }
205
151
  exports.default = GGExpress;
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
@@ -57,3 +66,15 @@ class GGApi {
57
66
  }
58
67
  }
59
68
  exports.GGApi = GGApi;
69
+ function run() {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ const api = new GGApi();
72
+ const data = yield api.post("/api/item", {
73
+ parameter: {
74
+ bankID: 1,
75
+ },
76
+ data: [{ id: 2, name: "2" }],
77
+ });
78
+ data.data;
79
+ });
80
+ }
@@ -12,8 +12,16 @@ export interface staticRouteInterface {
12
12
  }[];
13
13
  };
14
14
  responseStructure: {
15
- parameter: {};
16
- data: {};
15
+ status: "SUCCESS" | "ERROR";
16
+ message: string;
17
+ parameter: {
18
+ numberOfPeople: number;
19
+ itemName: string;
20
+ };
21
+ data: {
22
+ id: number;
23
+ name: string;
24
+ }[];
17
25
  };
18
26
  };
19
27
  };
package/dist/test.js CHANGED
@@ -20,9 +20,12 @@ function run() {
20
20
  },
21
21
  },
22
22
  responseStructure: {
23
- parameter: {},
23
+ parameter: { numberOfPeople: "number", itemName: "string" },
24
24
  dataType: "arrayObject",
25
- structure: {},
25
+ structure: {
26
+ id: "number",
27
+ name: "string",
28
+ },
26
29
  },
27
30
  }, (req, res, next) => {
28
31
  req.body.parameter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gg-express",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "",
5
5
  "main": "dist/GGExpress.js",
6
6
  "scripts": {
package/src/GGApi.ts CHANGED
@@ -67,10 +67,12 @@ export class GGApi {
67
67
  }
68
68
  }
69
69
 
70
- const api = new GGApi()
71
- api.post("/api/item", {
72
- parameter: {
73
- bankID: 1,
74
- },
75
- data: [{ id: 2, name: "2" }],
76
- })
70
+ async function run() {
71
+ const api = new GGApi()
72
+ const data = await api.post("/api/item", {
73
+ parameter: {
74
+ bankID: 1,
75
+ },
76
+ data: [{ id: 2, name: "2" }],
77
+ })
78
+ }
package/src/GGExpress.ts CHANGED
@@ -67,10 +67,12 @@ type MyRequest<
67
67
  type MyResponse<
68
68
  DT extends responseStructure["dataType"],
69
69
  T extends responseStructure["structure"],
70
- K extends keyof T
70
+ K extends keyof T,
71
+ P extends responseStructure["parameter"]
71
72
  > = Response<{
72
73
  status: "SUCCESS" | "ERROR"
73
74
  message: string
75
+ parameter: { [Key in keyof P]: numberOrString<P[Key]> }
74
76
  data: DT extends "arrayObject"
75
77
  ? Array<{ [key in K]: numberOrString<T[key]> }>
76
78
  : { [key in K]: numberOrString<T[key]> }
@@ -98,7 +100,8 @@ export default class GGExpress {
98
100
  R extends responseStructure,
99
101
  RS extends R["structure"],
100
102
  KR extends keyof RS,
101
- P extends M["parameter"]
103
+ P extends M["parameter"],
104
+ PP extends M["parameter"]
102
105
  >(
103
106
  method: "get" | "post" | "put" | "delete",
104
107
  url: string,
@@ -109,7 +112,7 @@ export default class GGExpress {
109
112
  ...middlewares: Array<
110
113
  (
111
114
  req: MyRequest<M["dataType"], T, K, P>,
112
- res: MyResponse<R["dataType"], RS, KR>,
115
+ res: MyResponse<R["dataType"], RS, KR, PP>,
113
116
  next: NextFunction
114
117
  ) => any
115
118
  >
@@ -140,7 +143,8 @@ export default class GGExpress {
140
143
  R extends responseStructure,
141
144
  RS extends R["structure"],
142
145
  KR extends keyof RS,
143
- P extends M["parameter"]
146
+ P extends M["parameter"],
147
+ PP extends M["parameter"]
144
148
  >(
145
149
  url: `/api/${string}`,
146
150
  options: {
@@ -150,7 +154,7 @@ export default class GGExpress {
150
154
  ...middlewares: Array<
151
155
  (
152
156
  req: MyRequest<M["dataType"], T, K, P>,
153
- res: MyResponse<R["dataType"], RS, KR>,
157
+ res: MyResponse<R["dataType"], RS, KR, PP>,
154
158
  next: NextFunction
155
159
  ) => any
156
160
  >
@@ -165,7 +169,8 @@ export default class GGExpress {
165
169
  R extends responseStructure,
166
170
  RS extends R["structure"],
167
171
  KR extends keyof RS,
168
- P extends M["parameter"]
172
+ P extends M["parameter"],
173
+ PP extends M["parameter"]
169
174
  >(
170
175
  url: `/api/${string}`,
171
176
  options: {
@@ -175,7 +180,7 @@ export default class GGExpress {
175
180
  ...middlewares: Array<
176
181
  (
177
182
  req: MyRequest<M["dataType"], T, K, P>,
178
- res: MyResponse<R["dataType"], RS, KR>,
183
+ res: MyResponse<R["dataType"], RS, KR, PP>,
179
184
  next: NextFunction
180
185
  ) => any
181
186
  >
@@ -189,7 +194,8 @@ export default class GGExpress {
189
194
  R extends responseStructure,
190
195
  RS extends R["structure"],
191
196
  KR extends keyof RS,
192
- P extends M["parameter"]
197
+ P extends M["parameter"],
198
+ PP extends M["parameter"]
193
199
  >(
194
200
  url: `/api/${string}`,
195
201
  options: {
@@ -199,7 +205,7 @@ export default class GGExpress {
199
205
  ...middlewares: Array<
200
206
  (
201
207
  req: MyRequest<M["dataType"], T, K, P>,
202
- res: MyResponse<R["dataType"], RS, KR>,
208
+ res: MyResponse<R["dataType"], RS, KR, PP>,
203
209
  next: NextFunction
204
210
  ) => any
205
211
  >
@@ -213,7 +219,8 @@ export default class GGExpress {
213
219
  R extends responseStructure,
214
220
  RS extends R["structure"],
215
221
  KR extends keyof RS,
216
- P extends M["parameter"]
222
+ P extends M["parameter"],
223
+ PP extends M["parameter"]
217
224
  >(
218
225
  url: `/api/${string}`,
219
226
  options: {
@@ -223,7 +230,7 @@ export default class GGExpress {
223
230
  ...middlewares: Array<
224
231
  (
225
232
  req: MyRequest<M["dataType"], T, K, P>,
226
- res: MyResponse<R["dataType"], RS, KR>,
233
+ res: MyResponse<R["dataType"], RS, KR, PP>,
227
234
  next: NextFunction
228
235
  ) => any
229
236
  >
@@ -233,7 +240,7 @@ export default class GGExpress {
233
240
  public generateAPIFiles() {
234
241
  this.generateStaticRouteFile()
235
242
  }
236
- private generateStaticRouteFile() {
243
+ private async generateStaticRouteFile() {
237
244
  const genParamCodeParameter = (data: requireParamsStructure) => {
238
245
  let result: string
239
246
  const resultArray = Object.entries(data["parameter"]).map(
@@ -299,7 +306,10 @@ export default class GGExpress {
299
306
  )}}, data : { ${genParamCode(row.requireParams)} }${isArray(
300
307
  row.requireParams
301
308
  )}},
302
- responseStructure : { parameter : {${genParamCodeParameter(
309
+ responseStructure : {
310
+ status : "SUCCESS" | "ERROR",
311
+ message : string,
312
+ parameter : {${genParamCodeParameter(
303
313
  row.responseStructure
304
314
  )}}, data : { ${genParamCode(row.responseStructure)} } ${isArray(
305
315
  row.responseStructure
@@ -325,81 +335,12 @@ export default class GGExpress {
325
335
 
326
336
  for (let row of this.outputPath) {
327
337
  fs.writeFileSync(path.join(row, "staticRouteInterface.ts"), content)
328
- this.generateGGApi(path.join(row, "apiConnector.ts"))
338
+ await this.generateGGApi(path.join(row, "apiConnector.ts"))
329
339
  }
330
340
  }
331
- private generateGGApi(filePathWithFileName: string) {
332
- let code = `
333
- import axios from "axios"
334
- import { staticRouteInterface } from "./staticRouteInterface"
335
-
336
- export class GGApi {
337
- constructor() {}
338
-
339
- get<T extends keyof staticRouteInterface["get"]>(
340
- url: T,
341
- requireParams: staticRouteInterface["get"][T]["requireParams"]
342
- ): Promise<staticRouteInterface["get"][T]["responseStructure"]> {
343
- return new Promise((resolve, reject) => {
344
- axios
345
- .get(url, { params: requireParams })
346
- .then((response) => {
347
- resolve(response.data)
348
- })
349
- .catch((error) => {
350
- reject(error)
351
- })
352
- })
353
- }
354
-
355
- post<T extends keyof staticRouteInterface["post"]>(
356
- url: T,
357
- requireParams: staticRouteInterface["post"][T]["requireParams"]
358
- ): Promise<staticRouteInterface["post"][T]["responseStructure"]> {
359
- return new Promise((resolve, reject) => {
360
- axios
361
- .post(url, { data: requireParams })
362
- .then((response) => {
363
- resolve(response.data)
364
- })
365
- .catch((error) => {
366
- reject(error)
367
- })
368
- })
369
- }
370
- put<T extends keyof staticRouteInterface["put"]>(
371
- url: T,
372
- requireParams: staticRouteInterface["put"][T]["requireParams"]
373
- ): Promise<staticRouteInterface["put"][T]["responseStructure"]> {
374
- return new Promise((resolve, reject) => {
375
- axios
376
- .put(url, { data: requireParams })
377
- .then((response) => {
378
- resolve(response.data)
379
- })
380
- .catch((error) => {
381
- reject(error)
382
- })
383
- })
384
- }
385
- delete<T extends keyof staticRouteInterface["delete"]>(
386
- url: T,
387
- requireParams: staticRouteInterface["delete"][T]["requireParams"]
388
- ): Promise<staticRouteInterface["delete"][T]["responseStructure"]> {
389
- return new Promise((resolve, reject) => {
390
- axios
391
- .delete(url, { data: requireParams })
392
- .then((response) => {
393
- resolve(response.data)
394
- })
395
- .catch((error) => {
396
- reject(error)
397
- })
398
- })
399
- }
400
- }
341
+ private async generateGGApi(filePathWithFileName: string) {
342
+ const code = await fs.readFileSync("./GGApi.ts")
401
343
 
402
- `
403
344
  fs.writeFileSync(filePathWithFileName, code)
404
345
  }
405
346
  }
@@ -10,7 +10,7 @@ export class GGApi {
10
10
  ): Promise<staticRouteInterface["get"][T]["responseStructure"]> {
11
11
  return new Promise((resolve, reject) => {
12
12
  axios
13
- .get(url, { params: requireParams })
13
+ .get(url as string, { params: requireParams })
14
14
  .then((response) => {
15
15
  resolve(response.data)
16
16
  })
@@ -26,7 +26,7 @@ export class GGApi {
26
26
  ): Promise<staticRouteInterface["post"][T]["responseStructure"]> {
27
27
  return new Promise((resolve, reject) => {
28
28
  axios
29
- .post(url, { data: requireParams })
29
+ .post(url as string, { data: requireParams })
30
30
  .then((response) => {
31
31
  resolve(response.data)
32
32
  })
@@ -41,7 +41,7 @@ export class GGApi {
41
41
  ): Promise<staticRouteInterface["put"][T]["responseStructure"]> {
42
42
  return new Promise((resolve, reject) => {
43
43
  axios
44
- .put(url, { data: requireParams })
44
+ .put(url as string, { data: requireParams })
45
45
  .then((response) => {
46
46
  resolve(response.data)
47
47
  })
@@ -56,7 +56,7 @@ export class GGApi {
56
56
  ): Promise<staticRouteInterface["delete"][T]["responseStructure"]> {
57
57
  return new Promise((resolve, reject) => {
58
58
  axios
59
- .delete(url, { data: requireParams })
59
+ .delete(url as string, { data: requireParams })
60
60
  .then((response) => {
61
61
  resolve(response.data)
62
62
  })
@@ -66,3 +66,14 @@ export class GGApi {
66
66
  })
67
67
  }
68
68
  }
69
+
70
+ async function run() {
71
+ const api = new GGApi()
72
+ const data = await api.post("/api/item", {
73
+ parameter: {
74
+ bankID: 1,
75
+ },
76
+ data: [{ id: 2, name: "2" }],
77
+ })
78
+ data.data
79
+ }
@@ -2,7 +2,10 @@ export interface staticRouteInterface {
2
2
  get : { },
3
3
  post : { "/api/item" : {
4
4
  requireParams : { parameter : { bankID : number}, data : { id : number, name : string }[]},
5
- responseStructure : { parameter : {}, data : { } }
5
+ responseStructure : {
6
+ status : "SUCCESS" | "ERROR",
7
+ message : string,
8
+ parameter : { numberOfPeople : number, itemName : string}, data : { id : number, name : string } []}
6
9
  } },
7
10
  put : { },
8
11
  delete : { },
package/src/test.ts CHANGED
@@ -17,9 +17,12 @@ function run() {
17
17
  },
18
18
  },
19
19
  responseStructure: {
20
- parameter: {},
20
+ parameter: { numberOfPeople: "number", itemName: "string" },
21
21
  dataType: "arrayObject",
22
- structure: {},
22
+ structure: {
23
+ id: "number",
24
+ name: "string",
25
+ },
23
26
  },
24
27
  },
25
28
  (req, res, next) => {