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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.4.0-beta.0
2
+ * k99 v0.5.0-beta.0
3
3
  * (c) 2019-2022 猛火 Fierflame
4
4
  * @license MIT
5
5
  */
package/browser/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.4.0-beta.0
2
+ * k99 v0.5.0-beta.0
3
3
  * (c) 2019-2022 猛火 Fierflame
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.4.0-beta.0
2
+ * k99 v0.5.0-beta.0
3
3
  * (c) 2019-2022 猛火 Fierflame
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.4.0-beta.0
2
+ * k99 v0.5.0-beta.0
3
3
  * (c) 2019-2022 猛火 Fierflame
4
4
  * @license MIT
5
5
  */
package/browser/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.4.0-beta.0
2
+ * k99 v0.5.0-beta.0
3
3
  * (c) 2019-2022 猛火 Fierflame
4
4
  * @license MIT
5
5
  */
package/cli/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.4.0-beta.0
2
+ * k99 v0.5.0-beta.0
3
3
  * (c) 2019-2022 猛火 Fierflame
4
4
  * @license MIT
5
5
  */
package/cli/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * k99 v0.4.0-beta.0
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.4.0-beta.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
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /*!
3
- * k99 v0.4.0-beta.0
3
+ * k99 v0.5.0-beta.0
4
4
  * (c) 2019-2022 猛火 Fierflame
5
5
  * @license MIT
6
6
  */
package/index.d.ts CHANGED
@@ -1,115 +1,8 @@
1
1
  /*!
2
- * k99 v0.4.0-beta.0
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.Constructor<any>>;
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
- (this: Context, data: T): MaybePromise<void | undefined | WriteType | object>;
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<C extends Controller = any> extends Handles<C> {
418
- Controller?: Controller.Constructor<C>;
419
- Guard?: Guard.Constructor<Guard<C>>;
420
- index?: Handle<C> | Handles<C>;
421
- new?: Handle<C> | Handles<C>;
422
- create?: Handle<C> | Handles<C>;
423
- show?: Handle<C> | Handles<C>;
424
- update?: Handle<C> | Handles<C>;
425
- destroy?: Handle<C> | Handles<C>;
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.Constructor<T, P> | Service.Func<T, P>, ...p: P): T;
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;