spiceflow 1.0.8 → 1.1.1
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/README.md +23 -8
- package/dist/benchmark.test.d.ts +2 -0
- package/dist/benchmark.test.d.ts.map +1 -0
- package/dist/benchmark.test.js +8 -0
- package/dist/benchmark.test.js.map +1 -0
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts +1 -1
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/ws.d.ts +1 -1
- package/dist/client/ws.d.ts.map +1 -1
- package/dist/client.test.js +1 -18
- package/dist/client.test.js.map +1 -1
- package/dist/{elysia-fork/context.d.ts → context.d.ts} +8 -7
- package/dist/context.d.ts.map +1 -0
- package/dist/{elysia-fork/context.js.map → context.js.map} +1 -1
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware.test.d.ts +2 -0
- package/dist/middleware.test.d.ts.map +1 -0
- package/dist/middleware.test.js +99 -0
- package/dist/middleware.test.js.map +1 -0
- package/dist/openapi.d.ts +4 -15
- package/dist/openapi.d.ts.map +1 -1
- package/dist/spiceflow.d.ts +41 -120
- package/dist/spiceflow.d.ts.map +1 -1
- package/dist/spiceflow.js +223 -169
- package/dist/spiceflow.js.map +1 -1
- package/dist/spiceflow.test.js +54 -16
- package/dist/spiceflow.test.js.map +1 -1
- package/dist/types.d.ts +407 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +72 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +69 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/benchmark.test.ts +8 -0
- package/src/client/index.ts +1 -3
- package/src/client/types.ts +6 -13
- package/src/client/ws.ts +1 -1
- package/src/client.test.ts +1 -19
- package/src/context.ts +128 -0
- package/src/index.ts +1 -2
- package/src/middleware.test.ts +107 -0
- package/src/openapi.ts +1 -1
- package/src/spiceflow.test.ts +74 -16
- package/src/spiceflow.ts +324 -391
- package/src/types.test.ts +1 -1
- package/src/types.ts +929 -0
- package/src/utils.ts +84 -0
- package/dist/elysia-fork/context.d.ts.map +0 -1
- package/dist/elysia-fork/error.d.ts.map +0 -1
- package/dist/elysia-fork/error.js.map +0 -1
- package/dist/elysia-fork/types.d.ts +0 -560
- package/dist/elysia-fork/types.d.ts.map +0 -1
- package/dist/elysia-fork/types.js +0 -2
- package/dist/elysia-fork/types.js.map +0 -1
- package/dist/elysia-fork/utils.d.ts +0 -73
- package/dist/elysia-fork/utils.d.ts.map +0 -1
- package/dist/elysia-fork/utils.js +0 -70
- package/dist/elysia-fork/utils.js.map +0 -1
- package/src/elysia-fork/context.ts +0 -166
- package/src/elysia-fork/types.ts +0 -1281
- package/src/elysia-fork/utils.ts +0 -85
- /package/dist/{elysia-fork/context.js → context.js} +0 -0
- /package/dist/{elysia-fork/error.d.ts → error.d.ts} +0 -0
- /package/dist/{elysia-fork/error.js → error.js} +0 -0
- /package/src/{elysia-fork/error.ts → error.ts} +0 -0
package/dist/spiceflow.test.js
CHANGED
|
@@ -19,6 +19,9 @@ test('dynamic route', async () => {
|
|
|
19
19
|
test('GET dynamic route', async () => {
|
|
20
20
|
const res = await new Spiceflow()
|
|
21
21
|
.get('/ids/:id', () => 'hi')
|
|
22
|
+
.post('/ids/:id', ({ params: { id } }) => id, {
|
|
23
|
+
params: z.object({ id: z.string() }),
|
|
24
|
+
})
|
|
22
25
|
.handle(new Request('http://localhost/ids/xxx', { method: 'GET' }));
|
|
23
26
|
expect(res.status).toBe(200);
|
|
24
27
|
expect(await res.json()).toEqual('hi');
|
|
@@ -96,7 +99,7 @@ test('missing route is not found', async () => {
|
|
|
96
99
|
test('state works', async () => {
|
|
97
100
|
const res = await new Spiceflow()
|
|
98
101
|
.state('id', '')
|
|
99
|
-
.
|
|
102
|
+
.use(({ store, request }) => {
|
|
100
103
|
store.id = 'xxx';
|
|
101
104
|
})
|
|
102
105
|
.get('/get', ({ store }) => {
|
|
@@ -168,13 +171,13 @@ test('validate body works, request fails', async () => {
|
|
|
168
171
|
expect(res.status).toBe(422);
|
|
169
172
|
expect(await res.text()).toMatchInlineSnapshot(`"data must have required property 'requiredField'"`);
|
|
170
173
|
});
|
|
171
|
-
test('run
|
|
174
|
+
test('run use', async () => {
|
|
172
175
|
const res = await new Spiceflow()
|
|
173
|
-
.
|
|
176
|
+
.use(({ request }) => {
|
|
174
177
|
expect(request.method).toBe('HEAD');
|
|
175
178
|
return new Response('ok', { status: 401 });
|
|
176
179
|
})
|
|
177
|
-
.
|
|
180
|
+
.use(({ request }) => {
|
|
178
181
|
expect(request.method).toBe('HEAD');
|
|
179
182
|
return 'second one';
|
|
180
183
|
})
|
|
@@ -183,13 +186,13 @@ test('run onRequest', async () => {
|
|
|
183
186
|
expect(res.status).toBe(401);
|
|
184
187
|
expect(await res.text()).toBe('ok');
|
|
185
188
|
});
|
|
186
|
-
test('run
|
|
189
|
+
test('run use', async () => {
|
|
187
190
|
const res = await new Spiceflow()
|
|
188
|
-
.
|
|
191
|
+
.use(({ request }) => {
|
|
189
192
|
expect(request.method).toBe('HEAD');
|
|
190
193
|
return new Response('ok', { status: 401 });
|
|
191
194
|
})
|
|
192
|
-
.
|
|
195
|
+
.use(({ request }) => {
|
|
193
196
|
expect(request.method).toBe('HEAD');
|
|
194
197
|
return 'second one';
|
|
195
198
|
})
|
|
@@ -224,14 +227,49 @@ test('getRouteAndParents', async () => {
|
|
|
224
227
|
let app = new Spiceflow({ basePath: '/one' })
|
|
225
228
|
.get('/ids/:id', () => 'hi')
|
|
226
229
|
.use(new Spiceflow({ basePath: '/two' }).use(new Spiceflow({ basePath: '/three' }).get('/four', () => 'hi')));
|
|
227
|
-
let routers = bfs(app
|
|
230
|
+
let routers = bfs(app);
|
|
228
231
|
let last = routers[routers.length - 1];
|
|
229
|
-
expect(app['
|
|
232
|
+
expect(app['getAppAndParents'](last).map((x) => x.prefix))
|
|
230
233
|
.toMatchInlineSnapshot(`
|
|
231
234
|
[
|
|
235
|
+
"/one",
|
|
236
|
+
"/two",
|
|
232
237
|
"/three",
|
|
238
|
+
]
|
|
239
|
+
`);
|
|
240
|
+
});
|
|
241
|
+
test('getAppsInScope include all parent apps', async () => {
|
|
242
|
+
let app = new Spiceflow({ basePath: '/one' })
|
|
243
|
+
.get('/ids/:id', () => 'hi')
|
|
244
|
+
.use(new Spiceflow({ basePath: '/two' }).use(new Spiceflow({ basePath: '/three' }).use(new Spiceflow({ basePath: '/four' })
|
|
245
|
+
.get('/five', () => 'hi')
|
|
246
|
+
.use(({ request }) => { }))));
|
|
247
|
+
let routers = bfs(app);
|
|
248
|
+
let secondLast = routers[routers.length - 2];
|
|
249
|
+
expect(app['getAppsInScope'](secondLast).map((x) => x.prefix))
|
|
250
|
+
.toMatchInlineSnapshot(`
|
|
251
|
+
[
|
|
252
|
+
"/one",
|
|
233
253
|
"/two",
|
|
254
|
+
"/three",
|
|
255
|
+
]
|
|
256
|
+
`);
|
|
257
|
+
});
|
|
258
|
+
test('getAppsInScope include all parent apps and non scoped apps', async () => {
|
|
259
|
+
let app = new Spiceflow({ basePath: '/one' })
|
|
260
|
+
.get('/ids/:id', () => 'hi')
|
|
261
|
+
.use(new Spiceflow({ basePath: '/two' }).use(new Spiceflow({ basePath: '/three' }).use(new Spiceflow({ basePath: '/four', scoped: false })
|
|
262
|
+
.get('/five', () => 'hi')
|
|
263
|
+
.use(({ request }) => { }))));
|
|
264
|
+
let routers = bfs(app);
|
|
265
|
+
let secondLast = routers[routers.length - 2];
|
|
266
|
+
expect(app['getAppsInScope'](secondLast).map((x) => x.prefix))
|
|
267
|
+
.toMatchInlineSnapshot(`
|
|
268
|
+
[
|
|
234
269
|
"/one",
|
|
270
|
+
"/two",
|
|
271
|
+
"/three",
|
|
272
|
+
"/four",
|
|
235
273
|
]
|
|
236
274
|
`);
|
|
237
275
|
});
|
|
@@ -240,21 +278,21 @@ test('use with 2 basPath works', async () => {
|
|
|
240
278
|
let twoOnReq = false;
|
|
241
279
|
let onReqCalled = [];
|
|
242
280
|
const app = await new Spiceflow()
|
|
243
|
-
.
|
|
281
|
+
.use(({ request }) => {
|
|
244
282
|
onReqCalled.push('root');
|
|
245
283
|
})
|
|
246
284
|
.use(new Spiceflow({ basePath: '/one' })
|
|
247
|
-
.
|
|
285
|
+
.use(({ request }) => {
|
|
248
286
|
oneOnReq = true;
|
|
249
287
|
onReqCalled.push('one');
|
|
250
288
|
})
|
|
251
289
|
.get('/ids/:id', ({ params }) => params.id))
|
|
252
290
|
.use(new Spiceflow({ basePath: '/two' })
|
|
253
|
-
.
|
|
291
|
+
.use((c) => {
|
|
254
292
|
twoOnReq = true;
|
|
255
293
|
onReqCalled.push('two');
|
|
256
294
|
})
|
|
257
|
-
.get('/ids/:id', ({ params }) => params.id));
|
|
295
|
+
.get('/ids/:id', ({ params }) => params.id, {}));
|
|
258
296
|
{
|
|
259
297
|
const res = await app.handle(new Request('http://localhost/one/ids/one'));
|
|
260
298
|
expect(res.status).toBe(200);
|
|
@@ -292,7 +330,7 @@ test('errors inside basPath works', async () => {
|
|
|
292
330
|
onErrorTriggered.push('root');
|
|
293
331
|
// return new Response('root', { status: 500 })
|
|
294
332
|
})
|
|
295
|
-
.
|
|
333
|
+
.use(({ request }) => {
|
|
296
334
|
onReqTriggered.push('root');
|
|
297
335
|
// return new Response('root', { status: 500 })
|
|
298
336
|
})
|
|
@@ -301,7 +339,7 @@ test('errors inside basPath works', async () => {
|
|
|
301
339
|
onErrorTriggered.push('two');
|
|
302
340
|
// return new Response('two', { status: 500 })
|
|
303
341
|
})
|
|
304
|
-
.
|
|
342
|
+
.use(({ request }) => {
|
|
305
343
|
onReqTriggered.push('two');
|
|
306
344
|
// return new Response('two', { status: 500 })
|
|
307
345
|
})
|
|
@@ -310,7 +348,7 @@ test('errors inside basPath works', async () => {
|
|
|
310
348
|
onErrorTriggered.push('nested');
|
|
311
349
|
// return new Response('nested', { status: 500 })
|
|
312
350
|
})
|
|
313
|
-
.
|
|
351
|
+
.use(({ request }) => {
|
|
314
352
|
onReqTriggered.push('nested');
|
|
315
353
|
// return new Response('nested', { status: 500 })
|
|
316
354
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spiceflow.test.js","sourceRoot":"","sources":["../src/spiceflow.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spiceflow.test.js","sourceRoot":"","sources":["../src/spiceflow.test.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,2 +1,409 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import type { BunFile, Server } from 'bun';
|
|
3
|
+
import type { OptionalKind, Static, StaticDecode, TObject, TSchema } from '@sinclair/typebox';
|
|
4
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
5
|
+
import { ZodObject, ZodTypeAny } from 'zod';
|
|
6
|
+
import type { Context, ErrorContext, MiddlewareContext } from './context.js';
|
|
7
|
+
import { ELYSIA_RESPONSE, InternalServerError, NotFoundError, ParseError, ValidationError } from './error.js';
|
|
8
|
+
import { Spiceflow } from './spiceflow.js';
|
|
9
|
+
export type MaybeArray<T> = T | T[];
|
|
10
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
11
|
+
export type ObjectValues<T extends object> = T[keyof T];
|
|
12
|
+
type IsPathParameter<Part extends string> = Part extends `:${infer Parameter}` ? Parameter : Part extends `*` ? '*' : never;
|
|
13
|
+
export type GetPathParameter<Path extends string> = Path extends `${infer A}/${infer B}` ? IsPathParameter<A> | GetPathParameter<B> : IsPathParameter<Path>;
|
|
14
|
+
export type ResolvePath<Path extends string> = Prettify<{
|
|
15
|
+
[Param in GetPathParameter<Path> as Param extends `${string}?` ? never : Param]: string;
|
|
16
|
+
} & {
|
|
17
|
+
[Param in GetPathParameter<Path> as Param extends `${infer OptionalParam}?` ? OptionalParam : never]?: string;
|
|
18
|
+
}>;
|
|
19
|
+
export type Prettify<T> = {
|
|
20
|
+
[K in keyof T]: T[K];
|
|
21
|
+
} & {};
|
|
22
|
+
export type Prettify2<T> = {
|
|
23
|
+
[K in keyof T]: Prettify<T[K]>;
|
|
24
|
+
} & {};
|
|
25
|
+
export type Partial2<T> = {
|
|
26
|
+
[K in keyof T]?: Partial<T[K]>;
|
|
27
|
+
};
|
|
28
|
+
export type NeverKey<T> = {
|
|
29
|
+
[K in keyof T]?: T[K];
|
|
30
|
+
} & {};
|
|
31
|
+
type IsBothObject<A, B> = A extends Record<string | number | symbol, unknown> ? B extends Record<string | number | symbol, unknown> ? IsClass<A> extends false ? IsClass<B> extends false ? true : false : false : false : false;
|
|
32
|
+
type IsClass<V> = V extends abstract new (...args: any) => any ? true : false;
|
|
33
|
+
export type Reconcile<A extends Object, B extends Object, Override extends boolean = false, Stack extends number[] = []> = Stack['length'] extends 16 ? A : Override extends true ? {
|
|
34
|
+
[key in keyof A as key extends keyof B ? never : key]: A[key];
|
|
35
|
+
} extends infer Collision ? {} extends Collision ? {
|
|
36
|
+
[key in keyof B]: IsBothObject<A[key], B[key]> extends true ? Reconcile<A[key], B[key], Override, [
|
|
37
|
+
0,
|
|
38
|
+
...Stack
|
|
39
|
+
]> : B[key];
|
|
40
|
+
} : Prettify<Collision & {
|
|
41
|
+
[key in keyof B]: B[key];
|
|
42
|
+
}> : never : {
|
|
43
|
+
[key in keyof B as key extends keyof A ? never : key]: B[key];
|
|
44
|
+
} extends infer Collision ? {} extends Collision ? {
|
|
45
|
+
[key in keyof A]: IsBothObject<A[key], B[key]> extends true ? Reconcile<A[key], B[key], Override, [
|
|
46
|
+
0,
|
|
47
|
+
...Stack
|
|
48
|
+
]> : A[key];
|
|
49
|
+
} : Prettify<{
|
|
50
|
+
[key in keyof A]: A[key];
|
|
51
|
+
} & Collision> : never;
|
|
52
|
+
export interface SingletonBase {
|
|
53
|
+
store: Record<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
export interface DefinitionBase {
|
|
56
|
+
type: Record<string, unknown>;
|
|
57
|
+
error: Record<string, Error>;
|
|
58
|
+
}
|
|
59
|
+
export type RouteBase = Record<string, unknown>;
|
|
60
|
+
export interface MetadataBase {
|
|
61
|
+
schema: RouteSchema;
|
|
62
|
+
macro: BaseMacro;
|
|
63
|
+
macroFn: BaseMacroFn;
|
|
64
|
+
}
|
|
65
|
+
export interface RouteSchema {
|
|
66
|
+
body?: unknown;
|
|
67
|
+
query?: unknown;
|
|
68
|
+
params?: unknown;
|
|
69
|
+
response?: unknown;
|
|
70
|
+
}
|
|
71
|
+
type OptionalField = {
|
|
72
|
+
[OptionalKind]: 'Optional';
|
|
73
|
+
};
|
|
74
|
+
export type TypeSchema = TSchema | ZodTypeAny;
|
|
75
|
+
export type TypeObject = TObject | ZodObject<any, any, any>;
|
|
76
|
+
export type UnwrapSchema<Schema extends TypeSchema | string | undefined, Definitions extends Record<string, unknown> = {}> = undefined extends Schema ? unknown : Schema extends ZodTypeAny ? z.infer<Schema> : Schema extends TSchema ? Schema extends OptionalField ? Prettify<Partial<Static<Schema>>> : StaticDecode<Schema> : Schema extends string ? Definitions extends Record<Schema, infer NamedSchema> ? NamedSchema : Definitions : unknown;
|
|
77
|
+
export interface UnwrapRoute<in out Schema extends InputSchema<any>, in out Definitions extends DefinitionBase['type'] = {}> {
|
|
78
|
+
body: UnwrapSchema<Schema['body'], Definitions>;
|
|
79
|
+
query: UnwrapSchema<Schema['query'], Definitions>;
|
|
80
|
+
params: UnwrapSchema<Schema['params'], Definitions>;
|
|
81
|
+
response: Schema['response'] extends TypeSchema | string ? {
|
|
82
|
+
200: CoExist<UnwrapSchema<Schema['response'], Definitions>, File, BunFile>;
|
|
83
|
+
} : Schema['response'] extends Record<number, TypeSchema | string> ? {
|
|
84
|
+
[k in keyof Schema['response']]: CoExist<UnwrapSchema<Schema['response'][k], Definitions>, File, BunFile>;
|
|
85
|
+
} : unknown | void;
|
|
86
|
+
}
|
|
87
|
+
export type LifeCycleEvent = 'start' | 'request' | 'parse' | 'transform' | 'beforeHandle' | 'afterHandle' | 'response' | 'error' | 'stop';
|
|
88
|
+
export type ContentType = MaybeArray<(string & {}) | 'none' | 'text' | 'json' | 'formdata' | 'urlencoded' | 'arrayBuffer' | 'text/plain' | 'application/json' | 'multipart/form-data' | 'application/x-www-form-urlencoded'>;
|
|
89
|
+
export type HTTPMethod = (string & {}) | 'ACL' | 'BIND' | 'CHECKOUT' | 'CONNECT' | 'COPY' | 'DELETE' | 'GET' | 'HEAD' | 'LINK' | 'LOCK' | 'M-SEARCH' | 'MERGE' | 'MKACTIVITY' | 'MKCALENDAR' | 'MKCOL' | 'MOVE' | 'NOTIFY' | 'OPTIONS' | 'PATCH' | 'POST' | 'PROPFIND' | 'PROPPATCH' | 'PURGE' | 'PUT' | 'REBIND' | 'REPORT' | 'SEARCH' | 'SOURCE' | 'SUBSCRIBE' | 'TRACE' | 'UNBIND' | 'UNLINK' | 'UNLOCK' | 'UNSUBSCRIBE' | 'ALL';
|
|
90
|
+
export interface InputSchema<Name extends string = string> {
|
|
91
|
+
body?: TypeSchema | Name;
|
|
92
|
+
query?: TypeObject | Name;
|
|
93
|
+
params?: TypeObject | Name;
|
|
94
|
+
response?: TypeSchema | Record<number, TypeSchema> | Name | Record<number, Name | TypeSchema>;
|
|
95
|
+
}
|
|
96
|
+
export interface MergeSchema<in out A extends RouteSchema, in out B extends RouteSchema> {
|
|
97
|
+
body: undefined extends A['body'] ? B['body'] : A['body'];
|
|
98
|
+
query: undefined extends A['query'] ? B['query'] : A['query'];
|
|
99
|
+
params: undefined extends A['params'] ? B['params'] : A['params'];
|
|
100
|
+
response: {} extends A['response'] ? {} extends B['response'] ? {} : B['response'] : {} extends B['response'] ? A['response'] : A['response'] & Omit<B['response'], keyof A['response']>;
|
|
101
|
+
}
|
|
102
|
+
export type Handler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
103
|
+
decorator: {};
|
|
104
|
+
store: {};
|
|
105
|
+
}, Path extends string = ''> = (context: Context<Route, Singleton, Path>) => MaybePromise<{} extends Route['response'] ? unknown : Route['response'][keyof Route['response']]>;
|
|
106
|
+
export type Replace<Original, Target, With> = IsAny<Target> extends true ? Original : Original extends Record<string, unknown> ? {
|
|
107
|
+
[K in keyof Original]: Original[K] extends Target ? With : Original[K];
|
|
108
|
+
} : Original extends Target ? With : Original;
|
|
109
|
+
export type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
110
|
+
export type CoExist<Original, Target, With> = IsAny<Target> extends true ? Original : Original extends Record<string, unknown> ? {
|
|
111
|
+
[K in keyof Original]: Original[K] extends Target ? Original[K] | With : Original[K];
|
|
112
|
+
} : Original extends Target ? Original | With : Original;
|
|
113
|
+
export type InlineHandler<Route extends RouteSchema = {}, Singleton extends SingletonBase = {
|
|
114
|
+
decorator: {};
|
|
115
|
+
store: {};
|
|
116
|
+
}, Path extends string = '', MacroContext = {}> = (context: MacroContext extends Record<string | number | symbol, unknown> ? Prettify<MacroContext & Context<Route, Singleton, Path>> : Context<Route, Singleton, Path>) => Response | MaybePromise<{} extends Route['response'] ? unknown : (Route['response'] extends {
|
|
117
|
+
200: any;
|
|
118
|
+
} ? Route['response'] : string | number | boolean | Object) | Route['response'][keyof Route['response']] | {
|
|
119
|
+
[Status in keyof Route['response']]: {
|
|
120
|
+
_type: Record<Status, Route['response'][Status]>;
|
|
121
|
+
[ELYSIA_RESPONSE]: Status;
|
|
122
|
+
};
|
|
123
|
+
}[keyof Route['response']]>;
|
|
124
|
+
export type OptionalHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
125
|
+
decorator: {};
|
|
126
|
+
store: {};
|
|
127
|
+
}, Path extends string = ''> = Handler<Route, Singleton, Path> extends (context: infer Context) => infer Returned ? (context: Context) => Returned | MaybePromise<void> : never;
|
|
128
|
+
export type AfterHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
129
|
+
decorator: {};
|
|
130
|
+
store: {};
|
|
131
|
+
}, Path extends string = ''> = Handler<Route, Singleton, Path> extends (context: infer Context) => infer Returned ? (context: Prettify<{
|
|
132
|
+
response: Route['response'];
|
|
133
|
+
} & Context>) => Returned | MaybePromise<void> : never;
|
|
134
|
+
export type MapResponse<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
135
|
+
decorator: {};
|
|
136
|
+
store: {};
|
|
137
|
+
}, Path extends string = ''> = Handler<Omit<Route, 'response'> & {
|
|
138
|
+
response: MaybePromise<Response | undefined | unknown>;
|
|
139
|
+
}, Singleton & {
|
|
140
|
+
derive: {
|
|
141
|
+
response: Route['response'];
|
|
142
|
+
};
|
|
143
|
+
}, Path>;
|
|
144
|
+
export type VoidHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
145
|
+
decorator: {};
|
|
146
|
+
store: {};
|
|
147
|
+
}> = (context: Context<Route, Singleton>) => MaybePromise<void>;
|
|
148
|
+
export type TransformHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
149
|
+
decorator: {};
|
|
150
|
+
store: {};
|
|
151
|
+
}, BasePath extends string = ''> = {
|
|
152
|
+
(context: Prettify<Context<Route, Omit<Singleton, 'resolve'> & {
|
|
153
|
+
resolve: {};
|
|
154
|
+
}, BasePath>>): MaybePromise<void>;
|
|
155
|
+
};
|
|
156
|
+
export type BodyHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
157
|
+
decorator: {};
|
|
158
|
+
store: {};
|
|
159
|
+
}, Path extends string = ''> = (context: Prettify<{
|
|
160
|
+
contentType: string;
|
|
161
|
+
} & Context<Route, Singleton, Path>>,
|
|
162
|
+
/**
|
|
163
|
+
* @deprecated
|
|
164
|
+
*
|
|
165
|
+
* use `context.contentType` instead
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* new Spiceflow()
|
|
170
|
+
* .onParse(({ contentType, request }) => {
|
|
171
|
+
* if (contentType === 'application/json')
|
|
172
|
+
* return request.json()
|
|
173
|
+
* })
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
contentType: string) => MaybePromise<any>;
|
|
177
|
+
export type MiddlewareHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
178
|
+
decorator: {};
|
|
179
|
+
store: {};
|
|
180
|
+
}> = (context: MiddlewareContext<Singleton>, next: () => Promise<Response | void>) => MaybePromise<Route['response'] | void>;
|
|
181
|
+
export type AfterResponseHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
182
|
+
decorator: {};
|
|
183
|
+
store: {};
|
|
184
|
+
}> = (context: Prettify<Context<Route, Singleton> & {
|
|
185
|
+
response: Route['response'];
|
|
186
|
+
}>) => MaybePromise<void>;
|
|
187
|
+
export type ErrorHandler<in out T extends Record<string, Error> = {}, in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
|
|
188
|
+
store: {};
|
|
189
|
+
}> = (context: ErrorContext<Route, {
|
|
190
|
+
store: Singleton['store'];
|
|
191
|
+
}> & (Prettify<{
|
|
192
|
+
request: Request;
|
|
193
|
+
code: 'UNKNOWN';
|
|
194
|
+
error: Readonly<Error>;
|
|
195
|
+
} & Partial<Singleton['store']>> | Prettify<{
|
|
196
|
+
request: Request;
|
|
197
|
+
code: 'VALIDATION';
|
|
198
|
+
error: Readonly<ValidationError>;
|
|
199
|
+
} & Singleton['store']> | Prettify<{
|
|
200
|
+
request: Request;
|
|
201
|
+
code: 'NOT_FOUND';
|
|
202
|
+
error: Readonly<NotFoundError>;
|
|
203
|
+
} & NeverKey<Singleton['store']>> | Prettify<{
|
|
204
|
+
request: Request;
|
|
205
|
+
code: 'PARSE';
|
|
206
|
+
error: Readonly<ParseError>;
|
|
207
|
+
} & Singleton['store']> | Prettify<{
|
|
208
|
+
request: Request;
|
|
209
|
+
code: 'INTERNAL_SERVER_ERROR';
|
|
210
|
+
error: Readonly<InternalServerError>;
|
|
211
|
+
} & Partial<Singleton['store']>> | Prettify<{
|
|
212
|
+
[K in keyof T]: {
|
|
213
|
+
request: Request;
|
|
214
|
+
code: K;
|
|
215
|
+
error: Readonly<T[K]>;
|
|
216
|
+
};
|
|
217
|
+
}[keyof T] & Partial<Singleton['store']>>)) => any | Promise<any>;
|
|
218
|
+
export type Isolate<T> = {
|
|
219
|
+
[P in keyof T]: T[P];
|
|
220
|
+
};
|
|
221
|
+
export type DocumentDecoration = Partial<OpenAPIV3.OperationObject> & {
|
|
222
|
+
/**
|
|
223
|
+
* Pass `true` to hide route from OpenAPI/swagger document
|
|
224
|
+
* */
|
|
225
|
+
hide?: boolean;
|
|
226
|
+
};
|
|
227
|
+
export type LocalHook<LocalSchema extends InputSchema, Schema extends RouteSchema, Singleton extends SingletonBase, Errors extends Record<string, Error>, Extension extends BaseMacro, Path extends string = '', TypedRoute extends RouteSchema = Schema extends {
|
|
228
|
+
params: Record<string, unknown>;
|
|
229
|
+
} ? Schema : Schema & {
|
|
230
|
+
params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
|
|
231
|
+
}> = (LocalSchema extends {} ? LocalSchema : Isolate<LocalSchema>) & Extension & {
|
|
232
|
+
detail?: DocumentDecoration;
|
|
233
|
+
/**
|
|
234
|
+
* Short for 'Content-Type'
|
|
235
|
+
*
|
|
236
|
+
* Available:
|
|
237
|
+
* - 'none': do not parse body
|
|
238
|
+
* - 'text' / 'text/plain': parse body as string
|
|
239
|
+
* - 'json' / 'application/json': parse body as json
|
|
240
|
+
* - 'formdata' / 'multipart/form-data': parse body as form-data
|
|
241
|
+
* - 'urlencoded' / 'application/x-www-form-urlencoded: parse body as urlencoded
|
|
242
|
+
* - 'arraybuffer': parse body as readable stream
|
|
243
|
+
*/
|
|
244
|
+
type?: ContentType;
|
|
245
|
+
};
|
|
246
|
+
export type ComposedHandler = (context: Context) => MaybePromise<Response>;
|
|
247
|
+
export interface InternalRoute {
|
|
248
|
+
method: HTTPMethod;
|
|
249
|
+
path: string;
|
|
250
|
+
composed: ComposedHandler | Response | null;
|
|
251
|
+
handler: Handler;
|
|
252
|
+
hooks: LocalHook<any, any, any, any, any, any, any>;
|
|
253
|
+
}
|
|
254
|
+
export type ListenCallback = (server: Server) => MaybePromise<void>;
|
|
255
|
+
export type AddPrefix<Prefix extends string, T> = {
|
|
256
|
+
[K in keyof T as Prefix extends string ? `${Prefix}${K & string}` : K]: T[K];
|
|
257
|
+
};
|
|
258
|
+
export type AddPrefixCapitalize<Prefix extends string, T> = {
|
|
259
|
+
[K in keyof T as `${Prefix}${Capitalize<K & string>}`]: T[K];
|
|
260
|
+
};
|
|
261
|
+
export type AddSuffix<Suffix extends string, T> = {
|
|
262
|
+
[K in keyof T as `${K & string}${Suffix}`]: T[K];
|
|
263
|
+
};
|
|
264
|
+
export type AddSuffixCapitalize<Suffix extends string, T> = {
|
|
265
|
+
[K in keyof T as `${K & string}${Capitalize<Suffix>}`]: T[K];
|
|
266
|
+
};
|
|
267
|
+
export type BaseMacro = Record<string, string | number | boolean | Object | undefined | null>;
|
|
268
|
+
export type BaseMacroFn = Record<string, (...a: any) => unknown>;
|
|
269
|
+
type _CreateEden<Path extends string, Property extends Record<string, unknown> = {}> = Path extends `${infer Start}/${infer Rest}` ? {
|
|
270
|
+
[x in Start]: _CreateEden<Rest, Property>;
|
|
271
|
+
} : {
|
|
272
|
+
[x in Path]: Property;
|
|
273
|
+
};
|
|
274
|
+
export type CreateEden<Path extends string, Property extends Record<string, unknown> = {}> = Path extends `/${infer Rest}` ? _CreateEden<Rest, Property> : Path extends '' ? _CreateEden<'index', Property> : _CreateEden<Path, Property>;
|
|
275
|
+
export type ComposeSpiceflowResponse<Response, Handle> = Handle extends (...a: any[]) => infer A ? _ComposeSpiceflowResponse<Response, Replace<Awaited<A>, BunFile, File>> : _ComposeSpiceflowResponse<Response, Replace<Awaited<Handle>, BunFile, File>>;
|
|
276
|
+
type _ComposeSpiceflowResponse<Response, Handle> = Prettify<{} extends Response ? {
|
|
277
|
+
200: Exclude<Handle, {
|
|
278
|
+
[ELYSIA_RESPONSE]: any;
|
|
279
|
+
}>;
|
|
280
|
+
} & {
|
|
281
|
+
[ErrorResponse in Extract<Handle, {
|
|
282
|
+
response: any;
|
|
283
|
+
}> as ErrorResponse extends {
|
|
284
|
+
[ELYSIA_RESPONSE]: infer Status extends number;
|
|
285
|
+
} ? Status : never]: ErrorResponse['response'];
|
|
286
|
+
} : Response>;
|
|
287
|
+
export type MergeSpiceflowInstances<Instances extends Spiceflow<any, any, any, any, any, any>[] = [], Prefix extends string = '', Scoped extends boolean = false, Singleton extends SingletonBase = {
|
|
288
|
+
decorator: {};
|
|
289
|
+
store: {};
|
|
290
|
+
}, Definitions extends DefinitionBase = {
|
|
291
|
+
type: {};
|
|
292
|
+
error: {};
|
|
293
|
+
}, Metadata extends MetadataBase = {
|
|
294
|
+
schema: {};
|
|
295
|
+
macro: {};
|
|
296
|
+
macroFn: {};
|
|
297
|
+
}, Routes extends RouteBase = {}> = Instances extends [
|
|
298
|
+
infer Current extends Spiceflow<any, any, any, any, any, any>,
|
|
299
|
+
...infer Rest extends Spiceflow<any, any, any, any, any, any>[]
|
|
300
|
+
] ? Current['_types']['Scoped'] extends true ? MergeSpiceflowInstances<Rest, Prefix, Scoped, Singleton, Definitions, Metadata, Routes> : MergeSpiceflowInstances<Rest, Prefix, Scoped, Singleton & Current['_types']['Singleton'], Definitions & Current['_types']['Definitions'], Metadata & Current['_types']['Metadata'], Routes & (Prefix extends `` ? Current['_routes'] : AddPrefix<Prefix, Current['_routes']>)> : Spiceflow<Prefix, Scoped, {
|
|
301
|
+
store: Prettify<Singleton['store']>;
|
|
302
|
+
}, {
|
|
303
|
+
type: Prettify<Definitions['type']>;
|
|
304
|
+
error: Prettify<Definitions['error']>;
|
|
305
|
+
}, {
|
|
306
|
+
schema: Prettify<Metadata['schema']>;
|
|
307
|
+
macro: Prettify<Metadata['macro']>;
|
|
308
|
+
macroFn: Prettify<Metadata['macroFn']>;
|
|
309
|
+
}, Routes>;
|
|
310
|
+
export type LifeCycleType = 'global' | 'local' | 'scoped';
|
|
311
|
+
export type UnionToIntersect<U> = (U extends unknown ? (arg: U) => 0 : never) extends (arg: infer I) => 0 ? I : never;
|
|
312
|
+
export type ContextAppendType = 'append' | 'override';
|
|
313
|
+
export type HTTPHeaders = Record<string, string> & {
|
|
314
|
+
'www-authenticate'?: string;
|
|
315
|
+
authorization?: string;
|
|
316
|
+
'proxy-authenticate'?: string;
|
|
317
|
+
'proxy-authorization'?: string;
|
|
318
|
+
age?: string;
|
|
319
|
+
'cache-control'?: string;
|
|
320
|
+
'clear-site-data'?: string;
|
|
321
|
+
expires?: string;
|
|
322
|
+
'no-vary-search'?: string;
|
|
323
|
+
pragma?: string;
|
|
324
|
+
'last-modified'?: string;
|
|
325
|
+
etag?: string;
|
|
326
|
+
'if-match'?: string;
|
|
327
|
+
'if-none-match'?: string;
|
|
328
|
+
'if-modified-since'?: string;
|
|
329
|
+
'if-unmodified-since'?: string;
|
|
330
|
+
vary?: string;
|
|
331
|
+
connection?: string;
|
|
332
|
+
'keep-alive'?: string;
|
|
333
|
+
accept?: string;
|
|
334
|
+
'accept-encoding'?: string;
|
|
335
|
+
'accept-language'?: string;
|
|
336
|
+
expect?: string;
|
|
337
|
+
'max-forwards'?: string;
|
|
338
|
+
cookie?: string;
|
|
339
|
+
'set-cookie'?: string | string[];
|
|
340
|
+
'access-control-allow-origin'?: string;
|
|
341
|
+
'access-control-allow-credentials'?: string;
|
|
342
|
+
'access-control-allow-headers'?: string;
|
|
343
|
+
'access-control-allow-methods'?: string;
|
|
344
|
+
'access-control-expose-headers'?: string;
|
|
345
|
+
'access-control-max-age'?: string;
|
|
346
|
+
'access-control-request-headers'?: string;
|
|
347
|
+
'access-control-request-method'?: string;
|
|
348
|
+
origin?: string;
|
|
349
|
+
'timing-allow-origin'?: string;
|
|
350
|
+
'content-disposition'?: string;
|
|
351
|
+
'content-length'?: string;
|
|
352
|
+
'content-type'?: string;
|
|
353
|
+
'content-encoding'?: string;
|
|
354
|
+
'content-language'?: string;
|
|
355
|
+
'content-location'?: string;
|
|
356
|
+
forwarded?: string;
|
|
357
|
+
via?: string;
|
|
358
|
+
location?: string;
|
|
359
|
+
refresh?: string;
|
|
360
|
+
allow?: string;
|
|
361
|
+
server?: 'spiceflow' | (string & {});
|
|
362
|
+
'accept-ranges'?: string;
|
|
363
|
+
range?: string;
|
|
364
|
+
'if-range'?: string;
|
|
365
|
+
'content-range'?: string;
|
|
366
|
+
'content-security-policy'?: string;
|
|
367
|
+
'content-security-policy-report-only'?: string;
|
|
368
|
+
'cross-origin-embedder-policy'?: string;
|
|
369
|
+
'cross-origin-opener-policy'?: string;
|
|
370
|
+
'cross-origin-resource-policy'?: string;
|
|
371
|
+
'expect-ct'?: string;
|
|
372
|
+
'permission-policy'?: string;
|
|
373
|
+
'strict-transport-security'?: string;
|
|
374
|
+
'upgrade-insecure-requests'?: string;
|
|
375
|
+
'x-content-type-options'?: string;
|
|
376
|
+
'x-frame-options'?: string;
|
|
377
|
+
'x-xss-protection'?: string;
|
|
378
|
+
'last-event-id'?: string;
|
|
379
|
+
'ping-from'?: string;
|
|
380
|
+
'ping-to'?: string;
|
|
381
|
+
'report-to'?: string;
|
|
382
|
+
te?: string;
|
|
383
|
+
trailer?: string;
|
|
384
|
+
'transfer-encoding'?: string;
|
|
385
|
+
'alt-svg'?: string;
|
|
386
|
+
'alt-used'?: string;
|
|
387
|
+
date?: string;
|
|
388
|
+
dnt?: string;
|
|
389
|
+
'early-data'?: string;
|
|
390
|
+
'large-allocation'?: string;
|
|
391
|
+
link?: string;
|
|
392
|
+
'retry-after'?: string;
|
|
393
|
+
'service-worker-allowed'?: string;
|
|
394
|
+
'source-map'?: string;
|
|
395
|
+
upgrade?: string;
|
|
396
|
+
'x-dns-prefetch-control'?: string;
|
|
397
|
+
'x-forwarded-for'?: string;
|
|
398
|
+
'x-forwarded-host'?: string;
|
|
399
|
+
'x-forwarded-proto'?: string;
|
|
400
|
+
'x-powered-by'?: 'spiceflow' | (string & {});
|
|
401
|
+
'x-request-id'?: string;
|
|
402
|
+
'x-requested-with'?: string;
|
|
403
|
+
'x-robots-tag'?: string;
|
|
404
|
+
'x-ua-compatible'?: string;
|
|
405
|
+
};
|
|
406
|
+
export type JoinPath<A extends string, B extends string> = `${A}${B extends '/' ? '/index' : B extends '' ? B : B extends `/${string}` ? B : B}`;
|
|
407
|
+
export type PartialWithRequired<T, K extends keyof T> = Partial<Omit<T, K>> & Pick<T, K>;
|
|
1
408
|
export {};
|
|
2
409
|
//# sourceMappingURL=types.d.ts.map
|