gg-express 1.0.81 → 1.0.86

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/run.test.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
  };
@@ -109,8 +118,9 @@ function run() {
109
118
  },
110
119
  });
111
120
  });
112
- app.listen(3002, () => {
113
- ggapp.generateAPIFiles();
114
- });
121
+ app.listen(3002, () => __awaiter(this, void 0, void 0, function* () {
122
+ yield ggapp.generateAPIFiles();
123
+ process.exit();
124
+ }));
115
125
  }
116
126
  run();
@@ -2,7 +2,7 @@ import { NextFunction, Request, Response } from "express";
2
2
  import Express from "express-serve-static-core";
3
3
  import { convertRoot, InputParent } from "./typeResolver";
4
4
  export type Method = "get" | "post" | "put" | "delete";
5
- type ReqByMethod<M extends Method, RQ extends InputParent> = M extends "get" ? convertRoot<MyRequestQuery<RQ>> : convertRoot<MyRequestBody<RQ>>;
5
+ type MyRequest<M extends Method, RQ extends InputParent> = M extends "get" ? convertRoot<MyRequestQuery<RQ>> : convertRoot<MyRequestBody<RQ>>;
6
6
  type MyRequestQuery<T extends InputParent> = Request<{}, {}, {}, T, {}>;
7
7
  type MyRequestBody<T extends InputParent> = Request<{}, {}, T, {}, {}>;
8
8
  type MyResponse<T extends InputParent> = Response<{
@@ -19,19 +19,19 @@ export default class GGExpressV2<appName extends string> {
19
19
  get<RQ extends InputParent, RS extends InputParent>(url: `/api/${appName | "seed"}/${string}` | `/api/${appName | "seed"}/${string}`[], options: {
20
20
  requireParams: RQ;
21
21
  responseStructure: RS;
22
- }, ...middlewares: Array<(req: ReqByMethod<"get", RQ>, res: MyResponse<RS>, next: NextFunction) => any>): Express.Express;
22
+ }, ...middlewares: Array<(req: MyRequest<"get", RQ>, res: MyResponse<RS>, next: NextFunction) => any>): Express.Express;
23
23
  post<RQ extends InputParent, RS extends InputParent>(url: `/api/${appName | "seed"}/${string}` | `/api/${appName | "seed"}/${string}`[], options: {
24
24
  requireParams: RQ;
25
25
  responseStructure: RS;
26
- }, ...middlewares: Array<(req: ReqByMethod<"post", RQ>, res: MyResponse<RS>, next: NextFunction) => any>): Express.Express;
26
+ }, ...middlewares: Array<(req: MyRequest<"post", RQ>, res: MyResponse<RS>, next: NextFunction) => any>): Express.Express;
27
27
  put<RQ extends InputParent, RS extends InputParent>(url: `/api/${appName | "seed"}/${string}` | `/api/${appName | "seed"}/${string}`[], options: {
28
28
  requireParams: RQ;
29
29
  responseStructure: RS;
30
- }, ...middlewares: Array<(req: ReqByMethod<"put", RQ>, res: MyResponse<RS>, next: NextFunction) => any>): Express.Express;
30
+ }, ...middlewares: Array<(req: MyRequest<"put", RQ>, res: MyResponse<RS>, next: NextFunction) => any>): Express.Express;
31
31
  delete<RQ extends InputParent, RS extends InputParent>(url: `/api/${appName | "seed"}/${string}` | `/api/${appName | "seed"}/${string}`[], options: {
32
32
  requireParams: RQ;
33
33
  responseStructure: RS;
34
- }, ...middlewares: Array<(req: ReqByMethod<"delete", RQ>, res: MyResponse<RS>, next: NextFunction) => any>): Express.Express;
34
+ }, ...middlewares: Array<(req: MyRequest<"delete", RQ>, res: MyResponse<RS>, next: NextFunction) => any>): Express.Express;
35
35
  generateAPIFiles(): Promise<void>;
36
36
  private generateStaticRouteFile;
37
37
  }
@@ -20,7 +20,7 @@ export class GGApi_v2 {
20
20
  ): Promise<${tempInterfaceName}["get"][T]["responseStructure"]> {
21
21
  return new Promise((resolve, reject) => {
22
22
  axios
23
- .get(url as string, { params: { data: requireParams } })
23
+ .get(url as string, { params: requireParams })
24
24
  .then((response) => {
25
25
  resolve(response.data)
26
26
  })
@@ -50,7 +50,10 @@ function parentInputToCode(data) {
50
50
  const recusiveResult = recursiveExtract(target[keyName], keyName);
51
51
  tempResult.push(recusiveResult);
52
52
  }
53
- result = `${result} \n ${parentKeyName} : { ${tempResult.join(",")} }`;
53
+ if (parentKeyName === "root")
54
+ result = ` { ${tempResult.join(",")} } `;
55
+ else
56
+ result = `${result} \n ${parentKeyName} : { ${tempResult.join(",")} }`;
54
57
  }
55
58
  // check array ---------------------------
56
59
  else if (Array.isArray(target)) {
@@ -70,8 +73,8 @@ function parentInputToCode(data) {
70
73
  }
71
74
  return `${result}`;
72
75
  };
73
- const result = recursiveExtract(data, "data");
74
- return `${result} `;
76
+ const result = recursiveExtract(data, "root");
77
+ return `${result}`;
75
78
  }
76
79
  function generateStaticRouteFileV2(appName, data) {
77
80
  const interfaceName = `staticRouteInterface_${appName}_v2`;
@@ -80,10 +83,11 @@ function generateStaticRouteFileV2(appName, data) {
80
83
  return keyName
81
84
  .map((keyName) => `
82
85
  "${keyName}" : {
83
- requireParams : { ${data[keyName].requireParams} },
84
- responseStructure : { ${data[keyName].responseStructure},
86
+ requireParams : ${data[keyName].requireParams} ,
87
+ responseStructure : {
88
+ data : ${data[keyName].responseStructure},
85
89
  status: "SUCCESS" | "ERROR",
86
- message: string }
90
+ message: string }
87
91
  }`)
88
92
  .join(", ");
89
93
  };
@@ -10,7 +10,7 @@ class GGApi_v2 {
10
10
  get(url, requireParams) {
11
11
  return new Promise((resolve, reject) => {
12
12
  axios_1.default
13
- .get(url, { params: { data: requireParams } })
13
+ .get(url, { params: requireParams })
14
14
  .then((response) => {
15
15
  resolve(response.data);
16
16
  })
@@ -2,9 +2,7 @@ export interface staticRouteInterface_hotel_v2 {
2
2
  get: {
3
3
  "/api/hotel/users/id": {
4
4
  requireParams: {
5
- data: {
6
- id: number;
7
- };
5
+ id: number;
8
6
  };
9
7
  responseStructure: {
10
8
  data: {
@@ -21,9 +19,7 @@ export interface staticRouteInterface_hotel_v2 {
21
19
  post: {
22
20
  "/api/hotel/booking/id": {
23
21
  requireParams: {
24
- data: {
25
- id: number;
26
- };
22
+ id: number;
27
23
  };
28
24
  responseStructure: {
29
25
  data: {
@@ -15,8 +15,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const express_1 = __importDefault(require("express"));
16
16
  const GGExpressV2_1 = __importDefault(require("./GGExpressV2"));
17
17
  const typeResolver_1 = require("./typeResolver");
18
- const apiConnector_hotel_v2_1 = require("./output/apiConnector_hotel_v2");
19
- // import { GGApi_v2 } from "./output/apiConnector_hotel_v2"
20
18
  function run() {
21
19
  const app = (0, express_1.default)();
22
20
  const ggapp = new GGExpressV2_1.default(app, "hotel", ["./output"]);
@@ -31,7 +29,8 @@ function run() {
31
29
  }),
32
30
  },
33
31
  }, (req, res, next) => {
34
- console.log(req.query);
32
+ console.log("req.query", req.query);
33
+ console.log("req.query.id", req.query.id);
35
34
  return res.json({
36
35
  message: "",
37
36
  status: "SUCCESS",
@@ -49,7 +48,7 @@ function run() {
49
48
  },
50
49
  },
51
50
  }, (req, res, next) => {
52
- console.log(req.query);
51
+ req.body.id;
53
52
  return res.json({
54
53
  message: "",
55
54
  status: "SUCCESS",
@@ -64,15 +63,20 @@ function run() {
64
63
  app.listen(3002, () => __awaiter(this, void 0, void 0, function* () {
65
64
  yield ggapp.generateAPIFiles();
66
65
  console.log("done");
67
- process.exit(0);
66
+ // process.exit(0)
68
67
  }));
69
68
  }
70
- run();
71
- const x = new apiConnector_hotel_v2_1.GGApi_v2();
72
- x.post("/api/hotel/booking/id", {
73
- data: { id: 1 },
74
- }).then((response) => {
75
- response.status === "ERROR";
76
- response.data.bookingData;
77
- response.data.bookingData.roomNumber;
78
- });
69
+ // run()
70
+ // setTimeout(() => {
71
+ // const x = new GGApi_v2()
72
+ // //@ts-ignore
73
+ // x.get("http://localhost:3002/api/hotel/users/id", {
74
+ // id: 1,
75
+ // })
76
+ // .then((response) => {
77
+ // console.log("response", response)
78
+ // })
79
+ // .catch((error) => {
80
+ // console.error("fetch error")
81
+ // })
82
+ // }, 3000)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gg-express",
3
- "version": "1.0.81",
3
+ "version": "1.0.86",
4
4
  "description": "",
5
5
  "main": "dist/main.js",
6
6
  "scripts": {
package/src/run.test.ts CHANGED
@@ -119,8 +119,9 @@ function run() {
119
119
  })
120
120
  }
121
121
  )
122
- app.listen(3002, () => {
123
- ggapp.generateAPIFiles()
122
+ app.listen(3002, async () => {
123
+ await ggapp.generateAPIFiles()
124
+ process.exit()
124
125
  })
125
126
  }
126
127
  run()
@@ -9,9 +9,11 @@ import { generateGGApi_v2 } from "./generateGGApi_v2"
9
9
  type Unarray<T> = T extends (infer U)[] ? U : T
10
10
  export type Method = "get" | "post" | "put" | "delete"
11
11
 
12
- type ReqByMethod<M extends Method, RQ extends InputParent> = M extends "get"
13
- ? convertRoot<MyRequestQuery<RQ>>
14
- : convertRoot<MyRequestBody<RQ>>
12
+ type MyRequest<M extends Method, RQ extends InputParent> = M extends "get"
13
+ ? //get
14
+ convertRoot<MyRequestQuery<RQ>>
15
+ : // post, put, delete
16
+ convertRoot<MyRequestBody<RQ>>
15
17
 
16
18
  type MyRequestQuery<T extends InputParent> = Request<{}, {}, {}, T, {}>
17
19
  type MyRequestBody<T extends InputParent> = Request<{}, {}, T, {}, {}>
@@ -52,7 +54,7 @@ export default class GGExpressV2<appName extends string> {
52
54
  },
53
55
  ...middlewares: Array<
54
56
  (
55
- req: ReqByMethod<M, RQ>,
57
+ req: MyRequest<M, RQ>,
56
58
  res: MyResponse<RS>,
57
59
  next: NextFunction
58
60
  ) => void | Promise<void>
@@ -85,7 +87,7 @@ export default class GGExpressV2<appName extends string> {
85
87
  (mw) =>
86
88
  ((req: Request, res: Response, next: NextFunction) =>
87
89
  mw(
88
- req as unknown as ReqByMethod<M, RQ>,
90
+ req as unknown as MyRequest<M, RQ>,
89
91
  res as MyResponse<RS>,
90
92
  next
91
93
  )) as Express.RequestHandler
@@ -102,7 +104,7 @@ export default class GGExpressV2<appName extends string> {
102
104
  },
103
105
  ...middlewares: Array<
104
106
  (
105
- req: ReqByMethod<"get", RQ>,
107
+ req: MyRequest<"get", RQ>,
106
108
  res: MyResponse<RS>,
107
109
  next: NextFunction
108
110
  ) => any
@@ -121,7 +123,7 @@ export default class GGExpressV2<appName extends string> {
121
123
  },
122
124
  ...middlewares: Array<
123
125
  (
124
- req: ReqByMethod<"post", RQ>,
126
+ req: MyRequest<"post", RQ>,
125
127
  res: MyResponse<RS>,
126
128
  next: NextFunction
127
129
  ) => any
@@ -139,7 +141,7 @@ export default class GGExpressV2<appName extends string> {
139
141
  },
140
142
  ...middlewares: Array<
141
143
  (
142
- req: ReqByMethod<"put", RQ>,
144
+ req: MyRequest<"put", RQ>,
143
145
  res: MyResponse<RS>,
144
146
  next: NextFunction
145
147
  ) => any
@@ -157,7 +159,7 @@ export default class GGExpressV2<appName extends string> {
157
159
  },
158
160
  ...middlewares: Array<
159
161
  (
160
- req: ReqByMethod<"delete", RQ>,
162
+ req: MyRequest<"delete", RQ>,
161
163
  res: MyResponse<RS>,
162
164
  next: NextFunction
163
165
  ) => any
@@ -18,7 +18,7 @@ export class GGApi_v2 {
18
18
  ): Promise<${tempInterfaceName}["get"][T]["responseStructure"]> {
19
19
  return new Promise((resolve, reject) => {
20
20
  axios
21
- .get(url as string, { params: { data: requireParams } })
21
+ .get(url as string, { params: requireParams })
22
22
  .then((response) => {
23
23
  resolve(response.data)
24
24
  })
@@ -72,7 +72,9 @@ function parentInputToCode(data: InputParent) {
72
72
  const recusiveResult = recursiveExtract(target[keyName], keyName)
73
73
  tempResult.push(recusiveResult)
74
74
  }
75
- result = `${result} \n ${parentKeyName} : { ${tempResult.join(",")} }`
75
+ if (parentKeyName === "root") result = ` { ${tempResult.join(",")} } `
76
+ else
77
+ result = `${result} \n ${parentKeyName} : { ${tempResult.join(",")} }`
76
78
  }
77
79
 
78
80
  // check array ---------------------------
@@ -95,8 +97,8 @@ function parentInputToCode(data: InputParent) {
95
97
  }
96
98
  return `${result}`
97
99
  }
98
- const result = recursiveExtract(data, "data")
99
- return `${result} `
100
+ const result = recursiveExtract(data, "root")
101
+ return `${result}`
100
102
  }
101
103
  export function generateStaticRouteFileV2(appName: string, data: routeList[]) {
102
104
  const interfaceName = `staticRouteInterface_${appName}_v2`
@@ -106,10 +108,11 @@ export function generateStaticRouteFileV2(appName: string, data: routeList[]) {
106
108
  .map(
107
109
  (keyName) => `
108
110
  "${keyName}" : {
109
- requireParams : { ${data[keyName].requireParams} },
110
- responseStructure : { ${data[keyName].responseStructure},
111
+ requireParams : ${data[keyName].requireParams} ,
112
+ responseStructure : {
113
+ data : ${data[keyName].responseStructure},
111
114
  status: "SUCCESS" | "ERROR",
112
- message: string }
115
+ message: string }
113
116
  }`
114
117
  )
115
118
  .join(", ")
@@ -11,7 +11,7 @@ export class GGApi_v2 {
11
11
  ): Promise<staticRouteInterface_hotel_v2["get"][T]["responseStructure"]> {
12
12
  return new Promise((resolve, reject) => {
13
13
  axios
14
- .get(url as string, { params: { data: requireParams } })
14
+ .get(url as string, { params: requireParams })
15
15
  .then((response) => {
16
16
  resolve(response.data)
17
17
  })
@@ -2,23 +2,21 @@
2
2
  export interface staticRouteInterface_hotel_v2 {
3
3
  get : {
4
4
  "/api/hotel/users/id" : {
5
- requireParams : {
6
- data : { id : number } },
7
- responseStructure : {
8
- data : {
5
+ requireParams : { id : number } ,
6
+ responseStructure : {
7
+ data : {
9
8
  userData : { id : number,name : string }[] } ,
10
9
  status: "SUCCESS" | "ERROR",
11
- message: string }
10
+ message: string }
12
11
  } },
13
12
  post : {
14
13
  "/api/hotel/booking/id" : {
15
- requireParams : {
16
- data : { id : number } },
17
- responseStructure : {
18
- data : {
14
+ requireParams : { id : number } ,
15
+ responseStructure : {
16
+ data : {
19
17
  bookingData : { id : number,roomNumber : string } } ,
20
18
  status: "SUCCESS" | "ERROR",
21
- message: string }
19
+ message: string }
22
20
  } },
23
21
  put : { },
24
22
  delete : { },
@@ -2,7 +2,6 @@ import express, { Express } from "express"
2
2
  import GGExpressV2 from "./GGExpressV2"
3
3
  import { toArray } from "./typeResolver"
4
4
  import { GGApi_v2 } from "./output/apiConnector_hotel_v2"
5
- // import { GGApi_v2 } from "./output/apiConnector_hotel_v2"
6
5
  function run() {
7
6
  const app = express()
8
7
  const ggapp = new GGExpressV2<"hotel">(app, "hotel", ["./output"])
@@ -20,7 +19,9 @@ function run() {
20
19
  },
21
20
  },
22
21
  (req, res, next) => {
23
- console.log(req.query)
22
+ console.log("req.query", req.query)
23
+ console.log("req.query.id", req.query.id)
24
+
24
25
  return res.json({
25
26
  message: "",
26
27
  status: "SUCCESS",
@@ -42,7 +43,7 @@ function run() {
42
43
  },
43
44
  },
44
45
  (req, res, next) => {
45
- console.log(req.query)
46
+ req.body.id
46
47
  return res.json({
47
48
  message: "",
48
49
  status: "SUCCESS",
@@ -59,16 +60,21 @@ function run() {
59
60
  app.listen(3002, async () => {
60
61
  await ggapp.generateAPIFiles()
61
62
  console.log("done")
62
- process.exit(0)
63
+ // process.exit(0)
63
64
  })
64
65
  }
65
- run()
66
+ // run()
66
67
 
67
- const x = new GGApi_v2()
68
- x.post("/api/hotel/booking/id", {
69
- data: { id: 1 },
70
- }).then((response) => {
71
- response.status === "ERROR"
72
- response.data.bookingData
73
- response.data.bookingData.roomNumber
74
- })
68
+ // setTimeout(() => {
69
+ // const x = new GGApi_v2()
70
+ // //@ts-ignore
71
+ // x.get("http://localhost:3002/api/hotel/users/id", {
72
+ // id: 1,
73
+ // })
74
+ // .then((response) => {
75
+ // console.log("response", response)
76
+ // })
77
+ // .catch((error) => {
78
+ // console.error("fetch error")
79
+ // })
80
+ // }, 3000)