k99 0.7.1 → 0.8.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/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * k99 v0.7.1
3
- * (c) 2019-2025 猛火Fierflame
2
+ * k99 v0.8.0
3
+ * (c) 2019-2026 猛火Fierflame
4
4
  * @license MIT
5
5
  */
6
6
  type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS';
@@ -108,16 +108,15 @@ interface Options {
108
108
  error?(error: unknown): void;
109
109
  catch?(error: unknown): PromiseLike<Response | null> | Response | null;
110
110
  environment?: object;
111
+ replacer?(this: any, key: string, value: any): any;
111
112
  }
112
- type HandlerResult = void | undefined | string | BufferSource | ArrayBufferView | AsyncIterable<string | BufferSource | ArrayBufferView> | Iterable<string | BufferSource | ArrayBufferView> | object | Response | ReadableStream | Blob | FormData | boolean;
113
+ type HandlerResult = void | undefined | string | BufferSource | ArrayBufferView | AsyncIterable<string | BufferSource | ArrayBufferView> | Iterable<string | BufferSource | ArrayBufferView> | object | Response | ReadableStream | Blob | FormData | number | bigint | boolean;
113
114
  /** 处理函数定义 */
114
115
  interface Handler {
115
116
  (ctx: Context): PromiseLike<HandlerResult> | HandlerResult;
116
- /** 所属组 */
117
- plugin?: string;
118
117
  }
119
118
  interface FindHandler {
120
- (ctx: Context, setParams: (v: Params) => void): PromiseLike<Handler | null> | Handler | null;
119
+ (ctx: Context, setParams: (v: Params) => void): PromiseLike<Handler | Handler[] | null> | Handler | Handler[] | null;
121
120
  }
122
121
 
123
122
  /**
@@ -129,12 +128,22 @@ declare function onionskin(...handlers: (Onionskin | Onionskin[])[]): Handler;
129
128
  type Onionskin = (ctx: Context, next: () => Promise<HandlerResult>) => PromiseLike<HandlerResult> | HandlerResult;
130
129
 
131
130
  type Guard = (ctx: Context) => PromiseLike<boolean | Handler | void> | boolean | Handler | void;
132
- type FindItem = [Handler | Router, Record<string | symbol, any>, string[]];
131
+ type FindItem = [Handler | Handler[] | Router, Record<string | symbol, any>, string[]];
133
132
  type Finder = (this: Router, method: Method, path: string[], ctx: Context) => AsyncIterable<FindItem> | Iterable<FindItem>;
134
133
  /**
135
134
  * @abstract
136
135
  */
137
136
  declare class Router {
137
+ /**
138
+ *
139
+ * @param {Router | Handler[] | Handler} route
140
+ * @param {string[]} path
141
+ * @param {Context} ctx
142
+ * @param {(v: Params) => void} setParams
143
+ * @param {Params} params
144
+ * @returns {Promise<Handler[] | null>}
145
+ */
146
+ static "__#2@#find"(route: Router | Handler[] | Handler, path: string[], ctx: Context, setParams: (v: Params) => void, params: Params): Promise<Handler[] | null>;
138
147
  /**
139
148
  *
140
149
  * @param {Router[]} routers
@@ -156,16 +165,14 @@ declare class Router {
156
165
  * @returns {AsyncIterable<FindItem> | Iterable<FindItem>}
157
166
  */
158
167
  find(method: Method, path: string[], ctx: Context): AsyncIterable<FindItem> | Iterable<FindItem>;
159
- /** @readonly @type {Set<Guard>} */
160
- readonly guards: Set<Guard>;
161
168
  /**
162
169
  *
163
- * @param {Handler} h
164
- * @returns {Handler}
170
+ * @param {...Handler | Handler[]} guards
165
171
  */
166
- __onionskin: (h: Handler) => Handler;
172
+ guard(...guards: (Handler | Handler[])[]): void;
167
173
  /** @param {Onionskin} os */
168
174
  onionskin(os: Onionskin): void;
175
+ #private;
169
176
  }
170
177
 
171
178
  declare class ApiRouter extends Router {
@@ -230,18 +237,18 @@ declare class ApiRouter extends Router {
230
237
  /**
231
238
  * 注册 HTTP GET/POST/PUT/DELETE 处理函数
232
239
  * @overload
233
- * @param {Handler} handler 要注册的处理函数
240
+ * @param {...Handler} handlers 要注册的处理函数
234
241
  * @returns {() => void}
235
242
  */
236
- match(handler: Handler): () => void;
243
+ match(...handlers: Handler[]): () => void;
237
244
  /**
238
245
  * 注册处理函数
239
246
  * @overload
240
247
  * @param {string} path 要注册的路径
241
- * @param {Handler} handler 要注册的处理函数
248
+ * @param {...Handler} handlers 要注册的处理函数
242
249
  * @returns {() => void}
243
250
  */
244
- match(path: string, handler: Handler): () => void;
251
+ match(path: string, ...handlers: Handler[]): () => void;
245
252
  /**
246
253
  * 注册 HTTP GET/POST/PUT/DELETE 处理函数
247
254
  * @overload
@@ -260,18 +267,18 @@ declare class ApiRouter extends Router {
260
267
  /**
261
268
  * 注册 HTTP GET 处理函数
262
269
  * @overload
263
- * @param {Handler} handler 要注册的处理函数
270
+ * @param {...Handler} handlers 要注册的处理函数
264
271
  * @returns {() => void}
265
272
  */
266
- get(handler: Handler): () => void;
273
+ get(...handlers: Handler[]): () => void;
267
274
  /**
268
275
  * 注册 HTTP GET 处理函数
269
276
  * @overload
270
277
  * @param {string} path 要注册的路径
271
- * @param {Handler} handler 要注册的处理函数
278
+ * @param {...Handler} handlers 要注册的处理函数
272
279
  * @returns {() => void}
273
280
  */
274
- get(path: string, handler: Handler): () => void;
281
+ get(path: string, ...handlers: Handler[]): () => void;
275
282
  /**
276
283
  * 注册 HTTP GET 处理函数
277
284
  * @overload
@@ -290,18 +297,18 @@ declare class ApiRouter extends Router {
290
297
  /**
291
298
  * 注册 HTTP POST 处理函数
292
299
  * @overload
293
- * @param {Handler} handler 要注册的处理函数
300
+ * @param {...Handler} handlers 要注册的处理函数
294
301
  * @returns {() => void}
295
302
  */
296
- post(handler: Handler): () => void;
303
+ post(...handlers: Handler[]): () => void;
297
304
  /**
298
305
  * 注册 HTTP POST 处理函数
299
306
  * @overload
300
307
  * @param {string} path 要注册的路径
301
- * @param {Handler} handler 要注册的处理函数
308
+ * @param {...Handler} handlers 要注册的处理函数
302
309
  * @returns {() => void}
303
310
  */
304
- post(path: string, handler: Handler): () => void;
311
+ post(path: string, ...handlers: Handler[]): () => void;
305
312
  /**
306
313
  * 注册 HTTP POST 处理函数
307
314
  * @overload
@@ -320,18 +327,18 @@ declare class ApiRouter extends Router {
320
327
  /**
321
328
  * 注册 HTTP PUT 处理函数
322
329
  * @overload
323
- * @param {Handler} handler 要注册的处理函数
330
+ * @param {...Handler} handlers 要注册的处理函数
324
331
  * @returns {() => void}
325
332
  */
326
- put(handler: Handler): () => void;
333
+ put(...handlers: Handler[]): () => void;
327
334
  /**
328
335
  * 注册 HTTP PUT 处理函数
329
336
  * @overload
330
337
  * @param {string} path 要注册的路径
331
- * @param {Handler} handler 要注册的处理函数
338
+ * @param {...Handler} handlers 要注册的处理函数
332
339
  * @returns {() => void}
333
340
  */
334
- put(path: string, handler: Handler): () => void;
341
+ put(path: string, ...handlers: Handler[]): () => void;
335
342
  /**
336
343
  * 注册 HTTP PUT 处理函数
337
344
  * @overload
@@ -350,18 +357,18 @@ declare class ApiRouter extends Router {
350
357
  /**
351
358
  * 注册 HTTP DELETE 处理函数
352
359
  * @overload
353
- * @param {Handler} handler 要注册的处理函数
360
+ * @param {...Handler} handlers 要注册的处理函数
354
361
  * @returns {() => void}
355
362
  */
356
- delete(handler: Handler): () => void;
363
+ delete(...handlers: Handler[]): () => void;
357
364
  /**
358
365
  * 注册 HTTP DELETE 处理函数
359
366
  * @overload
360
367
  * @param {string} path 要注册的路径
361
- * @param {Handler} handler 要注册的处理函数
368
+ * @param {...Handler} handlers 要注册的处理函数
362
369
  * @returns {() => void}
363
370
  */
364
- delete(path: string, handler: Handler): () => void;
371
+ delete(path: string, ...handlers: Handler[]): () => void;
365
372
  /**
366
373
  * 注册 HTTP DELETE 处理函数
367
374
  * @overload
@@ -380,18 +387,18 @@ declare class ApiRouter extends Router {
380
387
  /**
381
388
  * 注册 HTTP HEAD 处理函数
382
389
  * @overload
383
- * @param {Handler} handler 要注册的处理函数
390
+ * @param {...Handler} handlers 要注册的处理函数
384
391
  * @returns {() => void}
385
392
  */
386
- head(handler: Handler): () => void;
393
+ head(...handlers: Handler[]): () => void;
387
394
  /**
388
395
  * 注册 HTTP HEAD 处理函数
389
396
  * @overload
390
397
  * @param {string} path 要注册的路径
391
- * @param {Handler} handler 要注册的处理函数
398
+ * @param {...Handler} handlers 要注册的处理函数
392
399
  * @returns {() => void}
393
400
  */
394
- head(path: string, handler: Handler): () => void;
401
+ head(path: string, ...handlers: Handler[]): () => void;
395
402
  /**
396
403
  * 注册 HTTP HEAD 处理函数
397
404
  * @overload
@@ -410,18 +417,18 @@ declare class ApiRouter extends Router {
410
417
  /**
411
418
  * 注册 HTTP OPTIONS 处理函数
412
419
  * @overload
413
- * @param {Handler} handler 要注册的处理函数
420
+ * @param {...Handler} handlers 要注册的处理函数
414
421
  * @returns {() => void}
415
422
  */
416
- options(handler: Handler): () => void;
423
+ options(...handlers: Handler[]): () => void;
417
424
  /**
418
425
  * 注册 HTTP OPTIONS 处理函数
419
426
  * @overload
420
427
  * @param {string} path 要注册的路径
421
- * @param {Handler} handler 要注册的处理函数
428
+ * @param {...Handler} handlers 要注册的处理函数
422
429
  * @returns {() => void}
423
430
  */
424
- options(path: string, handler: Handler): () => void;
431
+ options(path: string, ...handlers: Handler[]): () => void;
425
432
  /**
426
433
  * 注册 HTTP OPTIONS 处理函数
427
434
  * @overload
@@ -447,14 +454,10 @@ type Route = {
447
454
  */
448
455
  match?: Match | undefined;
449
456
  router?: null | undefined;
450
- /**
451
- * 所属插件
452
- */
453
- plugin?: string | undefined;
454
457
  /**
455
458
  * 处理函数
456
459
  */
457
- handler: Handler;
460
+ handlers: Handler[];
458
461
  /**
459
462
  * 方法列表
460
463
  */
@@ -476,7 +479,7 @@ type RouteBinder<T extends Router | Finder = ApiRouter> = (router?: T | undefine
476
479
  * @returns {Packer}
477
480
  */
478
481
  declare function packer(onionskin: Onionskin, packer?: Packer): Packer;
479
- type Packer = (handler: Handler) => Handler;
482
+ type Packer = (handler: Handler | Handler[]) => Handler | Handler[];
480
483
 
481
484
  /**
482
485
  *
@@ -485,7 +488,7 @@ type Packer = (handler: Handler) => Handler;
485
488
  * @param {Options} [options]
486
489
  * @returns {Promise<Response | null>}
487
490
  */
488
- declare function main(request: Request, getHandler: FindHandler, { runner, error: echoError, catch: catchError, method: toMethod, environment }?: Options): Promise<Response | null>;
491
+ declare function main(request: Request, getHandler: FindHandler, { runner, error: echoError, catch: catchError, method: toMethod, environment, replacer: JSONReplacer, }?: Options): Promise<Response | null>;
489
492
 
490
493
  /** @import { FindHandler, Options } from './main/types' */
491
494
  /**