moyan-api 2.1.4 → 2.1.6
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/examples/apis/sys/index.d.ts +606 -0
- package/dist/examples/apis/sys/index.js +582 -0
- package/dist/examples/apis/sys/index.js.map +1 -0
- package/dist/examples/apis/sys/schemas.d.ts +377 -0
- package/dist/examples/apis/sys/schemas.js +3 -0
- package/dist/examples/apis/sys/schemas.js.map +1 -0
- package/dist/examples/exec.d.ts +1 -0
- package/dist/examples/exec.js +170 -0
- package/dist/examples/exec.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/api-call.d.ts +1 -1
- package/dist/lib/api-call.js +11 -3
- package/dist/lib/api-call.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
export type ObjectId = string;
|
|
2
|
+
export type int = number | string;
|
|
3
|
+
export type integer = number | string;
|
|
4
|
+
export type float = number | string;
|
|
5
|
+
export type tinyint = number | string;
|
|
6
|
+
export type char = string;
|
|
7
|
+
export type varchar = string;
|
|
8
|
+
export type json = {
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
} | Array<{
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}>;
|
|
13
|
+
export type datetime = Date | string;
|
|
14
|
+
export type date = Date | string;
|
|
15
|
+
export type array = Array<unknown>;
|
|
16
|
+
export type text = string;
|
|
17
|
+
export type decimal = number | string;
|
|
18
|
+
export type LoginDto = {
|
|
19
|
+
username: string;
|
|
20
|
+
password: string;
|
|
21
|
+
};
|
|
22
|
+
export type UserSummaryDto = {
|
|
23
|
+
username: string;
|
|
24
|
+
nickname: string;
|
|
25
|
+
avatar: string;
|
|
26
|
+
};
|
|
27
|
+
export type LoginResponseDto = {
|
|
28
|
+
accessToken: string;
|
|
29
|
+
refreshToken: string;
|
|
30
|
+
tokenType: string;
|
|
31
|
+
expiresIn: number;
|
|
32
|
+
user: any;
|
|
33
|
+
};
|
|
34
|
+
export type UserInfoDto = {
|
|
35
|
+
id: string;
|
|
36
|
+
username: string;
|
|
37
|
+
nickname: string;
|
|
38
|
+
avatar: string;
|
|
39
|
+
roles: Array<string>;
|
|
40
|
+
};
|
|
41
|
+
export type AppInstanceItemDto = {
|
|
42
|
+
appId: string;
|
|
43
|
+
appName: string;
|
|
44
|
+
appCode: string;
|
|
45
|
+
appTypeId: string;
|
|
46
|
+
appTypeCode: string;
|
|
47
|
+
appTypeName: string;
|
|
48
|
+
role: string;
|
|
49
|
+
icon?: string;
|
|
50
|
+
};
|
|
51
|
+
export type PermissionTreeNodeDto = {
|
|
52
|
+
id: string;
|
|
53
|
+
permName: string;
|
|
54
|
+
permCode: string;
|
|
55
|
+
permDesc?: string;
|
|
56
|
+
permissionType: string;
|
|
57
|
+
nodeType: string;
|
|
58
|
+
parentId?: string;
|
|
59
|
+
routePath?: string;
|
|
60
|
+
externalUrl?: string;
|
|
61
|
+
iconName?: string;
|
|
62
|
+
sortOrder: number;
|
|
63
|
+
isVisible: number;
|
|
64
|
+
isCache: number;
|
|
65
|
+
showMode: string;
|
|
66
|
+
permStatus: number;
|
|
67
|
+
checked: boolean;
|
|
68
|
+
isAutoSync?: number;
|
|
69
|
+
permissionValue?: string;
|
|
70
|
+
parentPermissionValue?: string;
|
|
71
|
+
children?: Array<PermissionTreeNodeDto>;
|
|
72
|
+
createdAt: string;
|
|
73
|
+
updateAt: string;
|
|
74
|
+
};
|
|
75
|
+
export type UserPermissionsResponseDto = {
|
|
76
|
+
menuTree: Array<PermissionTreeNodeDto>;
|
|
77
|
+
permissions: Array<string>;
|
|
78
|
+
appTypeId: string;
|
|
79
|
+
};
|
|
80
|
+
export type RegisterDto = {
|
|
81
|
+
username: string;
|
|
82
|
+
password: string;
|
|
83
|
+
nickname?: string;
|
|
84
|
+
email?: string;
|
|
85
|
+
phone?: string;
|
|
86
|
+
};
|
|
87
|
+
export type CheckAvailabilityResponseDto = {
|
|
88
|
+
usernameAvailable: boolean;
|
|
89
|
+
emailAvailable: boolean;
|
|
90
|
+
phoneAvailable: boolean;
|
|
91
|
+
};
|
|
92
|
+
export type CreateUserDto = {
|
|
93
|
+
username: string;
|
|
94
|
+
password: string;
|
|
95
|
+
nickname?: string;
|
|
96
|
+
phone?: string;
|
|
97
|
+
email?: string;
|
|
98
|
+
avatar?: string;
|
|
99
|
+
gender?: number;
|
|
100
|
+
roleIds?: Array<string>;
|
|
101
|
+
};
|
|
102
|
+
export type UserResponseDto = {
|
|
103
|
+
id: string;
|
|
104
|
+
username: string;
|
|
105
|
+
nickname: string;
|
|
106
|
+
phone: string;
|
|
107
|
+
email: string;
|
|
108
|
+
avatar: string;
|
|
109
|
+
gender: number;
|
|
110
|
+
userStatus: number;
|
|
111
|
+
isDeveloper: boolean;
|
|
112
|
+
createdAt: string;
|
|
113
|
+
updateAt: string;
|
|
114
|
+
};
|
|
115
|
+
export type UpdateUserDto = {
|
|
116
|
+
nickname?: string;
|
|
117
|
+
phone?: string;
|
|
118
|
+
email?: string;
|
|
119
|
+
avatar?: string;
|
|
120
|
+
gender?: number;
|
|
121
|
+
roleIds?: Array<string>;
|
|
122
|
+
};
|
|
123
|
+
export type CreateRoleDto = {
|
|
124
|
+
roleName: string;
|
|
125
|
+
roleCode: string;
|
|
126
|
+
roleDesc?: string;
|
|
127
|
+
appTypeId?: string;
|
|
128
|
+
appId?: string;
|
|
129
|
+
sortOrder?: number;
|
|
130
|
+
isBuiltin?: number;
|
|
131
|
+
};
|
|
132
|
+
export type RoleResponseDto = {
|
|
133
|
+
id: string;
|
|
134
|
+
roleName: string;
|
|
135
|
+
roleCode: string;
|
|
136
|
+
roleDesc: string;
|
|
137
|
+
appTypeId: string;
|
|
138
|
+
appId: string;
|
|
139
|
+
isBuiltin: number;
|
|
140
|
+
isOwner: number;
|
|
141
|
+
roleStatus: number;
|
|
142
|
+
sortOrder: number;
|
|
143
|
+
createdAt: string;
|
|
144
|
+
updateAt: string;
|
|
145
|
+
};
|
|
146
|
+
export type PageResponseDto = {
|
|
147
|
+
total: number;
|
|
148
|
+
page: number;
|
|
149
|
+
pageSize: number;
|
|
150
|
+
totalPages: number;
|
|
151
|
+
hasNext: boolean;
|
|
152
|
+
hasPrev: boolean;
|
|
153
|
+
};
|
|
154
|
+
export type UpdateRoleDto = {
|
|
155
|
+
roleName?: string;
|
|
156
|
+
roleDesc?: string;
|
|
157
|
+
sortOrder?: number;
|
|
158
|
+
roleStatus?: number;
|
|
159
|
+
};
|
|
160
|
+
export type PermissionTreePayloadDto = {
|
|
161
|
+
id: string;
|
|
162
|
+
checked: boolean;
|
|
163
|
+
permissionValue?: string;
|
|
164
|
+
children?: Array<PermissionTreePayloadDto>;
|
|
165
|
+
};
|
|
166
|
+
export type PermissionTreesDto = {
|
|
167
|
+
pcTree: Array<PermissionTreePayloadDto>;
|
|
168
|
+
normalTree: Array<PermissionTreePayloadDto>;
|
|
169
|
+
};
|
|
170
|
+
export type AssignPermissionsDto = {
|
|
171
|
+
permissionTrees: any;
|
|
172
|
+
};
|
|
173
|
+
export type RolePermissionTreesResponseDto = {
|
|
174
|
+
pcTree: Array<PermissionTreeNodeDto>;
|
|
175
|
+
normalTree: Array<PermissionTreeNodeDto>;
|
|
176
|
+
};
|
|
177
|
+
export type RolePermissionResponseDto = {
|
|
178
|
+
roleId: string;
|
|
179
|
+
permissionTrees: any;
|
|
180
|
+
};
|
|
181
|
+
export type CreateAppTypeDto = {
|
|
182
|
+
typeName: string;
|
|
183
|
+
typeCode: string;
|
|
184
|
+
typeDesc?: string;
|
|
185
|
+
icon?: string;
|
|
186
|
+
multiAppEnabled: number;
|
|
187
|
+
typeStatus: number;
|
|
188
|
+
sortOrder: number;
|
|
189
|
+
};
|
|
190
|
+
export type AppTypeResponseDto = {
|
|
191
|
+
id: string;
|
|
192
|
+
typeName: string;
|
|
193
|
+
typeCode: string;
|
|
194
|
+
typeDesc: string;
|
|
195
|
+
icon: string;
|
|
196
|
+
multiAppEnabled: number;
|
|
197
|
+
typeStatus: number;
|
|
198
|
+
sortOrder: number;
|
|
199
|
+
createdAt: string;
|
|
200
|
+
updateAt: string;
|
|
201
|
+
};
|
|
202
|
+
export type PermissionTreesResponseDto = {
|
|
203
|
+
pcTree: Array<PermissionTreeNodeDto>;
|
|
204
|
+
normalTree: Array<PermissionTreeNodeDto>;
|
|
205
|
+
};
|
|
206
|
+
export type PermissionPoolResponseDto = {
|
|
207
|
+
appTypeId: string;
|
|
208
|
+
permissionTrees: any;
|
|
209
|
+
};
|
|
210
|
+
export type UpdatePermissionPoolDto = {
|
|
211
|
+
permissionTrees: any;
|
|
212
|
+
};
|
|
213
|
+
export type UpdatePermissionPoolResponseDto = {
|
|
214
|
+
appTypeId: string;
|
|
215
|
+
updatedCount: number;
|
|
216
|
+
};
|
|
217
|
+
export type UpdateAppTypeDto = {
|
|
218
|
+
typeName?: string;
|
|
219
|
+
typeCode?: string;
|
|
220
|
+
typeDesc?: string;
|
|
221
|
+
icon?: string;
|
|
222
|
+
multiAppEnabled?: number;
|
|
223
|
+
typeStatus?: number;
|
|
224
|
+
sortOrder?: number;
|
|
225
|
+
};
|
|
226
|
+
export type CreatePermissionDto = {
|
|
227
|
+
permName: string;
|
|
228
|
+
permCode: string;
|
|
229
|
+
permDesc?: string;
|
|
230
|
+
permissionType: string;
|
|
231
|
+
nodeType?: string;
|
|
232
|
+
parentId?: string;
|
|
233
|
+
routePath?: string;
|
|
234
|
+
externalUrl?: string;
|
|
235
|
+
iconName?: string;
|
|
236
|
+
sortOrder?: number;
|
|
237
|
+
isVisible?: number;
|
|
238
|
+
isCache?: number;
|
|
239
|
+
showMode: string;
|
|
240
|
+
permStatus?: number;
|
|
241
|
+
permissionValue?: integer;
|
|
242
|
+
};
|
|
243
|
+
export type PermissionResponseDto = {
|
|
244
|
+
id: string;
|
|
245
|
+
permName: string;
|
|
246
|
+
permCode: string;
|
|
247
|
+
permDesc: string;
|
|
248
|
+
permissionType: string;
|
|
249
|
+
nodeType: string;
|
|
250
|
+
parentId: string;
|
|
251
|
+
routePath: string;
|
|
252
|
+
externalUrl: string;
|
|
253
|
+
iconName: string;
|
|
254
|
+
sortOrder: number;
|
|
255
|
+
isVisible: number;
|
|
256
|
+
isCache: number;
|
|
257
|
+
showMode: string;
|
|
258
|
+
permStatus: number;
|
|
259
|
+
permissionValue: string;
|
|
260
|
+
createdAt: string;
|
|
261
|
+
updateAt: string;
|
|
262
|
+
};
|
|
263
|
+
export type UpdatePermissionDto = {
|
|
264
|
+
permName?: string;
|
|
265
|
+
permCode?: string;
|
|
266
|
+
permDesc?: string;
|
|
267
|
+
nodeType?: string;
|
|
268
|
+
routePath?: string;
|
|
269
|
+
externalUrl?: string;
|
|
270
|
+
iconName?: string;
|
|
271
|
+
sortOrder?: number;
|
|
272
|
+
isVisible?: number;
|
|
273
|
+
isCache?: number;
|
|
274
|
+
showMode?: string;
|
|
275
|
+
permStatus?: number;
|
|
276
|
+
permissionValue?: integer;
|
|
277
|
+
};
|
|
278
|
+
export type RouteNodeDto = {
|
|
279
|
+
path: string;
|
|
280
|
+
name: string;
|
|
281
|
+
children?: Array<RouteNodeDto>;
|
|
282
|
+
};
|
|
283
|
+
export type SyncPermissionDto = {
|
|
284
|
+
routes: Array<RouteNodeDto>;
|
|
285
|
+
};
|
|
286
|
+
export type CreateAppDto = {
|
|
287
|
+
appTypeId: string;
|
|
288
|
+
appName: string;
|
|
289
|
+
appCode: string;
|
|
290
|
+
ownerId: string;
|
|
291
|
+
appDesc?: string;
|
|
292
|
+
icon?: string;
|
|
293
|
+
sortOrder: number;
|
|
294
|
+
};
|
|
295
|
+
export type AppDetailResponseDto = {
|
|
296
|
+
id: string;
|
|
297
|
+
appTypeId: string;
|
|
298
|
+
appName: string;
|
|
299
|
+
appCode: string;
|
|
300
|
+
appDesc: string;
|
|
301
|
+
ownerId: string;
|
|
302
|
+
icon: string;
|
|
303
|
+
appStatus: number;
|
|
304
|
+
sortOrder: number;
|
|
305
|
+
createdAt: string;
|
|
306
|
+
updateAt: string;
|
|
307
|
+
appType: object;
|
|
308
|
+
owner: object;
|
|
309
|
+
};
|
|
310
|
+
export type UpdateAppDto = {
|
|
311
|
+
appCode?: string;
|
|
312
|
+
appName?: string;
|
|
313
|
+
appDesc?: string;
|
|
314
|
+
icon?: string;
|
|
315
|
+
ownerId?: string;
|
|
316
|
+
appStatus?: number;
|
|
317
|
+
sortOrder?: number;
|
|
318
|
+
};
|
|
319
|
+
export type AddMemberDto = {
|
|
320
|
+
userId: string;
|
|
321
|
+
};
|
|
322
|
+
export type MemberUserInfoDto = {
|
|
323
|
+
id: string;
|
|
324
|
+
username: string;
|
|
325
|
+
nickname: string;
|
|
326
|
+
avatar: string;
|
|
327
|
+
};
|
|
328
|
+
export type MemberRoleInfoDto = {
|
|
329
|
+
roleName: string;
|
|
330
|
+
roleCode: string;
|
|
331
|
+
isBuiltin: number;
|
|
332
|
+
roleId: string;
|
|
333
|
+
};
|
|
334
|
+
export type MemberResponseDto = {
|
|
335
|
+
id: string;
|
|
336
|
+
appId: string;
|
|
337
|
+
userId: string;
|
|
338
|
+
createdAt: string;
|
|
339
|
+
user: any;
|
|
340
|
+
roles: Array<MemberRoleInfoDto>;
|
|
341
|
+
};
|
|
342
|
+
export type UpdateMemberRolesDto = {
|
|
343
|
+
roleIds: Array<array>;
|
|
344
|
+
};
|
|
345
|
+
export type AvailableRoleDto = {
|
|
346
|
+
id: string;
|
|
347
|
+
roleName: string;
|
|
348
|
+
roleCode: string;
|
|
349
|
+
isBuiltin: number;
|
|
350
|
+
isOwner: number;
|
|
351
|
+
};
|
|
352
|
+
export type AuditLogResponseDto = {
|
|
353
|
+
id: string;
|
|
354
|
+
module: string;
|
|
355
|
+
event: string;
|
|
356
|
+
operatorId: string;
|
|
357
|
+
operatorName: string;
|
|
358
|
+
targetId: string;
|
|
359
|
+
targetType: string;
|
|
360
|
+
description: string;
|
|
361
|
+
snapshot?: object;
|
|
362
|
+
ip: string;
|
|
363
|
+
userAgent?: string;
|
|
364
|
+
createAt: string;
|
|
365
|
+
};
|
|
366
|
+
export type InitStatusResponseDto = {
|
|
367
|
+
initialized: boolean;
|
|
368
|
+
};
|
|
369
|
+
export type InitRequestDto = {
|
|
370
|
+
adminPassword: string;
|
|
371
|
+
};
|
|
372
|
+
export type InitResponseDto = {
|
|
373
|
+
appTypeId: string;
|
|
374
|
+
appId: string;
|
|
375
|
+
adminUserId: string;
|
|
376
|
+
message: string;
|
|
377
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../src/examples/apis/sys/schemas.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const axios_1 = require("axios");
|
|
4
|
+
const api_call_1 = require("../lib/api-call");
|
|
5
|
+
class AxiosRequest extends api_call_1.RequestClass {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
this.axiosInstance = axios_1.default.create({
|
|
9
|
+
baseURL: 'https://jsonplaceholder.typicode.com',
|
|
10
|
+
timeout: 10000
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
async request(apiEntity) {
|
|
14
|
+
const { path, method, body, query, params } = apiEntity;
|
|
15
|
+
try {
|
|
16
|
+
const response = await this.axiosInstance({
|
|
17
|
+
url: path,
|
|
18
|
+
method: method.toLowerCase(),
|
|
19
|
+
data: body,
|
|
20
|
+
params: query,
|
|
21
|
+
headers: {
|
|
22
|
+
'Content-Type': 'application/json'
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return response;
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
class GetUserApi extends api_call_1.ApiCall {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments);
|
|
35
|
+
this.path = '/users/{id}';
|
|
36
|
+
this.method = 'GET';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
class GetPostsApi extends api_call_1.ApiCall {
|
|
40
|
+
constructor() {
|
|
41
|
+
super(...arguments);
|
|
42
|
+
this.path = '/posts';
|
|
43
|
+
this.method = 'GET';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
class CreatePostApi extends api_call_1.ApiCall {
|
|
47
|
+
constructor() {
|
|
48
|
+
super(...arguments);
|
|
49
|
+
this.path = '/posts';
|
|
50
|
+
this.method = 'POST';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
class UpdatePostApi extends api_call_1.ApiCall {
|
|
54
|
+
constructor() {
|
|
55
|
+
super(...arguments);
|
|
56
|
+
this.path = '/posts/{id}';
|
|
57
|
+
this.method = 'PUT';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
class DeletePostApi extends api_call_1.ApiCall {
|
|
61
|
+
constructor() {
|
|
62
|
+
super(...arguments);
|
|
63
|
+
this.path = '/posts/{id}';
|
|
64
|
+
this.method = 'DELETE';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function main() {
|
|
68
|
+
console.log('=== moyan-api 调用演示 ===\n');
|
|
69
|
+
const axiosRequest = new AxiosRequest();
|
|
70
|
+
api_call_1.ApiCall.use(axiosRequest);
|
|
71
|
+
api_call_1.ApiCall.emitter.on(api_call_1.ApiEvents.Success, (apiCall) => {
|
|
72
|
+
console.log(`✅ 请求成功: ${apiCall.path}`);
|
|
73
|
+
});
|
|
74
|
+
api_call_1.ApiCall.emitter.on(api_call_1.ApiEvents.Fail, (apiCall) => {
|
|
75
|
+
console.log(`❌ 请求失败: ${apiCall.path}`);
|
|
76
|
+
});
|
|
77
|
+
api_call_1.ApiCall.emitter.on(api_call_1.ApiEvents.HintFail, (apiCall) => {
|
|
78
|
+
console.log(`⚠️ 错误提示: ${apiCall.failMsg}`);
|
|
79
|
+
});
|
|
80
|
+
try {
|
|
81
|
+
console.log('1. 获取用户信息 (GET /users/1)');
|
|
82
|
+
const user = await new GetUserApi({ params: { id: 1 } }, {
|
|
83
|
+
hintSuccess: true,
|
|
84
|
+
hintFail: true
|
|
85
|
+
}).then((res) => {
|
|
86
|
+
return res;
|
|
87
|
+
});
|
|
88
|
+
console.log('用户数据:', JSON.stringify(user, null, 2));
|
|
89
|
+
console.log();
|
|
90
|
+
console.log('2. 获取文章列表 (GET /posts)');
|
|
91
|
+
const posts = await new GetPostsApi({ query: { userId: 1 } }, {
|
|
92
|
+
hintSuccess: true,
|
|
93
|
+
hintFail: true
|
|
94
|
+
});
|
|
95
|
+
console.log(`获取到 ${posts.length} 篇文章`);
|
|
96
|
+
console.log('第一篇文章:', JSON.stringify(posts[0], null, 2));
|
|
97
|
+
console.log();
|
|
98
|
+
console.log('3. 创建新文章 (POST /posts)');
|
|
99
|
+
const createPostApi = new CreatePostApi({
|
|
100
|
+
body: {
|
|
101
|
+
title: '测试文章',
|
|
102
|
+
body: '这是一篇测试文章内容',
|
|
103
|
+
userId: 1
|
|
104
|
+
}
|
|
105
|
+
}, {
|
|
106
|
+
hintSuccess: true,
|
|
107
|
+
hintFail: true,
|
|
108
|
+
successMsg: '文章创建成功!'
|
|
109
|
+
});
|
|
110
|
+
const newPost = await createPostApi.resolveResult;
|
|
111
|
+
console.log('新创建的文章:', JSON.stringify(newPost, null, 2));
|
|
112
|
+
console.log();
|
|
113
|
+
console.log('4. 更新文章 (PUT /posts/1)');
|
|
114
|
+
const updatePostApi = new UpdatePostApi({
|
|
115
|
+
params: { id: 1 },
|
|
116
|
+
body: {
|
|
117
|
+
title: '更新后的标题',
|
|
118
|
+
body: '更新后的内容'
|
|
119
|
+
}
|
|
120
|
+
}, {
|
|
121
|
+
hintSuccess: true,
|
|
122
|
+
hintFail: true,
|
|
123
|
+
successMsg: '文章更新成功!'
|
|
124
|
+
});
|
|
125
|
+
const updatedPost = await updatePostApi.resolveResult;
|
|
126
|
+
console.log('更新后的文章:', JSON.stringify(updatedPost, null, 2));
|
|
127
|
+
console.log();
|
|
128
|
+
console.log('5. 使用 then/catch 链式调用');
|
|
129
|
+
new GetUserApi({ params: { id: 2 } })
|
|
130
|
+
.then((user) => {
|
|
131
|
+
console.log('链式调用获取用户:', user.name);
|
|
132
|
+
return user;
|
|
133
|
+
})
|
|
134
|
+
.catch((error) => {
|
|
135
|
+
console.error('链式调用错误:', error.message);
|
|
136
|
+
});
|
|
137
|
+
console.log();
|
|
138
|
+
console.log('6. 测试错误处理 (GET /users/999999)');
|
|
139
|
+
try {
|
|
140
|
+
const errorApi = new GetUserApi({ params: { id: 999999 } }, {
|
|
141
|
+
hintFail: true,
|
|
142
|
+
failMsg: '用户不存在'
|
|
143
|
+
});
|
|
144
|
+
await errorApi.resolveResult;
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
console.log('捕获到预期错误:', error.message);
|
|
148
|
+
}
|
|
149
|
+
console.log();
|
|
150
|
+
console.log('7. 使用自定义选项');
|
|
151
|
+
const customOptionsApi = new GetPostsApi({ query: { userId: 1 } }, {
|
|
152
|
+
hintSuccess: false,
|
|
153
|
+
hintFail: false,
|
|
154
|
+
showLoading: false,
|
|
155
|
+
ext: {
|
|
156
|
+
customField: '自定义数据'
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
const customPosts = await customOptionsApi.resolveResult;
|
|
160
|
+
console.log('自定义选项调用成功,获取文章数:', customPosts.length);
|
|
161
|
+
console.log('扩展数据:', customOptionsApi.options.ext);
|
|
162
|
+
console.log();
|
|
163
|
+
console.log('=== 演示完成 ===');
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
console.error('演示过程中发生错误:', error.message);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
main();
|
|
170
|
+
//# sourceMappingURL=exec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/examples/exec.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ApiCall, ApiEntity, SubApiEntity, ObjectAny, Options, MoMethod } from './lib/api-call';
|
|
2
|
-
export { ApiCall, ApiEntity, SubApiEntity, ObjectAny, Options, MoMethod };
|
|
1
|
+
import { ApiCall, ApiEntity, SubApiEntity, ObjectAny, Options, MoMethod, RequestClass } from './lib/api-call';
|
|
2
|
+
export { ApiCall, ApiEntity, SubApiEntity, ObjectAny, Options, MoMethod, RequestClass };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApiCall = void 0;
|
|
3
|
+
exports.RequestClass = exports.ApiCall = void 0;
|
|
4
4
|
const api_call_1 = require("./lib/api-call");
|
|
5
5
|
Object.defineProperty(exports, "ApiCall", { enumerable: true, get: function () { return api_call_1.ApiCall; } });
|
|
6
|
+
Object.defineProperty(exports, "RequestClass", { enumerable: true, get: function () { return api_call_1.RequestClass; } });
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,6CAAqG;AAEnG,wFAFM,kBAAO,OAEN;AAMP,6FARgE,uBAAY,OAQhE"}
|
package/dist/lib/api-call.d.ts
CHANGED
|
@@ -55,7 +55,7 @@ export declare abstract class ApiCall<T extends ApiParameter, R extends unknown>
|
|
|
55
55
|
resolveResult: Promise<R>;
|
|
56
56
|
resolve(result: R): void;
|
|
57
57
|
reject(err: unknown): void;
|
|
58
|
-
then(onFulfilled: (value: R) =>
|
|
58
|
+
then<S>(onFulfilled: (value: R) => S): Promise<S>;
|
|
59
59
|
catch(onRejected: (reason: unknown) => void): Promise<void | R>;
|
|
60
60
|
get successMsg(): any;
|
|
61
61
|
get failMsg(): any;
|
package/dist/lib/api-call.js
CHANGED
|
@@ -81,10 +81,18 @@ class ApiCall {
|
|
|
81
81
|
this._resolve = resolve;
|
|
82
82
|
this._reject = reject;
|
|
83
83
|
});
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
setTimeout(() => {
|
|
85
|
+
this.init(props, options);
|
|
86
|
+
this.exec();
|
|
87
|
+
}, 0);
|
|
86
88
|
}
|
|
87
89
|
replaceUrlParams(urlTemplate, params) {
|
|
90
|
+
if (!urlTemplate) {
|
|
91
|
+
return urlTemplate;
|
|
92
|
+
}
|
|
93
|
+
if (!params || Object.keys(params).length === 0) {
|
|
94
|
+
return urlTemplate;
|
|
95
|
+
}
|
|
88
96
|
return urlTemplate.replace(/\{(\w+)\}/g, (match, paramName) => {
|
|
89
97
|
const value = params[paramName];
|
|
90
98
|
if (value === undefined) {
|
|
@@ -116,7 +124,7 @@ class ApiCall {
|
|
|
116
124
|
else {
|
|
117
125
|
this.options = Object.assign(defaultOption, this.options);
|
|
118
126
|
}
|
|
119
|
-
this.params = props
|
|
127
|
+
this.params = (props === null || props === void 0 ? void 0 : props.params) || {};
|
|
120
128
|
}
|
|
121
129
|
exec() {
|
|
122
130
|
this.path = this.replaceUrlParams(this.path, this.params);
|
package/dist/lib/api-call.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-call.js","sourceRoot":"","sources":["../../src/lib/api-call.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AA2DrC,MAAsB,YAAY;CAEjC;AAFD,oCAEC;AAID,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,wCAA2B,CAAA;IAC3B,gCAAmB,CAAA;IACnB,kCAAqB,CAAA;IACrB,0CAA6B,CAAA;IAC7B,0BAAa,CAAA;AACf,CAAC,EANW,SAAS,yBAAT,SAAS,QAMpB;AASD,MAAsB,OAAO;IAG3B,MAAM,CAAC,GAAG,CAAC,MAAoB;QAC7B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;IACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-call.js","sourceRoot":"","sources":["../../src/lib/api-call.ts"],"names":[],"mappings":"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"}
|