@pjts/client 0.0.43
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/__test__/domain.d.ts +36 -0
- package/dist/__test__/domain.js +106 -0
- package/dist/__test__/domain.js.map +1 -0
- package/dist/__test__/generate-types.d.ts +1 -0
- package/dist/__test__/generate-types.js +16 -0
- package/dist/__test__/generate-types.js.map +1 -0
- package/dist/__test__/index.d.ts +7 -0
- package/dist/__test__/index.js +27 -0
- package/dist/__test__/index.js.map +1 -0
- package/dist/__test__/service.d.ts +15 -0
- package/dist/__test__/service.js +132 -0
- package/dist/__test__/service.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +152 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +1 -0
- package/dist/index.test.js +79 -0
- package/dist/index.test.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare class FileDto {
|
|
2
|
+
readonly fileName: string;
|
|
3
|
+
static fromUnknown(data: any): FileDto;
|
|
4
|
+
constructor(fileName: string);
|
|
5
|
+
toJSON(): string;
|
|
6
|
+
}
|
|
7
|
+
export declare class Ids {
|
|
8
|
+
readonly value: string[];
|
|
9
|
+
constructor(value: string[]);
|
|
10
|
+
toJSON(): string[];
|
|
11
|
+
}
|
|
12
|
+
export declare class Value {
|
|
13
|
+
readonly val: number;
|
|
14
|
+
static fromUnknown(data: unknown): Value;
|
|
15
|
+
constructor(val: number);
|
|
16
|
+
toJSON(): number;
|
|
17
|
+
}
|
|
18
|
+
export declare class Pagination {
|
|
19
|
+
static fromUnknown(data: unknown): Pagination;
|
|
20
|
+
readonly limit: number;
|
|
21
|
+
readonly offset: number;
|
|
22
|
+
constructor(data: {
|
|
23
|
+
limit: number;
|
|
24
|
+
offset: number;
|
|
25
|
+
});
|
|
26
|
+
toJSON(): {
|
|
27
|
+
limit: number;
|
|
28
|
+
offset: number;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export declare class AuthToken {
|
|
32
|
+
readonly token: string;
|
|
33
|
+
static fromUnknown(value: unknown): AuthToken;
|
|
34
|
+
constructor(token: string);
|
|
35
|
+
toJSON(): string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var FileDto_1, Value_1, Pagination_1, AuthToken_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AuthToken = exports.Pagination = exports.Value = exports.Ids = exports.FileDto = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const core_1 = require("@pjts/core");
|
|
7
|
+
const class_validator_1 = require("class-validator");
|
|
8
|
+
let FileDto = FileDto_1 = class FileDto {
|
|
9
|
+
fileName;
|
|
10
|
+
static fromUnknown(data) {
|
|
11
|
+
return new FileDto_1(data.fileName);
|
|
12
|
+
}
|
|
13
|
+
constructor(fileName) {
|
|
14
|
+
this.fileName = fileName;
|
|
15
|
+
}
|
|
16
|
+
toJSON() {
|
|
17
|
+
return this.fileName;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
FileDto = FileDto_1 = tslib_1.__decorate([
|
|
21
|
+
core_1.ObjectDomainPrimitive,
|
|
22
|
+
tslib_1.__metadata("design:paramtypes", [String])
|
|
23
|
+
], FileDto);
|
|
24
|
+
exports.FileDto = FileDto;
|
|
25
|
+
let Ids = class Ids {
|
|
26
|
+
value;
|
|
27
|
+
constructor(value) {
|
|
28
|
+
this.value = value;
|
|
29
|
+
}
|
|
30
|
+
toJSON() {
|
|
31
|
+
return this.value;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
Ids = tslib_1.__decorate([
|
|
35
|
+
core_1.StringArrayDomainPrimitive,
|
|
36
|
+
tslib_1.__metadata("design:paramtypes", [Array])
|
|
37
|
+
], Ids);
|
|
38
|
+
exports.Ids = Ids;
|
|
39
|
+
let Value = Value_1 = class Value {
|
|
40
|
+
val;
|
|
41
|
+
static fromUnknown(data) {
|
|
42
|
+
return new Value_1(Number(data));
|
|
43
|
+
}
|
|
44
|
+
constructor(val) {
|
|
45
|
+
this.val = val;
|
|
46
|
+
}
|
|
47
|
+
toJSON() {
|
|
48
|
+
return this.val;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
Value = Value_1 = tslib_1.__decorate([
|
|
52
|
+
core_1.NumberDomainPrimitive,
|
|
53
|
+
tslib_1.__metadata("design:paramtypes", [Number])
|
|
54
|
+
], Value);
|
|
55
|
+
exports.Value = Value;
|
|
56
|
+
let Pagination = Pagination_1 = class Pagination {
|
|
57
|
+
static fromUnknown(data) {
|
|
58
|
+
const payload = (0, core_1.asObject)('Pagination', data);
|
|
59
|
+
return new Pagination_1({ limit: Number(payload.limit), offset: Number(payload.offset) });
|
|
60
|
+
}
|
|
61
|
+
limit;
|
|
62
|
+
offset;
|
|
63
|
+
constructor(data) {
|
|
64
|
+
this.limit = data.limit;
|
|
65
|
+
this.offset = data.offset;
|
|
66
|
+
}
|
|
67
|
+
toJSON() {
|
|
68
|
+
return {
|
|
69
|
+
limit: this.limit,
|
|
70
|
+
offset: this.offset,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
tslib_1.__decorate([
|
|
75
|
+
(0, class_validator_1.IsInt)(),
|
|
76
|
+
(0, class_validator_1.Min)(1),
|
|
77
|
+
tslib_1.__metadata("design:type", Number)
|
|
78
|
+
], Pagination.prototype, "limit", void 0);
|
|
79
|
+
tslib_1.__decorate([
|
|
80
|
+
(0, class_validator_1.IsInt)(),
|
|
81
|
+
(0, class_validator_1.Min)(0),
|
|
82
|
+
tslib_1.__metadata("design:type", Number)
|
|
83
|
+
], Pagination.prototype, "offset", void 0);
|
|
84
|
+
Pagination = Pagination_1 = tslib_1.__decorate([
|
|
85
|
+
core_1.ObjectDomainPrimitive,
|
|
86
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
87
|
+
], Pagination);
|
|
88
|
+
exports.Pagination = Pagination;
|
|
89
|
+
let AuthToken = AuthToken_1 = class AuthToken {
|
|
90
|
+
token;
|
|
91
|
+
static fromUnknown(value) {
|
|
92
|
+
return new AuthToken_1(String(value));
|
|
93
|
+
}
|
|
94
|
+
constructor(token) {
|
|
95
|
+
this.token = token;
|
|
96
|
+
}
|
|
97
|
+
toJSON() {
|
|
98
|
+
return this.token;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
AuthToken = AuthToken_1 = tslib_1.__decorate([
|
|
102
|
+
core_1.StringDomainPrimitive,
|
|
103
|
+
tslib_1.__metadata("design:paramtypes", [String])
|
|
104
|
+
], AuthToken);
|
|
105
|
+
exports.AuthToken = AuthToken;
|
|
106
|
+
//# sourceMappingURL=domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/__test__/domain.ts"],"names":[],"mappings":";;;;;AAAA,qCAMoB;AACpB,qDAA6C;AAGtC,IAAM,OAAO,eAAb,MAAM,OAAO;IAKU;IAJrB,MAAM,CAAC,WAAW,CAAC,IAAI;QAC5B,OAAO,IAAI,SAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED,YAA4B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAI,CAAC;IAE1C,MAAM;QACX,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF,CAAA;AAVY,OAAO;IADnB,4BAAqB;;GACT,OAAO,CAUnB;AAVY,0BAAO;AAab,IAAM,GAAG,GAAT,MAAM,GAAG;IACc;IAA5B,YAA4B,KAAe;QAAf,UAAK,GAAL,KAAK,CAAU;IAAI,CAAC;IAEzC,MAAM;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF,CAAA;AANY,GAAG;IADf,iCAA0B;;GACd,GAAG,CAMf;AANY,kBAAG;AAST,IAAM,KAAK,aAAX,MAAM,KAAK;IAKY;IAJ5B,MAAM,CAAC,WAAW,CAAC,IAAa;QAC9B,OAAO,IAAI,OAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,YAA4B,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAI,CAAC;IAErC,MAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;CACF,CAAA;AAVY,KAAK;IADjB,4BAAqB;;GACT,KAAK,CAUjB;AAVY,sBAAK;AAaX,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB,MAAM,CAAC,WAAW,CAAC,IAAa;QAC9B,MAAM,OAAO,GAAG,IAAA,eAAQ,EAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAC5C,OAAO,IAAI,YAAU,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACzF,CAAC;IAIe,KAAK,CAAQ;IAIb,MAAM,CAAQ;IAE9B,YAAY,IAAuC;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC3B,CAAC;IAEM,MAAM;QACX,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;CACF,CAAA;AAnBC;IAAC,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;yCACsB;AAE7B;IAAC,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;0CACuB;AAZnB,UAAU;IADtB,4BAAqB;;GACT,UAAU,CAyBtB;AAzBY,gCAAU;AA4BhB,IAAM,SAAS,iBAAf,MAAM,SAAS;IAKQ;IAJrB,MAAM,CAAC,WAAW,CAAC,KAAc;QACtC,OAAO,IAAI,WAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACrC,CAAC;IAED,YAA4B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAI,CAAC;IAEvC,MAAM;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF,CAAA;AAVY,SAAS;IADrB,4BAAqB;;GACT,SAAS,CAUrB;AAVY,8BAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
5
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
6
|
+
const schema_1 = require("@pjts/schema");
|
|
7
|
+
const clientTypes = (0, schema_1.buildClientTypes)(['/Users/pj/Documents/altbra/repositories/pjx/modules/client/src/__test__/index.ts'], [
|
|
8
|
+
'__test__'
|
|
9
|
+
], {
|
|
10
|
+
alwaysStrict: true,
|
|
11
|
+
noEmitOnError: true,
|
|
12
|
+
skipLibCheck: false,
|
|
13
|
+
strict: true
|
|
14
|
+
});
|
|
15
|
+
fs_1.default.writeFileSync(path_1.default.resolve(__dirname, `./types.d.ts`), clientTypes);
|
|
16
|
+
//# sourceMappingURL=generate-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../src/__test__/generate-types.ts"],"names":[],"mappings":";;;AAAA,oDAAoB;AACpB,wDAAwB;AACxB,yCAAgD;AAEhD,MAAM,WAAW,GAAG,IAAA,yBAAgB,EAAC,CAAC,kFAAkF,CAAC,EAAE;IACvH,UAAU;CACb,EAAE;IACC,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,IAAI;CACf,CAAC,CAAA;AACF,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TestModule2 = exports.TestModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@pjts/core");
|
|
6
|
+
const service_1 = require("./service");
|
|
7
|
+
let TestModule = class TestModule {
|
|
8
|
+
get testService() {
|
|
9
|
+
return new service_1.TestService();
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
TestModule = tslib_1.__decorate([
|
|
13
|
+
(0, core_1.HttpModule)('/v1')
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
], TestModule);
|
|
16
|
+
exports.TestModule = TestModule;
|
|
17
|
+
let TestModule2 = class TestModule2 {
|
|
18
|
+
get testService2() {
|
|
19
|
+
return new service_1.TestService();
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
TestModule2 = tslib_1.__decorate([
|
|
23
|
+
(0, core_1.HttpModule)('/v1')
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
], TestModule2);
|
|
26
|
+
exports.TestModule2 = TestModule2;
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/__test__/index.ts"],"names":[],"mappings":";;;;AAAA,qCAAwC;AACxC,uCAAuC;AAIhC,IAAM,UAAU,GAAhB,MAAM,UAAU;IACnB,IAAW,WAAW;QAClB,OAAO,IAAI,qBAAW,EAAE,CAAA;IAC5B,CAAC;CACJ,CAAA;AAJY,UAAU;IAFtB,IAAA,iBAAU,EAAC,KAAK,CAAC;IAClB,aAAa;GACA,UAAU,CAItB;AAJY,gCAAU;AAQhB,IAAM,WAAW,GAAjB,MAAM,WAAW;IACpB,IAAW,YAAY;QACnB,OAAO,IAAI,qBAAW,EAAE,CAAA;IAC5B,CAAC;CACJ,CAAA;AAJY,WAAW;IAFvB,IAAA,iBAAU,EAAC,KAAK,CAAC;IAClB,aAAa;GACA,WAAW,CAIvB;AAJY,kCAAW"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AuthToken, FileDto, Ids, Pagination, Value } from "./domain";
|
|
2
|
+
export declare class TestService {
|
|
3
|
+
addOne(value: Value): Promise<number>;
|
|
4
|
+
addTwo(value: Value): Promise<number>;
|
|
5
|
+
addThree(value: Value): Promise<number>;
|
|
6
|
+
add(value1: Value, value2: Value): Promise<number>;
|
|
7
|
+
addFour(pagination: Pagination): Promise<number>;
|
|
8
|
+
reject(): Promise<void>;
|
|
9
|
+
deleteOne(): Promise<void>;
|
|
10
|
+
protectedMethod(authToken: AuthToken): Promise<string>;
|
|
11
|
+
findbyIds(ids: Ids): Promise<Ids>;
|
|
12
|
+
findbyIds2(ids: Ids): Promise<Ids>;
|
|
13
|
+
findbyIds3(ids: Ids): Promise<Ids>;
|
|
14
|
+
upload(file1: FileDto): Promise<string>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TestService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@pjts/core");
|
|
6
|
+
const domain_1 = require("./domain");
|
|
7
|
+
let TestService = class TestService {
|
|
8
|
+
async addOne(value) {
|
|
9
|
+
return value.val + 1;
|
|
10
|
+
}
|
|
11
|
+
async addTwo(value) {
|
|
12
|
+
return value.val + 2;
|
|
13
|
+
}
|
|
14
|
+
async addThree(value) {
|
|
15
|
+
return value.val + 3;
|
|
16
|
+
}
|
|
17
|
+
async add(value1, value2) {
|
|
18
|
+
return value1.val + value2.val;
|
|
19
|
+
}
|
|
20
|
+
async addFour(pagination) {
|
|
21
|
+
return pagination.limit + pagination.offset + 4;
|
|
22
|
+
}
|
|
23
|
+
async reject() {
|
|
24
|
+
throw core_1.AppError.notFound('Resource not found');
|
|
25
|
+
}
|
|
26
|
+
async deleteOne() {
|
|
27
|
+
//
|
|
28
|
+
}
|
|
29
|
+
async protectedMethod(authToken) {
|
|
30
|
+
return authToken.token;
|
|
31
|
+
}
|
|
32
|
+
async findbyIds(ids) {
|
|
33
|
+
return ids;
|
|
34
|
+
}
|
|
35
|
+
async findbyIds2(ids) {
|
|
36
|
+
return ids;
|
|
37
|
+
}
|
|
38
|
+
async findbyIds3(ids) {
|
|
39
|
+
return ids;
|
|
40
|
+
}
|
|
41
|
+
async upload(file1) {
|
|
42
|
+
return file1.fileName;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
tslib_1.__decorate([
|
|
46
|
+
core_1.Post,
|
|
47
|
+
tslib_1.__param(0, core_1.Body),
|
|
48
|
+
tslib_1.__metadata("design:type", Function),
|
|
49
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.Value]),
|
|
50
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
51
|
+
], TestService.prototype, "addOne", null);
|
|
52
|
+
tslib_1.__decorate([
|
|
53
|
+
core_1.Get,
|
|
54
|
+
tslib_1.__param(0, core_1.QueryParam),
|
|
55
|
+
tslib_1.__metadata("design:type", Function),
|
|
56
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.Value]),
|
|
57
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
58
|
+
], TestService.prototype, "addTwo", null);
|
|
59
|
+
tslib_1.__decorate([
|
|
60
|
+
core_1.Get,
|
|
61
|
+
tslib_1.__param(0, core_1.UrlParam),
|
|
62
|
+
tslib_1.__metadata("design:type", Function),
|
|
63
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.Value]),
|
|
64
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
65
|
+
], TestService.prototype, "addThree", null);
|
|
66
|
+
tslib_1.__decorate([
|
|
67
|
+
core_1.Get,
|
|
68
|
+
tslib_1.__param(0, core_1.UrlParam),
|
|
69
|
+
tslib_1.__param(1, core_1.UrlParam),
|
|
70
|
+
tslib_1.__metadata("design:type", Function),
|
|
71
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.Value, domain_1.Value]),
|
|
72
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
73
|
+
], TestService.prototype, "add", null);
|
|
74
|
+
tslib_1.__decorate([
|
|
75
|
+
core_1.Get,
|
|
76
|
+
tslib_1.__param(0, core_1.QueryParams),
|
|
77
|
+
tslib_1.__metadata("design:type", Function),
|
|
78
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.Pagination]),
|
|
79
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
80
|
+
], TestService.prototype, "addFour", null);
|
|
81
|
+
tslib_1.__decorate([
|
|
82
|
+
core_1.Delete,
|
|
83
|
+
tslib_1.__metadata("design:type", Function),
|
|
84
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
85
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
86
|
+
], TestService.prototype, "reject", null);
|
|
87
|
+
tslib_1.__decorate([
|
|
88
|
+
core_1.Delete,
|
|
89
|
+
tslib_1.__metadata("design:type", Function),
|
|
90
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
91
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
92
|
+
], TestService.prototype, "deleteOne", null);
|
|
93
|
+
tslib_1.__decorate([
|
|
94
|
+
core_1.Get,
|
|
95
|
+
tslib_1.__param(0, core_1.Auth),
|
|
96
|
+
tslib_1.__metadata("design:type", Function),
|
|
97
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.AuthToken]),
|
|
98
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
99
|
+
], TestService.prototype, "protectedMethod", null);
|
|
100
|
+
tslib_1.__decorate([
|
|
101
|
+
core_1.Get,
|
|
102
|
+
tslib_1.__param(0, core_1.QueryParam),
|
|
103
|
+
tslib_1.__metadata("design:type", Function),
|
|
104
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.Ids]),
|
|
105
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
106
|
+
], TestService.prototype, "findbyIds", null);
|
|
107
|
+
tslib_1.__decorate([
|
|
108
|
+
core_1.Get,
|
|
109
|
+
tslib_1.__param(0, core_1.UrlParam),
|
|
110
|
+
tslib_1.__metadata("design:type", Function),
|
|
111
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.Ids]),
|
|
112
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
113
|
+
], TestService.prototype, "findbyIds2", null);
|
|
114
|
+
tslib_1.__decorate([
|
|
115
|
+
core_1.Post,
|
|
116
|
+
tslib_1.__param(0, core_1.Body),
|
|
117
|
+
tslib_1.__metadata("design:type", Function),
|
|
118
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.Ids]),
|
|
119
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
120
|
+
], TestService.prototype, "findbyIds3", null);
|
|
121
|
+
tslib_1.__decorate([
|
|
122
|
+
core_1.Post,
|
|
123
|
+
tslib_1.__param(0, core_1.File),
|
|
124
|
+
tslib_1.__metadata("design:type", Function),
|
|
125
|
+
tslib_1.__metadata("design:paramtypes", [domain_1.FileDto]),
|
|
126
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
127
|
+
], TestService.prototype, "upload", null);
|
|
128
|
+
TestService = tslib_1.__decorate([
|
|
129
|
+
core_1.AppService
|
|
130
|
+
], TestService);
|
|
131
|
+
exports.TestService = TestService;
|
|
132
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/__test__/service.ts"],"names":[],"mappings":";;;;AAAA,qCAWoB;AACpB,qCAAsE;AAG/D,IAAM,WAAW,GAAjB,MAAM,WAAW;IAET,AAAN,KAAK,CAAC,MAAM,CAAO,KAAY;QACpC,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,CAAA;IACtB,CAAC;IAGY,AAAN,KAAK,CAAC,MAAM,CAAa,KAAY;QAC1C,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,CAAA;IACtB,CAAC;IAGY,AAAN,KAAK,CAAC,QAAQ,CAAW,KAAY;QAC1C,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,CAAA;IACtB,CAAC;IAGY,AAAN,KAAK,CAAC,GAAG,CAAW,MAAa,EAAY,MAAa;QAC/D,OAAO,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IAChC,CAAC;IAGY,AAAN,KAAK,CAAC,OAAO,CAAc,UAAsB;QACtD,OAAO,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;IACjD,CAAC;IAGY,AAAN,KAAK,CAAC,MAAM;QACjB,MAAM,eAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAC/C,CAAC;IAGY,AAAN,KAAK,CAAC,SAAS;QACpB,EAAE;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,eAAe,CAAO,SAAoB;QACrD,OAAO,SAAS,CAAC,KAAK,CAAC;IACzB,CAAC;IAGY,AAAN,KAAK,CAAC,SAAS,CAAa,GAAQ;QACzC,OAAO,GAAG,CAAA;IACZ,CAAC;IAGY,AAAN,KAAK,CAAC,UAAU,CAAW,GAAQ;QACxC,OAAO,GAAG,CAAA;IACZ,CAAC;IAGY,AAAN,KAAK,CAAC,UAAU,CAAO,GAAQ;QACpC,OAAO,GAAG,CAAA;IACZ,CAAC;IAGY,AAAN,KAAK,CAAC,MAAM,CAAO,KAAc;QACtC,OAAO,KAAK,CAAC,QAAQ,CAAA;IACvB,CAAC;CACF,CAAA;AA1Dc;IADZ,WAAI;IACgB,mBAAA,WAAI,CAAA;;6CAAQ,cAAK;;yCAErC;AAGY;IADZ,UAAG;IACiB,mBAAA,iBAAU,CAAA;;6CAAQ,cAAK;;yCAE3C;AAGY;IADZ,UAAG;IACmB,mBAAA,eAAQ,CAAA;;6CAAQ,cAAK;;2CAE3C;AAGY;IADZ,UAAG;IACc,mBAAA,eAAQ,CAAA;IAAiB,mBAAA,eAAQ,CAAA;;6CAAhB,cAAK,EAAoB,cAAK;;sCAEhE;AAGY;IADZ,UAAG;IACkB,mBAAA,kBAAW,CAAA;;6CAAa,mBAAU;;0CAEvD;AAGY;IADZ,aAAM;;;;yCAGN;AAGY;IADZ,aAAM;;;;4CAGN;AAGY;IADZ,UAAG;IAC0B,mBAAA,WAAI,CAAA;;6CAAY,kBAAS;;kDAEtD;AAGY;IADZ,UAAG;IACoB,mBAAA,iBAAU,CAAA;;6CAAM,YAAG;;4CAE1C;AAGY;IADZ,UAAG;IACqB,mBAAA,eAAQ,CAAA;;6CAAM,YAAG;;6CAEzC;AAGY;IADZ,WAAI;IACoB,mBAAA,WAAI,CAAA;;6CAAM,YAAG;;6CAErC;AAGY;IADZ,WAAI;IACgB,mBAAA,WAAI,CAAA;;6CAAQ,gBAAO;;yCAEvC;AA3DU,WAAW;IADvB,iBAAU;GACE,WAAW,CA4DvB;AA5DY,kCAAW"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
interface EndpointParam {
|
|
2
|
+
dto: string;
|
|
3
|
+
path: string | string[];
|
|
4
|
+
source: string;
|
|
5
|
+
builder: (sourceObj: Record<string, unknown>) => any;
|
|
6
|
+
}
|
|
7
|
+
declare class AppError extends Error {
|
|
8
|
+
readonly statusCode: number;
|
|
9
|
+
constructor(statusCode: number, message: string);
|
|
10
|
+
toString(): string;
|
|
11
|
+
toJSON(): Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export interface ClientOptions {
|
|
14
|
+
url: string;
|
|
15
|
+
log?: boolean;
|
|
16
|
+
onError?: (error: AppError) => void;
|
|
17
|
+
}
|
|
18
|
+
interface ServiceEndpoint {
|
|
19
|
+
url: string;
|
|
20
|
+
method: string;
|
|
21
|
+
status: number;
|
|
22
|
+
httpMethod: string;
|
|
23
|
+
headers: Record<string, string>;
|
|
24
|
+
params: EndpointParam[];
|
|
25
|
+
}
|
|
26
|
+
export interface ServiceConfig {
|
|
27
|
+
name: string;
|
|
28
|
+
endpoints: ServiceEndpoint[];
|
|
29
|
+
}
|
|
30
|
+
export type HttpClient<T> = (_options: ClientOptions) => T;
|
|
31
|
+
export declare const buildClient: <T>(serviceConfigs: ServiceConfig[]) => HttpClient<T>;
|
|
32
|
+
export {};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildClient = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const isomorphic_fetch_1 = tslib_1.__importDefault(require("isomorphic-fetch"));
|
|
6
|
+
class AppError extends Error {
|
|
7
|
+
statusCode;
|
|
8
|
+
constructor(statusCode, message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.statusCode = statusCode;
|
|
11
|
+
if (Error.captureStackTrace !== undefined) {
|
|
12
|
+
Error.captureStackTrace(this, this.constructor);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
toString() {
|
|
16
|
+
return this.message;
|
|
17
|
+
}
|
|
18
|
+
toJSON() {
|
|
19
|
+
return {
|
|
20
|
+
message: this.message,
|
|
21
|
+
statusCode: this.statusCode,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const applyUrlParams = (url, params) => {
|
|
26
|
+
if (params.length === 0)
|
|
27
|
+
return url;
|
|
28
|
+
return url + '/' + params.map(param => {
|
|
29
|
+
if (Array.isArray(param)) {
|
|
30
|
+
return param.map(encodeURIComponent).join(',');
|
|
31
|
+
}
|
|
32
|
+
return encodeURIComponent(param);
|
|
33
|
+
}).join('/');
|
|
34
|
+
};
|
|
35
|
+
const buildQueryParams = (params) => {
|
|
36
|
+
if (!Object.keys(params).length)
|
|
37
|
+
return '';
|
|
38
|
+
return ('?' +
|
|
39
|
+
Object.entries(params)
|
|
40
|
+
.filter(entry => entry[1] !== undefined)
|
|
41
|
+
.map(entry => {
|
|
42
|
+
if (Array.isArray(entry[1])) {
|
|
43
|
+
return entry[0] + '=' + entry[1].map(param => encodeURIComponent(String(param))).join(',');
|
|
44
|
+
}
|
|
45
|
+
return entry[0] + '=' + encodeURIComponent(String(entry[1]));
|
|
46
|
+
})
|
|
47
|
+
.join('&'));
|
|
48
|
+
};
|
|
49
|
+
const buildClient = (serviceConfigs) => {
|
|
50
|
+
return (options) => {
|
|
51
|
+
const api = {};
|
|
52
|
+
serviceConfigs.forEach(service => {
|
|
53
|
+
api[service.name] = {};
|
|
54
|
+
service.endpoints.forEach(endpoint => {
|
|
55
|
+
api[service.name][endpoint.method] = async (...args) => {
|
|
56
|
+
const hasFiles = endpoint.params.some(p => p.source === 'file');
|
|
57
|
+
const payload = endpoint.params
|
|
58
|
+
.filter(p => p.source !== 'middleware')
|
|
59
|
+
.reduce((acc, param, index) => {
|
|
60
|
+
if (Array.isArray(param.path)) {
|
|
61
|
+
param.path.forEach(paramKey => {
|
|
62
|
+
if (param.source === 'params') {
|
|
63
|
+
acc.params.push(args[index][paramKey]);
|
|
64
|
+
}
|
|
65
|
+
else if (hasFiles && ['body', 'file'].includes(param.source)) {
|
|
66
|
+
throw new Error('Files cannot be uploaded with multi param dtos');
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
acc[param.source][paramKey] = args[index][paramKey];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
if (param.source === 'params') {
|
|
75
|
+
acc.params.push(args[index]);
|
|
76
|
+
}
|
|
77
|
+
else if (hasFiles && ['body', 'file'].includes(param.source)) {
|
|
78
|
+
acc.formData.append(param.path, args[index]);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
acc[param.source][param.path] = args[index];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return acc;
|
|
85
|
+
}, {
|
|
86
|
+
headers: {},
|
|
87
|
+
body: {},
|
|
88
|
+
formData: new FormData(),
|
|
89
|
+
query: {},
|
|
90
|
+
params: [],
|
|
91
|
+
});
|
|
92
|
+
try {
|
|
93
|
+
const url = applyUrlParams(options.url + endpoint.url, payload.params) + buildQueryParams(payload.query);
|
|
94
|
+
const body = hasFiles ? payload.formData : Object.keys(payload.body).length === 0 && endpoint.httpMethod !== 'POST' ? undefined : JSON.stringify(payload.body || {});
|
|
95
|
+
const _response = await (0, isomorphic_fetch_1.default)(url, {
|
|
96
|
+
method: endpoint.httpMethod,
|
|
97
|
+
headers: {
|
|
98
|
+
...(!hasFiles ? {
|
|
99
|
+
'Content-Type': 'application/json'
|
|
100
|
+
} : {}),
|
|
101
|
+
...payload.headers,
|
|
102
|
+
},
|
|
103
|
+
body,
|
|
104
|
+
});
|
|
105
|
+
if (options.log) {
|
|
106
|
+
console.log({
|
|
107
|
+
status: _response.status,
|
|
108
|
+
contentType: _response.headers.get('content-type'),
|
|
109
|
+
contentDisposition: _response.headers.get('content-disposition'),
|
|
110
|
+
url,
|
|
111
|
+
method: endpoint.httpMethod,
|
|
112
|
+
body,
|
|
113
|
+
hasFiles,
|
|
114
|
+
headers: payload.headers,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
if (_response.status !== endpoint.status) {
|
|
118
|
+
const response = await _response.json();
|
|
119
|
+
throw new AppError(response?.statusCode || 500, response.message || 'Something went wrong');
|
|
120
|
+
}
|
|
121
|
+
if (endpoint.httpMethod === 'DELETE') {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (_response.headers.get('content-disposition')?.includes('attachment')) {
|
|
125
|
+
const file = window.URL.createObjectURL(await _response.blob());
|
|
126
|
+
window.open(file, '_blank');
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (_response.headers.get('content-type')?.includes('application/json')) {
|
|
130
|
+
const response = await _response.json();
|
|
131
|
+
return response.data;
|
|
132
|
+
}
|
|
133
|
+
if (_response.headers.get('content-type')?.includes('text/html')) {
|
|
134
|
+
return await _response.text();
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
const error = err instanceof AppError ? err : new AppError(err?.status || 0, err?.message || 'Something went wrong');
|
|
140
|
+
if (options.onError) {
|
|
141
|
+
options.onError(error);
|
|
142
|
+
}
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
return api;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
exports.buildClient = buildClient;
|
|
152
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fastify_1 = require("@pjts/fastify");
|
|
4
|
+
const schema_1 = require("@pjts/schema");
|
|
5
|
+
const index_1 = require("./index");
|
|
6
|
+
const __test__1 = require("./__test__");
|
|
7
|
+
const server = (0, fastify_1.buildServer)([new __test__1.TestModule(), new __test__1.TestModule2()], 3019);
|
|
8
|
+
const config = (0, schema_1.buildClientConfig)(new __test__1.TestModule());
|
|
9
|
+
const client = (0, index_1.buildClient)(config);
|
|
10
|
+
const api = client({
|
|
11
|
+
url: 'http://0.0.0.0:3019',
|
|
12
|
+
});
|
|
13
|
+
describe('PJX', () => {
|
|
14
|
+
beforeEach(async () => {
|
|
15
|
+
await server.start('*');
|
|
16
|
+
});
|
|
17
|
+
afterEach(async () => {
|
|
18
|
+
await server.stop();
|
|
19
|
+
});
|
|
20
|
+
it('should handle @Post request with @Body parameters', async () => {
|
|
21
|
+
const data = await api.testService.addOne(2);
|
|
22
|
+
expect(data).toBe(3);
|
|
23
|
+
});
|
|
24
|
+
it('should handle @Get request with @QueryParam parameters', async () => {
|
|
25
|
+
const data = await api.testService.addTwo(2);
|
|
26
|
+
expect(data).toBe(4);
|
|
27
|
+
});
|
|
28
|
+
it('should handle @Get request with @UrlParam parameters', async () => {
|
|
29
|
+
const data = await api.testService.addThree(2);
|
|
30
|
+
expect(data).toBe(5);
|
|
31
|
+
});
|
|
32
|
+
it('should handle @Get request with multiple @UrlParam parameters', async () => {
|
|
33
|
+
const data = await api.testService.add(7, 2);
|
|
34
|
+
expect(data).toBe(9);
|
|
35
|
+
});
|
|
36
|
+
it('should handle @Get request with @UrlParam parameters', async () => {
|
|
37
|
+
const data = await api.testService.addFour({ limit: 5, offset: 6 });
|
|
38
|
+
expect(data).toBe(15);
|
|
39
|
+
});
|
|
40
|
+
it('should handle @Delete request and AppError', async () => {
|
|
41
|
+
await expect(() => api.testService.reject()).rejects.toThrow('Resource not found');
|
|
42
|
+
});
|
|
43
|
+
it('should handle @Delete request', async () => {
|
|
44
|
+
const value = await api.testService.deleteOne();
|
|
45
|
+
expect(value).toBe(undefined);
|
|
46
|
+
});
|
|
47
|
+
it('should pass Auth parameter in headers', async () => {
|
|
48
|
+
const data = await api.testService.protectedMethod('my token');
|
|
49
|
+
expect(data).toBe('my token');
|
|
50
|
+
});
|
|
51
|
+
it('should handle query string array input parameter', async () => {
|
|
52
|
+
{
|
|
53
|
+
const data = await api.testService.findbyIds(['id-1', 'id-2']);
|
|
54
|
+
expect(data).toEqual(['id-1', 'id-2']);
|
|
55
|
+
}
|
|
56
|
+
{
|
|
57
|
+
const data = await api.testService.findbyIds(['70722151297999282', '70722151297952294']);
|
|
58
|
+
expect(data).toEqual(['70722151297999282', '70722151297952294']);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
it('should handle url string array input parameter', async () => {
|
|
62
|
+
{
|
|
63
|
+
const data = await api.testService.findbyIds2(['id-1', 'id-2']);
|
|
64
|
+
expect(data).toEqual(['id-1', 'id-2']);
|
|
65
|
+
}
|
|
66
|
+
{
|
|
67
|
+
const data = await api.testService.findbyIds2(['70722151297999282', '70722151297952294']);
|
|
68
|
+
expect(data).toEqual(['70722151297999282', '70722151297952294']);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
it('should handle body string array input parameter', async () => {
|
|
72
|
+
const data = await api.testService.findbyIds3(['id-1', 'id-2']);
|
|
73
|
+
expect(data).toEqual(['id-1', 'id-2']);
|
|
74
|
+
});
|
|
75
|
+
it('should handle file transfers', () => {
|
|
76
|
+
//
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pjts/client",
|
|
3
|
+
"version": "0.0.43",
|
|
4
|
+
"description": "Piotr Józefów DDD utility package",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"author": "Piotr Józefów",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": "^18.14.0"
|
|
11
|
+
},
|
|
12
|
+
"engineStrict": true,
|
|
13
|
+
"scripts": {
|
|
14
|
+
"lint": "eslint src/ --ext .js,.jsx,.ts,.tsx",
|
|
15
|
+
"test": "NODE_ENV=test jest --coverage=false --verbose",
|
|
16
|
+
"test:watch": "NODE_ENV=test jest --coverage=false --watchAll --testNamePattern=",
|
|
17
|
+
"test:coverage": "npm test --collectCoverage",
|
|
18
|
+
"build": "rm -rf ./dist && tsc",
|
|
19
|
+
"ts-node": "ts-node -r tsconfig-paths/register",
|
|
20
|
+
"test:types": "npm run ts-node ./src/__test__/generate-types.ts",
|
|
21
|
+
"package": "npm run build && npm publish --access=public",
|
|
22
|
+
"prepare": "npm install @pjts/core@latest @pjts/fastify@latest @pjts/schema@latest & npm version patch"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@pjts/core": "^0.0.59",
|
|
26
|
+
"@pjts/fastify": "^0.0.77",
|
|
27
|
+
"@pjts/schema": "^0.0.109",
|
|
28
|
+
"@types/jest": "^29.4.0",
|
|
29
|
+
"@types/node": "^18.13.0",
|
|
30
|
+
"jest": "^29.4.2",
|
|
31
|
+
"prettier": "^2.8.4",
|
|
32
|
+
"ts-jest": "^29.0.5",
|
|
33
|
+
"ts-node": "^10.9.1",
|
|
34
|
+
"tsconfig-paths": "^3.14.2",
|
|
35
|
+
"typescript": "^4.9.5"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@types/isomorphic-fetch": "^0.0.36",
|
|
39
|
+
"isomorphic-fetch": "^3.0.0"
|
|
40
|
+
},
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"registry": "https://registry.npmjs.org"
|
|
43
|
+
}
|
|
44
|
+
}
|