k99 0.4.0-beta.0 → 0.5.0-beta.0
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/browser/index.d.ts +1 -1
- package/browser/index.js +1 -1
- package/browser/index.min.js +1 -1
- package/browser/index.min.mjs +1 -1
- package/browser/index.mjs +1 -1
- package/cli/index.d.ts +1 -1
- package/cli/index.mjs +2 -2
- package/cli.mjs +1 -1
- package/index.d.ts +20 -120
- package/index.js +54 -287
- package/index.min.js +2 -2
- package/index.min.mjs +2 -2
- package/index.mjs +54 -285
- package/node/index.d.ts +1 -1
- package/node/index.mjs +129 -340
- package/package.json +2 -2
- package/services/index.d.ts +9 -15
- package/services/index.js +55 -61
- package/services/index.min.js +2 -2
- package/services/index.min.mjs +2 -2
- package/services/index.mjs +50 -58
- package/starter.mjs +1 -1
package/browser/index.d.ts
CHANGED
package/browser/index.js
CHANGED
package/browser/index.min.js
CHANGED
package/browser/index.min.mjs
CHANGED
package/browser/index.mjs
CHANGED
package/cli/index.d.ts
CHANGED
package/cli/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* k99 v0.
|
|
2
|
+
* k99 v0.5.0-beta.0
|
|
3
3
|
* (c) 2019-2022 猛火 Fierflame
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -94,7 +94,7 @@ async function exec({
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
if (!cfg.dependencies.k99) {
|
|
97
|
-
cfg.dependencies.k99 = '^0.
|
|
97
|
+
cfg.dependencies.k99 = '^0.5.0-beta.0';
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
await new Promise((resolve, reject) => fsFn.writeFile('package.json', JSON.stringify(cfg, null, 2), e => e ? reject(e) : resolve()));
|
package/cli.mjs
CHANGED
package/index.d.ts
CHANGED
|
@@ -1,115 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* k99 v0.
|
|
2
|
+
* k99 v0.5.0-beta.0
|
|
3
3
|
* (c) 2019-2022 猛火 Fierflame
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
|
-
/**
|
|
7
|
-
* 服务
|
|
8
|
-
*/
|
|
9
|
-
declare abstract class Service<T = unknown, P extends any[] = []> implements Context {
|
|
10
|
-
/**
|
|
11
|
-
* @warning 不要重载构造函数或者主动调用创建实例
|
|
12
|
-
*/
|
|
13
|
-
constructor(context: Context);
|
|
14
|
-
readonly context: Context;
|
|
15
|
-
abstract export(...p: P): T;
|
|
16
|
-
/** 销毁时,会自动调用此方法销毁自动创建的容器 */
|
|
17
|
-
destroy(): Promise<void>;
|
|
18
|
-
}
|
|
19
|
-
interface Service extends Context {
|
|
20
|
-
}
|
|
21
|
-
declare namespace Service {
|
|
22
|
-
interface Constructor<T, P extends any[] = []> {
|
|
23
|
-
new (context: Context): Service<T, P>;
|
|
24
|
-
prototype: Service<T, P>;
|
|
25
|
-
}
|
|
26
|
-
interface Func<T, P extends any[] = []> {
|
|
27
|
-
(context: Context, ...p: P): T;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* 路由卫士
|
|
33
|
-
* @description 用于路由的过滤及处理函数执行前的预处理
|
|
34
|
-
*/
|
|
35
|
-
declare abstract class Guard<T = unknown> extends Service<T> {
|
|
36
|
-
decide(): void | boolean | null | undefined | Promise<void | boolean | null | undefined>;
|
|
37
|
-
/**
|
|
38
|
-
* 测试请求是否允许通过此路由访问
|
|
39
|
-
* @description 同一请求、同一路径下,在此函数中调用的 this.set、this.get、this.delete、this.has、this.keys、this.clear 等方法的数据与实例初始化后的共享。目前不同路径下暂不共享,后续可能会被设计为共享,但不同请求下必然不共享
|
|
40
|
-
* @description 同一路径下,若存在任意 test 返回 false 均会使得此路径不会被执行
|
|
41
|
-
* @param param 请求参数
|
|
42
|
-
*/
|
|
43
|
-
static test(param?: {
|
|
44
|
-
[k: string]: string | string[] | undefined;
|
|
45
|
-
}): Promise<boolean>;
|
|
46
|
-
/**
|
|
47
|
-
* @description 映射的 Map 实例的 set 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
48
|
-
*/
|
|
49
|
-
set(k: any, v: any): this;
|
|
50
|
-
/**
|
|
51
|
-
* @description 映射的 Map 实例的 get 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
52
|
-
*/
|
|
53
|
-
get(k: any): any;
|
|
54
|
-
/**
|
|
55
|
-
* @description 映射的 Map 实例的 delete 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
56
|
-
*/
|
|
57
|
-
delete(k: any): boolean;
|
|
58
|
-
/**
|
|
59
|
-
* @description 映射的 Map 实例的 has 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
60
|
-
*/
|
|
61
|
-
has(k: any): boolean;
|
|
62
|
-
/**
|
|
63
|
-
* @description 映射的 Map 实例的 keys 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
64
|
-
*/
|
|
65
|
-
keys(): IterableIterator<any>;
|
|
66
|
-
/**
|
|
67
|
-
* @description 映射的 Map 实例的 clear 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
68
|
-
*/
|
|
69
|
-
clear(): void;
|
|
70
|
-
/**
|
|
71
|
-
* @description 映射的 Map 实例的 size 属性,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
72
|
-
*/
|
|
73
|
-
get size(): number;
|
|
74
|
-
/**
|
|
75
|
-
* @description 映射的 Map 实例的 set 方法,与同一请求同一路径下的 Guard 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
76
|
-
*/
|
|
77
|
-
static set(k: any, v: any): typeof Guard;
|
|
78
|
-
/**
|
|
79
|
-
* @description 映射的 Map 实例的 get 方法,与同一请求同一路径下的 Guard 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
80
|
-
*/
|
|
81
|
-
static get(k: any): any;
|
|
82
|
-
/**
|
|
83
|
-
* @description 映射的 Map 实例的 delete 方法,与同一请求同一路径下的 Guard 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
84
|
-
*/
|
|
85
|
-
static delete(k: any): boolean;
|
|
86
|
-
/**
|
|
87
|
-
* @description 映射的 Map 实例的 has 方法,与同一请求同一路径下的 Guard 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
88
|
-
*/
|
|
89
|
-
static has(k: any): boolean;
|
|
90
|
-
/**
|
|
91
|
-
* @description 映射的 Map 实例的 keys 方法,与同一请求同一路径下的 Guard 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
92
|
-
*/
|
|
93
|
-
static keys(): IterableIterator<any>;
|
|
94
|
-
/**
|
|
95
|
-
* @description 映射的 Map 实例的 clear 方法,与同一请求同一路径下的 Guard 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
96
|
-
*/
|
|
97
|
-
static clear(): void;
|
|
98
|
-
/**
|
|
99
|
-
* @description 映射的 Map 实例的 size 属性,与同一请求同一路径下的 Guard 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
100
|
-
*/
|
|
101
|
-
static get size(): number;
|
|
102
|
-
}
|
|
103
|
-
declare namespace Guard {
|
|
104
|
-
interface Constructor<T> extends Service.Constructor<T> {
|
|
105
|
-
new (context: Context): Guard<T>;
|
|
106
|
-
prototype: Guard<T>;
|
|
107
|
-
test(param: {
|
|
108
|
-
[k: string]: string | string[] | undefined;
|
|
109
|
-
}): void | boolean | null | undefined | Promise<void | boolean | null | undefined>;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
6
|
declare const returnSymbol: unique symbol;
|
|
114
7
|
declare const catchSymbol: unique symbol;
|
|
115
8
|
declare const finallySymbol: unique symbol;
|
|
@@ -183,7 +76,7 @@ declare class Router {
|
|
|
183
76
|
/** 子路由 */
|
|
184
77
|
route(path: string | Router): Router;
|
|
185
78
|
controller?: Controller.Constructor<any>;
|
|
186
|
-
readonly guards: Set<Guard
|
|
79
|
+
readonly guards: Set<Guard<any, any, any>>;
|
|
187
80
|
/**
|
|
188
81
|
* 注册处理函数
|
|
189
82
|
* @param path 要注册的路径
|
|
@@ -322,7 +215,7 @@ declare type WriteType = BaseWriteType | AsyncIterable<WriteType> | Iterable<Wri
|
|
|
322
215
|
|
|
323
216
|
/** 处理函数定义 */
|
|
324
217
|
interface Handle<T extends Record<string, any>> extends Handle.Attrs<T> {
|
|
325
|
-
(
|
|
218
|
+
(data: T, ctx: Context): MaybePromise<void | undefined | WriteType | object>;
|
|
326
219
|
}
|
|
327
220
|
declare function Handle<T extends Record<string, any>>(handle: Handle<T> | Handles<T>): Handle<T> | Handles<T>;
|
|
328
221
|
declare namespace Handle {
|
|
@@ -374,6 +267,10 @@ interface ResourceOption {
|
|
|
374
267
|
absPath?: string;
|
|
375
268
|
}
|
|
376
269
|
|
|
270
|
+
interface Guard<T, D extends Record<string | symbol, any>, P extends any[] = any[]> extends Service<T, D, P> {
|
|
271
|
+
(init: true, params: any, data?: D): boolean | D | Promise<boolean | D>;
|
|
272
|
+
(init: false, context: Context, data?: D): boolean | D | Promise<boolean | D>;
|
|
273
|
+
}
|
|
377
274
|
declare type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS';
|
|
378
275
|
interface Match {
|
|
379
276
|
(pathname: string, parent: string, key: number): null | Match.Result;
|
|
@@ -414,15 +311,15 @@ interface Route {
|
|
|
414
311
|
}): boolean | Promise<boolean>;
|
|
415
312
|
}
|
|
416
313
|
/** 处理项目文件导出 */
|
|
417
|
-
interface Exports
|
|
418
|
-
Controller?: Controller.Constructor<
|
|
419
|
-
Guard?: Guard
|
|
420
|
-
index?: Handle<
|
|
421
|
-
new?: Handle<
|
|
422
|
-
create?: Handle<
|
|
423
|
-
show?: Handle<
|
|
424
|
-
update?: Handle<
|
|
425
|
-
destroy?: Handle<
|
|
314
|
+
interface Exports extends Handles<any> {
|
|
315
|
+
Controller?: Controller.Constructor<any>;
|
|
316
|
+
Guard?: Guard<any, any, any>;
|
|
317
|
+
index?: Handle<any> | Handles<any>;
|
|
318
|
+
new?: Handle<any> | Handles<any>;
|
|
319
|
+
create?: Handle<any> | Handles<any>;
|
|
320
|
+
show?: Handle<any> | Handles<any>;
|
|
321
|
+
update?: Handle<any> | Handles<any>;
|
|
322
|
+
destroy?: Handle<any> | Handles<any>;
|
|
426
323
|
[key: string]: any;
|
|
427
324
|
}
|
|
428
325
|
|
|
@@ -621,6 +518,9 @@ declare namespace K99Request {
|
|
|
621
518
|
}
|
|
622
519
|
}
|
|
623
520
|
|
|
521
|
+
interface Service<T, D extends Record<string | symbol, any>, P extends any[] = []> {
|
|
522
|
+
(context: Context, data: D, ...p: P): T;
|
|
523
|
+
}
|
|
624
524
|
interface Context {
|
|
625
525
|
/** 当前的路由 */
|
|
626
526
|
readonly app: App;
|
|
@@ -698,7 +598,7 @@ interface Context {
|
|
|
698
598
|
*/
|
|
699
599
|
(option?: CookieClearOption, all?: boolean): void;
|
|
700
600
|
};
|
|
701
|
-
service<T, P extends any[] = []>(Service: Service
|
|
601
|
+
service<T, P extends any[] = []>(Service: Service<T, any, P>, ...p: P): T;
|
|
702
602
|
hasHeader(name: string): boolean;
|
|
703
603
|
getHeader(name: string): string | number | string[] | undefined;
|
|
704
604
|
setHeader(name: string, value?: string | number | string[]): void;
|