tspace-spear 1.2.7 → 1.2.9
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/README.md +299 -146
- package/dist/cli/generators/app/index.d.ts +1 -0
- package/dist/cli/generators/app/index.js +124 -0
- package/dist/cli/generators/app/index.js.map +1 -0
- package/dist/cli/generators/app/template.d.ts +1 -0
- package/dist/cli/{app.js → generators/app/template.js} +22 -8
- package/dist/cli/generators/app/template.js.map +1 -0
- package/dist/cli/generators/client/template.d.ts +1 -0
- package/dist/cli/generators/client/template.js +30 -0
- package/dist/cli/generators/client/template.js.map +1 -0
- package/dist/cli/generators/controller/index.d.ts +1 -0
- package/dist/cli/generators/controller/index.js +78 -0
- package/dist/cli/generators/controller/index.js.map +1 -0
- package/dist/cli/generators/controller/template.d.ts +1 -0
- package/dist/cli/generators/controller/template.js +106 -0
- package/dist/cli/generators/controller/template.js.map +1 -0
- package/dist/cli/generators/dto/index.d.ts +1 -0
- package/dist/cli/generators/dto/index.js +57 -0
- package/dist/cli/generators/dto/index.js.map +1 -0
- package/dist/cli/generators/dto/template.d.ts +1 -0
- package/dist/cli/generators/dto/template.js +32 -0
- package/dist/cli/generators/dto/template.js.map +1 -0
- package/dist/cli/generators/middleware/index.d.ts +1 -0
- package/dist/cli/generators/middleware/index.js +38 -0
- package/dist/cli/generators/middleware/index.js.map +1 -0
- package/dist/cli/generators/middleware/template.d.ts +1 -0
- package/dist/cli/generators/middleware/template.js +16 -0
- package/dist/cli/generators/middleware/template.js.map +1 -0
- package/dist/cli/generators/module/index.d.ts +1 -0
- package/dist/cli/generators/module/index.js +173 -0
- package/dist/cli/generators/module/index.js.map +1 -0
- package/dist/cli/generators/service/index.d.ts +1 -0
- package/dist/cli/generators/service/index.js +53 -0
- package/dist/cli/generators/service/index.js.map +1 -0
- package/dist/cli/generators/service/template.d.ts +1 -0
- package/dist/cli/generators/service/template.js +74 -0
- package/dist/cli/generators/service/template.js.map +1 -0
- package/dist/cli/generators/shared/index.d.ts +3 -0
- package/dist/cli/generators/shared/index.js +22 -0
- package/dist/cli/generators/shared/index.js.map +1 -0
- package/dist/cli/index.js +53 -96
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/core/client/index.d.ts +13 -43
- package/dist/lib/core/client/index.js +47 -26
- package/dist/lib/core/client/index.js.map +1 -1
- package/dist/lib/core/{compiler → client}/types.d.ts +29 -0
- package/dist/lib/core/client/types.js.map +1 -0
- package/dist/lib/core/compiler/generator.d.ts +4 -6
- package/dist/lib/core/compiler/generator.js +186 -39
- package/dist/lib/core/compiler/generator.js.map +1 -1
- package/dist/lib/core/compiler/index.d.ts +2 -2
- package/dist/lib/core/compiler/index.js +2 -2
- package/dist/lib/core/compiler/index.js.map +1 -1
- package/dist/lib/core/compiler/pre-routes.d.ts +170 -34
- package/dist/lib/core/compiler/pre-routes.js +45 -25
- package/dist/lib/core/compiler/pre-routes.js.map +1 -1
- package/dist/lib/core/decorators/context.d.ts +78 -8
- package/dist/lib/core/decorators/context.js +84 -9
- package/dist/lib/core/decorators/context.js.map +1 -1
- package/dist/lib/core/decorators/statusCode.js +3 -1
- package/dist/lib/core/decorators/statusCode.js.map +1 -1
- package/dist/lib/core/package/index.d.ts +11 -0
- package/dist/lib/core/package/index.js +42 -0
- package/dist/lib/core/package/index.js.map +1 -0
- package/dist/lib/core/server/fast-router.d.ts +2 -2
- package/dist/lib/core/server/fast-router.js +17 -3
- package/dist/lib/core/server/fast-router.js.map +1 -1
- package/dist/lib/core/server/index.js +2 -2
- package/dist/lib/core/server/index.js.map +1 -1
- package/dist/lib/core/server/response.js +21 -1
- package/dist/lib/core/server/response.js.map +1 -1
- package/dist/lib/core/types/index.d.ts +32 -27
- package/package.json +7 -4
- package/dist/cli/app.d.ts +0 -1
- package/dist/cli/app.js.map +0 -1
- package/dist/cli/controller.d.ts +0 -1
- package/dist/cli/controller.js +0 -158
- package/dist/cli/controller.js.map +0 -1
- package/dist/lib/core/compiler/types.js.map +0 -1
- /package/dist/lib/core/{compiler → client}/types.js +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createService = createService;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const shared_1 = require("../shared");
|
|
10
|
+
function createService(root, name) {
|
|
11
|
+
if (!name) {
|
|
12
|
+
console.log("Missing service path, try spear g service dog");
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const resolvedPath = path_1.default.resolve(process.cwd(), root, 'modules', (0, shared_1.toPlural)(name));
|
|
16
|
+
const fileName = `${(0, shared_1.toSingular)(name)}.service.ts`;
|
|
17
|
+
const target = path_1.default.join(resolvedPath, fileName);
|
|
18
|
+
fs_1.default.mkdirSync(resolvedPath, { recursive: true });
|
|
19
|
+
const className = (0, shared_1.capitalize)((0, shared_1.toSingular)(name)) + "Service";
|
|
20
|
+
fs_1.default.writeFileSync(target, `
|
|
21
|
+
class ${className} {
|
|
22
|
+
public async index() {
|
|
23
|
+
return [];
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
public async show(id: number) {
|
|
27
|
+
return {};
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
public async create() {
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public async update(id: number) {
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public async remove(id: number) {
|
|
39
|
+
return {};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { ${className} };
|
|
44
|
+
export default ${className};
|
|
45
|
+
`);
|
|
46
|
+
console.log(`
|
|
47
|
+
CREATE ${target}
|
|
48
|
+
|
|
49
|
+
✔ Successfully generated service "${name}"
|
|
50
|
+
|
|
51
|
+
`);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/generators/service/index.ts"],"names":[],"mappings":";;;;;AAQA,sCAoDC;AA5DD,4CAAoB;AACpB,gDAAwB;AACxB,sCAImB;AAEnB,SAAgB,aAAa,CAAC,IAAa,EAAC,IAAa;IACvD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAG,SAAS,EAAE,IAAA,iBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC;IAEnF,MAAM,QAAQ,GAAG,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,CAAC;IAElD,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEjD,YAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,IAAA,mBAAU,EAAC,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAE3D,YAAE,CAAC,aAAa,CACd,MAAM,EACN;QACI,SAAS;;;;;;;;;;;;;;;;;;;;;;WAsBN,SAAS;iBACH,SAAS;CACzB,CACE,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC;WACF,MAAM;;oCAEmB,IAAI;;CAEvC,CAAC,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ServiceTemplate = "\nimport { \n CreateCatDto, \n UpdateCatDto \n} from \"./cat.dto\";\n\ntype Cat = {\n id: number;\n name: string;\n age: number;\n}\n\nexport class CatService {\n private cats: Cat[] = [\n { id: 1, name: 'cat1', age: 1.6 },\n { id: 2, name: 'cat2', age: 1.8 },\n ];\n public async index() {\n return this.cats;\n };\n\n public async show(id: number) {\n const cat = this.cats.find(cat => cat.id === id);\n if(cat == null) return null;\n return cat;\n };\n\n public async create({ name, age }: CreateCatDto) {\n\n const cat = {\n id: this.cats.length + 1,\n name: name,\n age: age\n };\n\n this.cats.push(cat);\n\n return cat;\n }\n \n public async update(id: number, { name, age }: UpdateCatDto) {\n const index = this.cats.findIndex(d => d.id === id);\n\n if (index === -1) {\n throw new Error(\"Cat not found\");\n }\n\n this.cats[index] = {\n ...this.cats[index],\n ...{ name, age } \n };\n\n const cat = this.cats[index];\n\n return cat;\n }\n\n public async remove(id: number) {\n const index = this.cats.findIndex(d => d.id === id);\n\n if (index === -1) {\n throw new Error(\"Cat not found\");\n }\n\n this.cats.splice(index, 1);\n\n return true;\n }\n}\n";
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServiceTemplate = void 0;
|
|
4
|
+
exports.ServiceTemplate = `
|
|
5
|
+
import {
|
|
6
|
+
CreateCatDto,
|
|
7
|
+
UpdateCatDto
|
|
8
|
+
} from "./cat.dto";
|
|
9
|
+
|
|
10
|
+
type Cat = {
|
|
11
|
+
id: number;
|
|
12
|
+
name: string;
|
|
13
|
+
age: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class CatService {
|
|
17
|
+
private cats: Cat[] = [
|
|
18
|
+
{ id: 1, name: 'cat1', age: 1.6 },
|
|
19
|
+
{ id: 2, name: 'cat2', age: 1.8 },
|
|
20
|
+
];
|
|
21
|
+
public async index() {
|
|
22
|
+
return this.cats;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
public async show(id: number) {
|
|
26
|
+
const cat = this.cats.find(cat => cat.id === id);
|
|
27
|
+
if(cat == null) return null;
|
|
28
|
+
return cat;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
public async create({ name, age }: CreateCatDto) {
|
|
32
|
+
|
|
33
|
+
const cat = {
|
|
34
|
+
id: this.cats.length + 1,
|
|
35
|
+
name: name,
|
|
36
|
+
age: age
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
this.cats.push(cat);
|
|
40
|
+
|
|
41
|
+
return cat;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public async update(id: number, { name, age }: UpdateCatDto) {
|
|
45
|
+
const index = this.cats.findIndex(d => d.id === id);
|
|
46
|
+
|
|
47
|
+
if (index === -1) {
|
|
48
|
+
throw new Error("Cat not found");
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
this.cats[index] = {
|
|
52
|
+
...this.cats[index],
|
|
53
|
+
...{ name, age }
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const cat = this.cats[index];
|
|
57
|
+
|
|
58
|
+
return cat;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public async remove(id: number) {
|
|
62
|
+
const index = this.cats.findIndex(d => d.id === id);
|
|
63
|
+
|
|
64
|
+
if (index === -1) {
|
|
65
|
+
throw new Error("Cat not found");
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
this.cats.splice(index, 1);
|
|
69
|
+
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/cli/generators/service/template.ts"],"names":[],"mappings":";;;AACa,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqE9B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSingular = toSingular;
|
|
4
|
+
exports.toPlural = toPlural;
|
|
5
|
+
exports.capitalize = capitalize;
|
|
6
|
+
function toSingular(name) {
|
|
7
|
+
if (!name)
|
|
8
|
+
return name;
|
|
9
|
+
return name.endsWith("s") ? name.slice(0, -1) : name;
|
|
10
|
+
}
|
|
11
|
+
function toPlural(name) {
|
|
12
|
+
if (!name)
|
|
13
|
+
return name;
|
|
14
|
+
if (name.endsWith("s"))
|
|
15
|
+
return name;
|
|
16
|
+
return name + "s";
|
|
17
|
+
}
|
|
18
|
+
function capitalize(value) {
|
|
19
|
+
return (value.charAt(0).toUpperCase() +
|
|
20
|
+
value.slice(1));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/generators/shared/index.ts"],"names":[],"mappings":";;AAAA,gCAGC;AAED,4BAMC;AAED,gCAOC;AApBD,SAAgB,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,IAAI,GAAG,GAAG,CAAC;AACpB,CAAC;AAED,SAAgB,UAAU,CACxB,KAAa;IAEb,OAAO,CACL,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,CAAC;AACJ,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,109 +1,66 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
`);
|
|
4
|
+
const app_1 = require("./generators/app");
|
|
5
|
+
const module_1 = require("./generators/module");
|
|
6
|
+
const controller_1 = require("./generators/controller");
|
|
7
|
+
const service_1 = require("./generators/service");
|
|
8
|
+
const middleware_1 = require("./generators/middleware");
|
|
9
|
+
const dto_1 = require("./generators/dto");
|
|
10
|
+
const [, , command, type, name] = process.argv;
|
|
11
|
+
/**
|
|
12
|
+
* spear create new <name>
|
|
13
|
+
* spear g module <name>
|
|
14
|
+
* spear g controller <name>
|
|
15
|
+
* spear g service <name>
|
|
16
|
+
* spear g middleware <name>
|
|
17
|
+
*/
|
|
18
|
+
if (command === "create" && type === "new") {
|
|
19
|
+
(0, app_1.createApp)(name)
|
|
20
|
+
.then(_ => process.exit(1))
|
|
21
|
+
.catch(_ => process.exit(1));
|
|
26
22
|
}
|
|
27
|
-
|
|
28
|
-
if (!
|
|
29
|
-
|
|
23
|
+
if (command === "g") {
|
|
24
|
+
if (!name) {
|
|
25
|
+
printUsage();
|
|
30
26
|
process.exit(1);
|
|
31
27
|
}
|
|
32
|
-
const root =
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
28
|
+
const root = 'src';
|
|
29
|
+
switch (type) {
|
|
30
|
+
case "module":
|
|
31
|
+
(0, module_1.createModule)(root, name);
|
|
32
|
+
break;
|
|
33
|
+
case "controller":
|
|
34
|
+
(0, controller_1.createController)(root, name);
|
|
35
|
+
break;
|
|
36
|
+
case "service":
|
|
37
|
+
(0, service_1.createService)(root, name);
|
|
38
|
+
break;
|
|
39
|
+
case "dto":
|
|
40
|
+
(0, dto_1.createDto)(root, name);
|
|
41
|
+
break;
|
|
42
|
+
case "middleware":
|
|
43
|
+
(0, middleware_1.createMiddleware)(root, name);
|
|
44
|
+
break;
|
|
45
|
+
default:
|
|
46
|
+
printUsage();
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
fs_1.default.writeFileSync(target, `
|
|
55
|
-
import {
|
|
56
|
-
type T,
|
|
57
|
-
Controller,
|
|
58
|
-
Get,
|
|
59
|
-
Post,
|
|
60
|
-
Put,
|
|
61
|
-
Delete
|
|
62
|
-
} from "tspace-spear";
|
|
63
|
-
|
|
64
|
-
@Controller("/${name}")
|
|
65
|
-
export default class ${className} {
|
|
66
|
-
|
|
67
|
-
@Get("/")
|
|
68
|
-
async index() {
|
|
69
|
-
return {};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
@Get("/:id")
|
|
73
|
-
async show({
|
|
74
|
-
params
|
|
75
|
-
}: T.Context<{ params: { id: number } }>) {
|
|
76
|
-
return { id: params.id };
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
@Post("/")
|
|
80
|
-
async create({
|
|
81
|
-
body
|
|
82
|
-
}: T.Context<{ body: {} }>) {
|
|
83
|
-
return { body };
|
|
84
|
-
}
|
|
48
|
+
process.exit(0);
|
|
49
|
+
}
|
|
50
|
+
printUsage();
|
|
51
|
+
function printUsage() {
|
|
52
|
+
console.log(`
|
|
53
|
+
Usage:
|
|
85
54
|
|
|
86
|
-
|
|
87
|
-
async update({
|
|
88
|
-
params,
|
|
89
|
-
body
|
|
90
|
-
}: T.Context<{ params: { id: number }; body: {} }>) {
|
|
91
|
-
return { id: params.id, body };
|
|
92
|
-
}
|
|
55
|
+
spear create new <project>
|
|
93
56
|
|
|
94
|
-
|
|
95
|
-
async remove({
|
|
96
|
-
params
|
|
97
|
-
}: T.Context<{ params: { id: number } }>) {
|
|
98
|
-
return { id: params.id };
|
|
99
|
-
}
|
|
57
|
+
Generators:
|
|
100
58
|
|
|
101
|
-
|
|
59
|
+
spear g module <names>
|
|
60
|
+
spear g controller <name>
|
|
61
|
+
spear g service <name>
|
|
62
|
+
spear g dto <name>
|
|
63
|
+
spear g middleware <name>
|
|
102
64
|
`);
|
|
103
|
-
console.log(`Controller created: ${target}`);
|
|
104
|
-
}
|
|
105
|
-
function capitalize(value) {
|
|
106
|
-
return (value.charAt(0).toUpperCase() +
|
|
107
|
-
value.slice(1));
|
|
108
65
|
}
|
|
109
66
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,0CAA6C;AAC7C,gDAAmD;AACnD,wDAA2D;AAC3D,kDAAqD;AACrD,wDAA2D;AAC3D,0CAA6C;AAE7C,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAE/C;;;;;;GAMG;AAEH,IAAI,OAAO,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;IAC3C,IAAA,eAAS,EAAC,IAAI,CAAC;SACd,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC;IAEnB,QAAQ,IAAI,EAAE,CAAC;QAEb,KAAK,QAAQ;YACX,IAAA,qBAAY,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QAER,KAAK,YAAY;YACf,IAAA,6BAAgB,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QAER,KAAK,SAAS;YACZ,IAAA,uBAAa,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YACzB,MAAM;QAER,KAAK,KAAK;YACR,IAAA,eAAS,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YACrB,MAAM;QAER,KAAK,YAAY;YACf,IAAA,6BAAgB,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QAER;YACE,UAAU,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,UAAU,EAAE,CAAC;AAEb,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;CAYb,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
import type { AnyRoutes, RoutesWithMethod,
|
|
2
|
-
type RequestInput<TRoutes extends AnyRoutes, TPath extends keyof TRoutes, TMethod extends keyof TRoutes[TPath]> = RequestParams<TRoutes, TPath, TMethod> extends never ? {
|
|
3
|
-
params?: never;
|
|
4
|
-
query?: RequestQuery<TRoutes, TPath, TMethod>;
|
|
5
|
-
body?: RequestBody<TRoutes, TPath, TMethod>;
|
|
6
|
-
files?: RequestFiles<TRoutes, TPath, TMethod>;
|
|
7
|
-
} : {
|
|
8
|
-
params: RequestParams<TRoutes, TPath, TMethod>;
|
|
9
|
-
query?: RequestQuery<TRoutes, TPath, TMethod>;
|
|
10
|
-
body?: RequestBody<TRoutes, TPath, TMethod>;
|
|
11
|
-
files?: RequestFiles<TRoutes, TPath, TMethod>;
|
|
12
|
-
};
|
|
1
|
+
import type { AnyRoutes, RoutesWithMethod, ResponseType, RequestInput, OptionalIfEmpty, ApiResponse } from "./types";
|
|
13
2
|
/**
|
|
14
3
|
* Type-safe HTTP client built on top of the native Fetch API.
|
|
15
4
|
*
|
|
@@ -41,42 +30,23 @@ type RequestInput<TRoutes extends AnyRoutes, TPath extends keyof TRoutes, TMetho
|
|
|
41
30
|
* })
|
|
42
31
|
*
|
|
43
32
|
* // fully typed response
|
|
44
|
-
*
|
|
33
|
+
* if(res.ok)
|
|
34
|
+
* console.log(res.cats)
|
|
45
35
|
* ```
|
|
46
36
|
*/
|
|
47
37
|
declare class ApiClient<TRoutes extends AnyRoutes> {
|
|
48
38
|
private baseURL;
|
|
49
39
|
constructor(baseURL: string);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
post<TPath extends RoutesWithMethod<TRoutes, "POST">>(path: TPath, input: RequestInput<TRoutes, TPath, "POST">): Promise<{
|
|
61
|
-
ok: boolean;
|
|
62
|
-
status: number;
|
|
63
|
-
data: ResponseType<TRoutes, TPath, "POST">;
|
|
64
|
-
}>;
|
|
65
|
-
put<TPath extends RoutesWithMethod<TRoutes, "PUT">>(path: TPath, input: RequestInput<TRoutes, TPath, "PUT">): Promise<{
|
|
66
|
-
ok: boolean;
|
|
67
|
-
status: number;
|
|
68
|
-
data: ResponseType<TRoutes, TPath, "PUT">;
|
|
69
|
-
}>;
|
|
70
|
-
patch<TPath extends RoutesWithMethod<TRoutes, "PATCH">>(path: TPath, input: RequestInput<TRoutes, TPath, "PATCH">): Promise<{
|
|
71
|
-
ok: boolean;
|
|
72
|
-
status: number;
|
|
73
|
-
data: ResponseType<TRoutes, TPath, "PATCH">;
|
|
74
|
-
}>;
|
|
75
|
-
delete<TPath extends RoutesWithMethod<TRoutes, "DELETE">>(path: TPath, input?: RequestInput<TRoutes, TPath, "DELETE">): Promise<{
|
|
76
|
-
ok: boolean;
|
|
77
|
-
status: number;
|
|
78
|
-
data: ResponseType<TRoutes, TPath, "DELETE">;
|
|
79
|
-
}>;
|
|
40
|
+
private request;
|
|
41
|
+
get<TPath extends RoutesWithMethod<TRoutes, "GET">>(path: TPath, ...args: OptionalIfEmpty<RequestInput<TRoutes, TPath, "GET">>): Promise<ApiResponse<ResponseType<TRoutes, TPath, "GET">>>;
|
|
42
|
+
post<TPath extends RoutesWithMethod<TRoutes, "POST">>(path: TPath, ...args: OptionalIfEmpty<RequestInput<TRoutes, TPath, "POST">>): Promise<ApiResponse<ResponseType<TRoutes, TPath, "POST">>>;
|
|
43
|
+
put<TPath extends RoutesWithMethod<TRoutes, "PUT">>(path: TPath, ...args: OptionalIfEmpty<RequestInput<TRoutes, TPath, "PUT">>): Promise<ApiResponse<ResponseType<TRoutes, TPath, "PUT">>>;
|
|
44
|
+
patch<TPath extends RoutesWithMethod<TRoutes, "PATCH">>(path: TPath, ...args: OptionalIfEmpty<RequestInput<TRoutes, TPath, "PATCH">>): Promise<ApiResponse<ResponseType<TRoutes, TPath, "PATCH">>>;
|
|
45
|
+
delete<TPath extends RoutesWithMethod<TRoutes, "DELETE">>(path: TPath, ...args: OptionalIfEmpty<RequestInput<TRoutes, TPath, "DELETE">>): Promise<ApiResponse<ResponseType<TRoutes, TPath, "DELETE">>>;
|
|
46
|
+
upload<TMethod extends "POST" | "PUT" | "PATCH" = "POST", TPath extends RoutesWithMethod<TRoutes, TMethod> = RoutesWithMethod<TRoutes, TMethod>>(path: TPath, options: {
|
|
47
|
+
method?: TMethod;
|
|
48
|
+
formdata: FormData;
|
|
49
|
+
}): Promise<ApiResponse<ResponseType<TRoutes, TPath, TMethod>>>;
|
|
80
50
|
}
|
|
81
51
|
export { ApiClient };
|
|
82
52
|
export default ApiClient;
|
|
@@ -25,17 +25,25 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.ApiClient = void 0;
|
|
27
27
|
let fetchFn = null;
|
|
28
|
-
async
|
|
28
|
+
const getFetch = async () => {
|
|
29
29
|
if (fetchFn)
|
|
30
30
|
return fetchFn;
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
// Browser OR modern Node v18+ (preferred)
|
|
32
|
+
if (typeof globalThis.fetch === "function") {
|
|
33
|
+
fetchFn = globalThis.fetch.bind(globalThis);
|
|
33
34
|
return fetchFn;
|
|
34
35
|
}
|
|
36
|
+
// Legacy Node fallback
|
|
35
37
|
const mod = await Promise.resolve().then(() => __importStar(require("node-fetch")));
|
|
36
38
|
fetchFn = mod.default;
|
|
37
39
|
return fetchFn;
|
|
38
|
-
}
|
|
40
|
+
};
|
|
41
|
+
const isFormData = (value) => {
|
|
42
|
+
return (value != null &&
|
|
43
|
+
typeof value === "object" &&
|
|
44
|
+
typeof value.append === "function" &&
|
|
45
|
+
typeof value.getHeaders === "function");
|
|
46
|
+
};
|
|
39
47
|
/**
|
|
40
48
|
* Type-safe HTTP client built on top of the native Fetch API.
|
|
41
49
|
*
|
|
@@ -67,7 +75,8 @@ async function getFetch() {
|
|
|
67
75
|
* })
|
|
68
76
|
*
|
|
69
77
|
* // fully typed response
|
|
70
|
-
*
|
|
78
|
+
* if(res.ok)
|
|
79
|
+
* console.log(res.cats)
|
|
71
80
|
* ```
|
|
72
81
|
*/
|
|
73
82
|
class ApiClient {
|
|
@@ -92,50 +101,62 @@ class ApiClient {
|
|
|
92
101
|
if (!fetchFn) {
|
|
93
102
|
throw new Error("Fetch is not available. Use Node 18+ or polyfill.");
|
|
94
103
|
}
|
|
104
|
+
let body = input?.body
|
|
105
|
+
? JSON.stringify(input.body)
|
|
106
|
+
: undefined;
|
|
107
|
+
let headers = {
|
|
108
|
+
"Content-Type": "application/json",
|
|
109
|
+
};
|
|
110
|
+
const isFileUpload = isFormData(input?.body);
|
|
111
|
+
if (isFileUpload) {
|
|
112
|
+
body = input?.body;
|
|
113
|
+
headers = undefined;
|
|
114
|
+
}
|
|
95
115
|
const res = await fetchFn(url, {
|
|
96
116
|
method: method,
|
|
97
|
-
headers
|
|
98
|
-
|
|
99
|
-
},
|
|
100
|
-
body: input?.body
|
|
101
|
-
? JSON.stringify(input.body)
|
|
102
|
-
: undefined,
|
|
117
|
+
headers,
|
|
118
|
+
body
|
|
103
119
|
});
|
|
104
120
|
const contentType = res.headers.get("content-type");
|
|
105
121
|
const isJson = contentType?.includes("application/json");
|
|
106
122
|
const data = isJson
|
|
107
123
|
? await res.json()
|
|
108
124
|
: await res.text();
|
|
109
|
-
// if (!res.ok) {
|
|
110
|
-
// throw new Error(
|
|
111
|
-
// data?.message ||
|
|
112
|
-
// data?.error ||
|
|
113
|
-
// (typeof data === "string"
|
|
114
|
-
// ? data
|
|
115
|
-
// : `HTTP ${res.status}`),
|
|
116
|
-
// );
|
|
117
|
-
// }
|
|
118
125
|
return {
|
|
119
126
|
ok: res.ok,
|
|
127
|
+
headers: res.headers,
|
|
120
128
|
status: res.status,
|
|
121
|
-
data,
|
|
129
|
+
data: data,
|
|
122
130
|
};
|
|
123
131
|
}
|
|
124
|
-
async get(path,
|
|
132
|
+
async get(path, ...args) {
|
|
133
|
+
const input = args[0];
|
|
125
134
|
return this.request("GET", path, input);
|
|
126
135
|
}
|
|
127
|
-
async post(path,
|
|
136
|
+
async post(path, ...args) {
|
|
137
|
+
const input = args[0];
|
|
128
138
|
return this.request("POST", path, input);
|
|
129
139
|
}
|
|
130
|
-
async put(path,
|
|
140
|
+
async put(path, ...args) {
|
|
141
|
+
const input = args[0];
|
|
131
142
|
return this.request("PUT", path, input);
|
|
132
143
|
}
|
|
133
|
-
async patch(path,
|
|
144
|
+
async patch(path, ...args) {
|
|
145
|
+
const input = args[0];
|
|
134
146
|
return this.request("PATCH", path, input);
|
|
135
147
|
}
|
|
136
|
-
async delete(path,
|
|
148
|
+
async delete(path, ...args) {
|
|
149
|
+
const input = args[0];
|
|
137
150
|
return this.request("DELETE", path, input);
|
|
138
151
|
}
|
|
152
|
+
async upload(path, options) {
|
|
153
|
+
const { method = "POST", formdata } = options;
|
|
154
|
+
return this.request(method, path,
|
|
155
|
+
//@ts-ignore
|
|
156
|
+
{
|
|
157
|
+
body: formdata
|
|
158
|
+
});
|
|
159
|
+
}
|
|
139
160
|
}
|
|
140
161
|
exports.ApiClient = ApiClient;
|
|
141
162
|
exports.default = ApiClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/core/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/core/client/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,3 +12,32 @@ export type RequestFiles<TRoutes extends AnyRoutes, TPath extends keyof TRoutes,
|
|
|
12
12
|
export type ResponseType<TRoutes extends AnyRoutes, TPath extends keyof TRoutes, TMethod extends keyof TRoutes[TPath]> = TRoutes[TPath][TMethod] extends {
|
|
13
13
|
response: infer R;
|
|
14
14
|
} ? Awaited<R> : never;
|
|
15
|
+
export type Prettify<T> = {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} & {};
|
|
18
|
+
export type ExactProperty<Key extends string, T> = [
|
|
19
|
+
T
|
|
20
|
+
] extends [never] ? {
|
|
21
|
+
[K in Key]?: never;
|
|
22
|
+
} : undefined extends T ? {
|
|
23
|
+
[K in Key]?: T;
|
|
24
|
+
} : {} extends T ? {
|
|
25
|
+
[K in Key]?: T;
|
|
26
|
+
} : {
|
|
27
|
+
[K in Key]: T;
|
|
28
|
+
};
|
|
29
|
+
export type OptionalIfEmpty<T> = {} extends T ? [input?: T] : [input: T];
|
|
30
|
+
export type RequestInput<TRoutes extends AnyRoutes, TPath extends keyof TRoutes, TMethod extends keyof TRoutes[TPath]> = Prettify<ExactProperty<"params", RequestParams<TRoutes, TPath, TMethod>> & ExactProperty<"query", RequestQuery<TRoutes, TPath, TMethod>> & ExactProperty<"body", RequestBody<TRoutes, TPath, TMethod>> & ExactProperty<"files", RequestFiles<TRoutes, TPath, TMethod>>>;
|
|
31
|
+
export type SuccessStatus = 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226;
|
|
32
|
+
export type ErrorStatus = 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511;
|
|
33
|
+
export type ApiResponse<T, E = any> = {
|
|
34
|
+
ok: true;
|
|
35
|
+
status: SuccessStatus;
|
|
36
|
+
headers: Headers;
|
|
37
|
+
data: T;
|
|
38
|
+
} | {
|
|
39
|
+
ok: false;
|
|
40
|
+
status: ErrorStatus;
|
|
41
|
+
headers: Headers;
|
|
42
|
+
data: E;
|
|
43
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/core/client/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
type Route = {
|
|
2
2
|
method: string;
|
|
3
3
|
path: string;
|
|
4
|
-
response: string;
|
|
5
4
|
body: string;
|
|
6
5
|
params: string;
|
|
7
6
|
query: string;
|
|
8
7
|
files: string;
|
|
8
|
+
response: string;
|
|
9
9
|
};
|
|
10
10
|
type Options = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
name: RegExp;
|
|
14
|
-
};
|
|
11
|
+
folder: string;
|
|
12
|
+
name: RegExp;
|
|
15
13
|
output?: string;
|
|
16
14
|
};
|
|
17
|
-
export declare
|
|
15
|
+
export declare const generateRoutes: (globalPrefix: string, options: Options) => Promise<Route[] | undefined>;
|
|
18
16
|
export {};
|