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 +13 -3
- package/dist/v2/GGExpressV2.d.ts +5 -5
- package/dist/v2/generateGGApi_v2.js +1 -1
- package/dist/v2/generateStaticRouteFileV2.js +10 -6
- package/dist/v2/output/apiConnector_hotel_v2.js +1 -1
- package/dist/v2/output/staticRouteInterface_hotel_v2.d.ts +2 -6
- package/dist/v2/run_v2.test.js +18 -14
- package/package.json +1 -1
- package/src/run.test.ts +3 -2
- package/src/v2/GGExpressV2.ts +11 -9
- package/src/v2/generateGGApi_v2.ts +1 -1
- package/src/v2/generateStaticRouteFileV2.ts +9 -6
- package/src/v2/output/apiConnector_hotel_v2.ts +1 -1
- package/src/v2/output/staticRouteInterface_hotel_v2.ts +8 -10
- package/src/v2/run_v2.test.ts +19 -13
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();
|
package/dist/v2/GGExpressV2.d.ts
CHANGED
|
@@ -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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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, "
|
|
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 :
|
|
84
|
-
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
|
};
|
|
@@ -2,9 +2,7 @@ export interface staticRouteInterface_hotel_v2 {
|
|
|
2
2
|
get: {
|
|
3
3
|
"/api/hotel/users/id": {
|
|
4
4
|
requireParams: {
|
|
5
|
-
|
|
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
|
-
|
|
25
|
-
id: number;
|
|
26
|
-
};
|
|
22
|
+
id: number;
|
|
27
23
|
};
|
|
28
24
|
responseStructure: {
|
|
29
25
|
data: {
|
package/dist/v2/run_v2.test.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
72
|
-
x
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
package/src/run.test.ts
CHANGED
package/src/v2/GGExpressV2.ts
CHANGED
|
@@ -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
|
|
13
|
-
?
|
|
14
|
-
|
|
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:
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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, "
|
|
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 :
|
|
110
|
-
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:
|
|
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
|
-
|
|
7
|
-
|
|
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
|
-
|
|
17
|
-
|
|
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 : { },
|
package/src/v2/run_v2.test.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
68
|
-
x
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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)
|