spiceflow 1.10.0 → 1.11.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/README.md +244 -118
- package/dist/_node-server.d.ts +3 -3
- package/dist/_node-server.d.ts.map +1 -1
- package/dist/client/index.d.ts +4 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +201 -195
- package/dist/client/types.d.ts +8 -6
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client.test.js +9 -0
- package/dist/context.d.ts +3 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/cors.d.ts.map +1 -1
- package/dist/cors.js +1 -1
- package/dist/error.d.ts +0 -8
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +0 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/mcp.d.ts +5 -5
- package/dist/mcp.d.ts.map +1 -1
- package/dist/openapi.d.ts +2 -2
- package/dist/openapi.d.ts.map +1 -1
- package/dist/spiceflow.d.ts +60 -43
- package/dist/spiceflow.d.ts.map +1 -1
- package/dist/spiceflow.js +52 -16
- package/dist/spiceflow.test.js +85 -0
- package/dist/types.d.ts +24 -16
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +7 -7
- package/src/_node-server.ts +3 -3
- package/src/client/index.ts +20 -14
- package/src/client/types.ts +11 -11
- package/src/client.test.ts +10 -0
- package/src/context.ts +3 -2
- package/src/cors.ts +1 -2
- package/src/error.ts +0 -10
- package/src/index.ts +1 -1
- package/src/spiceflow.test.ts +113 -0
- package/src/spiceflow.ts +181 -68
- package/src/types.ts +38 -28
package/dist/types.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import z from 'zod';
|
|
|
3
3
|
import type { OpenAPIV3 } from 'openapi-types';
|
|
4
4
|
import { ZodTypeAny } from 'zod';
|
|
5
5
|
import type { Context, ErrorContext, MiddlewareContext } from './context.ts';
|
|
6
|
-
import {
|
|
7
|
-
import { Spiceflow } from './spiceflow.ts';
|
|
6
|
+
import { SPICEFLOW_RESPONSE, ValidationError } from './error.ts';
|
|
7
|
+
import { AnySpiceflow, Spiceflow } from './spiceflow.ts';
|
|
8
8
|
export type MaybeArray<T> = T | T[];
|
|
9
9
|
export type MaybePromise<T> = T | Promise<T>;
|
|
10
10
|
export type MaybePromiseIterable<T> = T | Promise<T> | AsyncIterable<T>;
|
|
@@ -64,6 +64,7 @@ export interface MetadataBase {
|
|
|
64
64
|
}
|
|
65
65
|
export type RouteSchema = {
|
|
66
66
|
body?: unknown;
|
|
67
|
+
request?: unknown;
|
|
67
68
|
query?: unknown;
|
|
68
69
|
params?: unknown;
|
|
69
70
|
response?: unknown;
|
|
@@ -71,8 +72,9 @@ export type RouteSchema = {
|
|
|
71
72
|
export type TypeSchema = StandardSchemaV1;
|
|
72
73
|
export type TypeObject = StandardSchemaV1;
|
|
73
74
|
export type UnwrapSchema<Schema extends TypeSchema | string | undefined, Definitions extends Record<string, unknown> = {}> = Schema extends undefined ? unknown : Schema extends StandardSchemaV1 ? StandardSchemaV1.InferOutput<Schema> : Schema extends ZodTypeAny ? z.infer<Schema> : Schema extends string ? Definitions extends Record<Schema, infer NamedSchema> ? NamedSchema : Definitions : unknown;
|
|
75
|
+
export type GetRequestSchema<Schema extends InputSchema<any>> = 'request' extends keyof Schema ? Schema['request'] : 'body' extends keyof Schema ? Schema['body'] : undefined;
|
|
74
76
|
export interface UnwrapRoute<in out Schema extends InputSchema<any>, in out Definitions extends DefinitionBase['type'] = {}> {
|
|
75
|
-
|
|
77
|
+
request: UnwrapSchema<GetRequestSchema<Schema>, Definitions>;
|
|
76
78
|
query: UnwrapSchema<Schema['query'], Definitions>;
|
|
77
79
|
params: UnwrapSchema<Schema['params'], Definitions>;
|
|
78
80
|
response: Schema['response'] extends TypeSchema | string ? {
|
|
@@ -85,13 +87,17 @@ export type LifeCycleEvent = 'start' | 'request' | 'parse' | 'transform' | 'befo
|
|
|
85
87
|
export type ContentType = MaybeArray<(string & {}) | 'text/plain' | 'application/json' | 'multipart/form-data' | 'application/x-www-form-urlencoded'>;
|
|
86
88
|
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';
|
|
87
89
|
export interface InputSchema<Name extends string = string> {
|
|
90
|
+
/**
|
|
91
|
+
* @deprecated The 'body' property is deprecated, use request instead.
|
|
92
|
+
*/
|
|
88
93
|
body?: TypeSchema | Name;
|
|
94
|
+
request?: TypeSchema | Name;
|
|
89
95
|
query?: TypeObject | Name;
|
|
90
96
|
params?: TypeObject | Name;
|
|
91
97
|
response?: TypeSchema | Record<number, TypeSchema> | Name | Record<number, Name | TypeSchema>;
|
|
92
98
|
}
|
|
93
99
|
export interface MergeSchema<in out A extends RouteSchema, in out B extends RouteSchema> {
|
|
94
|
-
|
|
100
|
+
request: undefined extends GetRequestSchema<A> ? GetRequestSchema<B> : GetRequestSchema<A>;
|
|
95
101
|
query: undefined extends A['query'] ? B['query'] : A['query'];
|
|
96
102
|
params: undefined extends A['params'] ? B['params'] : A['params'];
|
|
97
103
|
response: {} extends A['response'] ? {} extends B['response'] ? {} : B['response'] : {} extends B['response'] ? A['response'] : A['response'] & Omit<B['response'], keyof A['response']>;
|
|
@@ -167,14 +173,6 @@ export type ErrorHandler<in out T extends Record<string, Error> = {}, in out Rou
|
|
|
167
173
|
code: 'VALIDATION';
|
|
168
174
|
error: Readonly<ValidationError>;
|
|
169
175
|
} & Singleton['state']> | Prettify<{
|
|
170
|
-
request: Request;
|
|
171
|
-
code: 'PARSE';
|
|
172
|
-
error: Readonly<ParseError>;
|
|
173
|
-
} & Singleton['state']> | Prettify<{
|
|
174
|
-
request: Request;
|
|
175
|
-
code: 'INTERNAL_SERVER_ERROR';
|
|
176
|
-
error: Readonly<InternalServerError>;
|
|
177
|
-
} & Partial<Singleton['state']>> | Prettify<{
|
|
178
176
|
[K in keyof T]: {
|
|
179
177
|
request: Request;
|
|
180
178
|
code: K;
|
|
@@ -242,7 +240,7 @@ type _ComposeSpiceflowResponse<Response, Handle> = Prettify<{} extends Response
|
|
|
242
240
|
[SPICEFLOW_RESPONSE]: infer Status extends number;
|
|
243
241
|
} ? Status : never]: ErrorResponse['response'];
|
|
244
242
|
} : Response>;
|
|
245
|
-
export type MergeSpiceflowInstances<Instances extends
|
|
243
|
+
export type MergeSpiceflowInstances<Instances extends AnySpiceflow[] = [], Prefix extends string = '', Scoped extends boolean = false, Singleton extends SingletonBase = {
|
|
246
244
|
state: {};
|
|
247
245
|
}, Definitions extends DefinitionBase = {
|
|
248
246
|
type: {};
|
|
@@ -252,9 +250,9 @@ export type MergeSpiceflowInstances<Instances extends Spiceflow<any, any, any, a
|
|
|
252
250
|
macro: {};
|
|
253
251
|
macroFn: {};
|
|
254
252
|
}, Routes extends RouteBase = {}> = Instances extends [
|
|
255
|
-
infer Current extends
|
|
256
|
-
...infer Rest extends
|
|
257
|
-
] ? 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['
|
|
253
|
+
infer Current extends AnySpiceflow,
|
|
254
|
+
...infer Rest extends AnySpiceflow[]
|
|
255
|
+
] ? 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['_types']['ClientRoutes'] : AddPrefix<Prefix, Current['_types']['ClientRoutes']>)> : Spiceflow<Prefix, Scoped, {
|
|
258
256
|
state: Prettify<Singleton['state']>;
|
|
259
257
|
}, {
|
|
260
258
|
type: Prettify<Definitions['type']>;
|
|
@@ -362,5 +360,15 @@ export type HTTPHeaders = Record<string, string> & {
|
|
|
362
360
|
};
|
|
363
361
|
export type JoinPath<A extends string, B extends string> = `${A}${B extends '/' ? '/index' : B extends '' ? B : B extends `/${string}` ? B : B}`;
|
|
364
362
|
export type PartialWithRequired<T, K extends keyof T> = Partial<Omit<T, K>> & Pick<T, K>;
|
|
363
|
+
export type GetPathsFromRoutes<Routes extends Record<string, unknown>> = Routes extends Record<infer K, any> ? (K extends string ? K : never) : never;
|
|
364
|
+
export type ExtractParamsFromPath<Path extends string> = Path extends `${string}:${infer Param}/${infer Rest}` ? Param extends `${infer Name}?` ? {
|
|
365
|
+
[K in Name]?: string;
|
|
366
|
+
} & ExtractParamsFromPath<`/${Rest}`> : {
|
|
367
|
+
[K in Param]: string;
|
|
368
|
+
} & ExtractParamsFromPath<`/${Rest}`> : Path extends `${string}:${infer Param}` ? Param extends `${infer Name}?` ? {
|
|
369
|
+
[K in Name]?: string;
|
|
370
|
+
} : {
|
|
371
|
+
[K in Param]: string;
|
|
372
|
+
} : {};
|
|
365
373
|
export {};
|
|
366
374
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// https://github.com/remorses/elysia/blob/main/src/types.ts#L6
|
|
2
|
-
import { SPICEFLOW_RESPONSE
|
|
2
|
+
import { SPICEFLOW_RESPONSE } from "./error.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "spiceflow",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.0",
|
|
4
4
|
"description": "Simple API framework with RPC and type safety",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -50,15 +50,16 @@
|
|
|
50
50
|
"license": "MIT",
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@medley/router": "^0.2.1",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
53
|
+
"@standard-schema/spec": "^1.0.0",
|
|
54
|
+
"copy-anything": "^3.0.5",
|
|
55
|
+
"eventsource-parser": "^3.0.2",
|
|
55
56
|
"openapi-types": "^12.1.3",
|
|
56
57
|
"superjson": "^2.2.2",
|
|
57
|
-
"zod": "^3.25.
|
|
58
|
+
"zod": "^3.25.64",
|
|
58
59
|
"zod-to-json-schema": "^3.24.5"
|
|
59
60
|
},
|
|
60
61
|
"peerDependencies": {
|
|
61
|
-
"@modelcontextprotocol/sdk": "
|
|
62
|
+
"@modelcontextprotocol/sdk": "*"
|
|
62
63
|
},
|
|
63
64
|
"peerDependenciesMeta": {
|
|
64
65
|
"@modelcontextprotocol/sdk": {
|
|
@@ -66,8 +67,7 @@
|
|
|
66
67
|
}
|
|
67
68
|
},
|
|
68
69
|
"devDependencies": {
|
|
69
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
70
|
-
"@types/lodash.clonedeep": "^4.5.9",
|
|
70
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
71
71
|
"eventsource": "^3.0.5",
|
|
72
72
|
"formdata-node": "^6.0.3",
|
|
73
73
|
"js-base64": "^3.7.7",
|
package/src/_node-server.ts
CHANGED
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
createServer,
|
|
6
6
|
} from 'node:http'
|
|
7
7
|
import { AddressInfo } from 'node:net'
|
|
8
|
-
import { type Spiceflow, SpiceflowRequest } from './spiceflow.ts'
|
|
8
|
+
import { AnySpiceflow, type Spiceflow, SpiceflowRequest } from './spiceflow.ts'
|
|
9
9
|
import { superjsonSerialize } from './serialize.ts'
|
|
10
10
|
|
|
11
11
|
export async function listenForNode(
|
|
12
|
-
app:
|
|
12
|
+
app: AnySpiceflow,
|
|
13
13
|
port: number,
|
|
14
14
|
hostname: string = '0.0.0.0',
|
|
15
15
|
): Promise<Server<typeof IncomingMessage, typeof ServerResponse>> {
|
|
@@ -33,7 +33,7 @@ export async function listenForNode(
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
export async function handleForNode(
|
|
36
|
-
app:
|
|
36
|
+
app: AnySpiceflow,
|
|
37
37
|
req: IncomingMessage,
|
|
38
38
|
res: ServerResponse,
|
|
39
39
|
context: { state?: {} | undefined } = {},
|
package/src/client/index.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
/* eslint-disable no-case-declarations */
|
|
3
|
-
/* eslint-disable prefer-const */
|
|
4
|
-
import type { Spiceflow } from '../spiceflow.ts'
|
|
1
|
+
import type { AnySpiceflow, Spiceflow } from '../spiceflow.ts'
|
|
5
2
|
import superjson from 'superjson'
|
|
6
3
|
import { EventSourceParserStream } from 'eventsource-parser/stream'
|
|
7
4
|
|
|
@@ -180,11 +177,14 @@ function tryParsingSSEJson(data: string): any {
|
|
|
180
177
|
|
|
181
178
|
const createProxy = (
|
|
182
179
|
domain: string,
|
|
183
|
-
config: SpiceflowClient.Config,
|
|
180
|
+
config: SpiceflowClient.Config & { state?: any },
|
|
184
181
|
paths: string[] = [],
|
|
185
|
-
instance?:
|
|
186
|
-
): any =>
|
|
187
|
-
|
|
182
|
+
instance?: AnySpiceflow,
|
|
183
|
+
): any => {
|
|
184
|
+
if (config.state && !instance) {
|
|
185
|
+
throw new Error(`State is only available when using a Spiceflow instance`)
|
|
186
|
+
}
|
|
187
|
+
return new Proxy(() => {}, {
|
|
188
188
|
get(_, param: string): any {
|
|
189
189
|
// handle case where createClient returns a promise and await calls .then on it
|
|
190
190
|
if ((!paths.length && param === 'then') || param === 'catch') {
|
|
@@ -374,6 +374,7 @@ const createProxy = (
|
|
|
374
374
|
// console.log({ url, fetchInit })
|
|
375
375
|
const response = await (instance?.handle(
|
|
376
376
|
new Request(url, fetchInit),
|
|
377
|
+
{ state: config.state },
|
|
377
378
|
) ?? fetcher!(url, fetchInit))
|
|
378
379
|
|
|
379
380
|
let data = null as any
|
|
@@ -460,17 +461,22 @@ const createProxy = (
|
|
|
460
461
|
return createProxy(domain, config, paths)
|
|
461
462
|
},
|
|
462
463
|
}) as any
|
|
464
|
+
}
|
|
463
465
|
|
|
464
466
|
export const createSpiceflowClient = <
|
|
465
|
-
const App extends
|
|
467
|
+
const App extends AnySpiceflow,
|
|
466
468
|
>(
|
|
467
|
-
domain:
|
|
468
|
-
config
|
|
469
|
+
domain: App | string,
|
|
470
|
+
config?: SpiceflowClient.Config &
|
|
471
|
+
(App extends Spiceflow<any, any, infer Singleton, any, any, any, any>
|
|
472
|
+
? { state?: Singleton['state'] }
|
|
473
|
+
: {}),
|
|
469
474
|
): SpiceflowClient.Create<App> => {
|
|
470
475
|
if (typeof domain === 'string') {
|
|
471
|
-
|
|
476
|
+
let domainStr = String(domain)
|
|
477
|
+
if (domain.endsWith('/')) domainStr = domain.slice(0, -1)
|
|
472
478
|
|
|
473
|
-
return createProxy(
|
|
479
|
+
return createProxy(domainStr, config || {})
|
|
474
480
|
}
|
|
475
481
|
|
|
476
482
|
if (typeof window !== 'undefined')
|
|
@@ -478,7 +484,7 @@ export const createSpiceflowClient = <
|
|
|
478
484
|
'Spiceflow instance server found on client side, this is not recommended for security reason. Use generic type instead.',
|
|
479
485
|
)
|
|
480
486
|
|
|
481
|
-
return createProxy('http://e.ly', config, [], domain)
|
|
487
|
+
return createProxy('http://e.ly', config || {}, [], domain)
|
|
482
488
|
}
|
|
483
489
|
|
|
484
490
|
function superjsonDeserialize(data: any) {
|
package/src/client/types.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference lib="dom" />
|
|
2
|
-
import type { Spiceflow } from '../spiceflow.ts'
|
|
2
|
+
import type { AnySpiceflow, Spiceflow } from '../spiceflow.ts'
|
|
3
3
|
|
|
4
4
|
import { SpiceflowFetchError } from './errors.ts'
|
|
5
5
|
|
|
@@ -56,16 +56,15 @@ export namespace SpiceflowClient {
|
|
|
56
56
|
fetch?: RequestInit
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
export type Create<App extends
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
: 'Please install Spiceflow before using the client'
|
|
59
|
+
export type Create<App extends AnySpiceflow> = App extends {
|
|
60
|
+
_types: { ClientRoutes: infer Schema extends Record<string, any> }
|
|
61
|
+
}
|
|
62
|
+
? Prettify<Sign<Schema>>
|
|
63
|
+
: 'Please install latest Spiceflow before using the client, also make sure both client and server use the same version'
|
|
65
64
|
|
|
66
65
|
export type Sign<in out Route extends Record<string, any>> = {
|
|
67
66
|
[K in keyof Route as K extends `:${string}` ? never : K]: Route[K] extends {
|
|
68
|
-
|
|
67
|
+
request: infer Body
|
|
69
68
|
// headers: infer Headers
|
|
70
69
|
params: any
|
|
71
70
|
query: infer Query
|
|
@@ -83,13 +82,13 @@ export namespace SpiceflowClient {
|
|
|
83
82
|
ClientResponse<ReplaceGeneratorWithAsyncGenerator<Response>>
|
|
84
83
|
>
|
|
85
84
|
: (
|
|
86
|
-
|
|
85
|
+
request?: Body,
|
|
87
86
|
options?: Prettify<Param & ClientParam>,
|
|
88
87
|
) => Promise<
|
|
89
88
|
ClientResponse<ReplaceGeneratorWithAsyncGenerator<Response>>
|
|
90
89
|
>
|
|
91
90
|
: (
|
|
92
|
-
|
|
91
|
+
request: Body extends Record<string, unknown>
|
|
93
92
|
? ReplaceBlobWithFiles<Body>
|
|
94
93
|
: Body,
|
|
95
94
|
options?: Prettify<Param & ClientParam>,
|
|
@@ -103,7 +102,7 @@ export namespace SpiceflowClient {
|
|
|
103
102
|
ClientResponse<ReplaceGeneratorWithAsyncGenerator<Response>>
|
|
104
103
|
>
|
|
105
104
|
: (
|
|
106
|
-
|
|
105
|
+
request: Body extends Record<string, unknown>
|
|
107
106
|
? ReplaceBlobWithFiles<Body>
|
|
108
107
|
: Body,
|
|
109
108
|
options: Prettify<Param & ClientParam>,
|
|
@@ -141,6 +140,7 @@ export namespace SpiceflowClient {
|
|
|
141
140
|
(path: string, options: RequestInit) => MaybePromise<RequestInit | void>
|
|
142
141
|
>
|
|
143
142
|
onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>
|
|
143
|
+
|
|
144
144
|
// keepDomain?: boolean
|
|
145
145
|
}
|
|
146
146
|
|
package/src/client.test.ts
CHANGED
|
@@ -4,9 +4,11 @@ import { Spiceflow } from './spiceflow.ts'
|
|
|
4
4
|
|
|
5
5
|
import { describe, expect, it } from 'vitest'
|
|
6
6
|
const app = new Spiceflow()
|
|
7
|
+
.state('someState', 1 as number | undefined)
|
|
7
8
|
.get('/', () => 'a')
|
|
8
9
|
.post('/', () => 'a')
|
|
9
10
|
.get('/number', () => 1)
|
|
11
|
+
.get('/someState', ({ state }) => state.someState)
|
|
10
12
|
.get('/true', () => true)
|
|
11
13
|
.get('/false', () => false)
|
|
12
14
|
.post('/array', async ({ request }) => await request.json(), {
|
|
@@ -105,6 +107,14 @@ const app = new Spiceflow()
|
|
|
105
107
|
|
|
106
108
|
const client = createSpiceflowClient(app)
|
|
107
109
|
|
|
110
|
+
describe('client can pass state to app', () => {
|
|
111
|
+
const client = createSpiceflowClient(app, { state: { someState: 3 } })
|
|
112
|
+
it('should return state value 3', async () => {
|
|
113
|
+
const { data } = await client.someState.get({})
|
|
114
|
+
expect(data).toBe(3)
|
|
115
|
+
})
|
|
116
|
+
})
|
|
117
|
+
|
|
108
118
|
describe('client', () => {
|
|
109
119
|
it('get index', async () => {
|
|
110
120
|
const { data, error } = await client.index.get({})
|
package/src/context.ts
CHANGED
|
@@ -10,6 +10,7 @@ import type {
|
|
|
10
10
|
ResolvePath,
|
|
11
11
|
SingletonBase,
|
|
12
12
|
HTTPHeaders,
|
|
13
|
+
GetRequestSchema,
|
|
13
14
|
} from './types.ts'
|
|
14
15
|
|
|
15
16
|
import { SpiceflowRequest } from './spiceflow.ts'
|
|
@@ -52,7 +53,7 @@ export type ErrorContext<
|
|
|
52
53
|
* @example '/id/:id'
|
|
53
54
|
*/
|
|
54
55
|
// route: string
|
|
55
|
-
request: SpiceflowRequest<Route
|
|
56
|
+
request: SpiceflowRequest<GetRequestSchema<Route>>
|
|
56
57
|
state: Singleton['state']
|
|
57
58
|
// response: Route['response']
|
|
58
59
|
}>
|
|
@@ -80,7 +81,7 @@ export type Context<
|
|
|
80
81
|
|
|
81
82
|
path: string
|
|
82
83
|
|
|
83
|
-
request: SpiceflowRequest<Route
|
|
84
|
+
request: SpiceflowRequest<GetRequestSchema<Route>>
|
|
84
85
|
state: Singleton['state']
|
|
85
86
|
// response?: Route['response']
|
|
86
87
|
}>
|
package/src/cors.ts
CHANGED
|
@@ -18,7 +18,6 @@ type CORSOptions = {
|
|
|
18
18
|
exposeHeaders?: string[] | boolean
|
|
19
19
|
/** Configures browser and CDN caching duration for CORS preflight requests in seconds. Set to 0 to disable. */
|
|
20
20
|
cacheAge?: number
|
|
21
|
-
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
export const cors = (options?: CORSOptions): MiddlewareHandler => {
|
|
@@ -27,7 +26,7 @@ export const cors = (options?: CORSOptions): MiddlewareHandler => {
|
|
|
27
26
|
allowMethods: ['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH'],
|
|
28
27
|
allowHeaders: [],
|
|
29
28
|
credentials: true,
|
|
30
|
-
exposeHeaders:
|
|
29
|
+
exposeHeaders: [],
|
|
31
30
|
cacheAge: 21600, // 6 hours default
|
|
32
31
|
}
|
|
33
32
|
const opts = {
|
package/src/error.ts
CHANGED
|
@@ -8,13 +8,3 @@ export class ValidationError extends Error {
|
|
|
8
8
|
code = 'VALIDATION'
|
|
9
9
|
status = 422
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
export class ParseError extends Error {
|
|
13
|
-
code = 'PARSE'
|
|
14
|
-
status = 400
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export class InternalServerError extends Error {
|
|
18
|
-
code = 'INTERNAL_SERVER_ERROR'
|
|
19
|
-
status = 500
|
|
20
|
-
}
|
package/src/index.ts
CHANGED
package/src/spiceflow.test.ts
CHANGED
|
@@ -12,6 +12,18 @@ test('works', async () => {
|
|
|
12
12
|
expect(await res.json()).toEqual('hi')
|
|
13
13
|
})
|
|
14
14
|
|
|
15
|
+
test('routes works', async () => {
|
|
16
|
+
const res = await new Spiceflow()
|
|
17
|
+
.route({
|
|
18
|
+
method: 'POST',
|
|
19
|
+
path: '/xxx',
|
|
20
|
+
handler: () => 'hi',
|
|
21
|
+
})
|
|
22
|
+
.handle(new Request('http://localhost/xxx', { method: 'POST' }))
|
|
23
|
+
expect(res.status).toBe(200)
|
|
24
|
+
expect(await res.json()).toEqual('hi')
|
|
25
|
+
})
|
|
26
|
+
|
|
15
27
|
describe('cloneDeep', () => {
|
|
16
28
|
test('works on promises', async () => {
|
|
17
29
|
const obj = {
|
|
@@ -326,6 +338,23 @@ test('GET dynamic route, params are typed', async () => {
|
|
|
326
338
|
expect(await res.json()).toEqual('hi')
|
|
327
339
|
})
|
|
328
340
|
|
|
341
|
+
test('GET dynamic route with .route(), params are typed', async () => {
|
|
342
|
+
const res = await new Spiceflow()
|
|
343
|
+
.route({
|
|
344
|
+
handler: ({ params }) => {
|
|
345
|
+
let id = params.id
|
|
346
|
+
// @ts-expect-error
|
|
347
|
+
params.sdfsd
|
|
348
|
+
return id
|
|
349
|
+
},
|
|
350
|
+
method: 'GET',
|
|
351
|
+
path: '/ids/:id',
|
|
352
|
+
})
|
|
353
|
+
.handle(new Request('http://localhost/ids/hi', { method: 'GET' }))
|
|
354
|
+
expect(res.status).toBe(200)
|
|
355
|
+
expect(await res.json()).toEqual('hi')
|
|
356
|
+
})
|
|
357
|
+
|
|
329
358
|
test('GET dynamic route, params are typed with schema', async () => {
|
|
330
359
|
const res = await new Spiceflow()
|
|
331
360
|
.get(
|
|
@@ -846,3 +875,87 @@ test('can pass additional props to body schema', async () => {
|
|
|
846
875
|
additionalProp: 'extra data',
|
|
847
876
|
})
|
|
848
877
|
})
|
|
878
|
+
|
|
879
|
+
describe('safePath', () => {
|
|
880
|
+
test('handles simple paths without parameters', () => {
|
|
881
|
+
const app = new Spiceflow()
|
|
882
|
+
.get('/users', () => 'users')
|
|
883
|
+
.get('/posts', () => 'posts')
|
|
884
|
+
|
|
885
|
+
expect(app.safePath('/users', {})).toBe('/users')
|
|
886
|
+
expect(app.safePath('/posts', {})).toBe('/posts')
|
|
887
|
+
})
|
|
888
|
+
|
|
889
|
+
test('handles paths with required parameters', () => {
|
|
890
|
+
const app = new Spiceflow()
|
|
891
|
+
.get('/users/:id', ({ params }) => params.id)
|
|
892
|
+
.get('/posts/:postId/comments/:commentId', ({ params }) => params)
|
|
893
|
+
|
|
894
|
+
expect(app.safePath('/users/:id', { id: '123' })).toBe('/users/123')
|
|
895
|
+
// @ts-expect-error
|
|
896
|
+
app.safePath('/nonusers/:id', { id: '123' })
|
|
897
|
+
// @ts-expect-error
|
|
898
|
+
app.safePath('/users/:nonid', { nonid: '123' })
|
|
899
|
+
expect(
|
|
900
|
+
app.safePath('/posts/:postId/comments/:commentId', {
|
|
901
|
+
postId: 'abc',
|
|
902
|
+
commentId: '456',
|
|
903
|
+
}),
|
|
904
|
+
).toBe('/posts/abc/comments/456')
|
|
905
|
+
})
|
|
906
|
+
|
|
907
|
+
test('handles paths with optional parameters', () => {
|
|
908
|
+
const app = new Spiceflow()
|
|
909
|
+
.get('/users/:id?', ({ params }) => params.id)
|
|
910
|
+
.get('/posts/:postId/comments/:commentId?', ({ params }) => params)
|
|
911
|
+
|
|
912
|
+
expect(app.safePath('/users/:id?', { id: '123' })).toBe('/users/123')
|
|
913
|
+
expect(app.safePath('/users/:id?', {})).toBe('/users/')
|
|
914
|
+
expect(
|
|
915
|
+
app.safePath('/posts/:postId/comments/:commentId?', {
|
|
916
|
+
postId: 'abc',
|
|
917
|
+
commentId: '456',
|
|
918
|
+
}),
|
|
919
|
+
).toBe('/posts/abc/comments/456')
|
|
920
|
+
expect(
|
|
921
|
+
app.safePath('/posts/:postId/comments/:commentId?', {
|
|
922
|
+
postId: 'abc',
|
|
923
|
+
}),
|
|
924
|
+
).toBe('/posts/abc/comments/')
|
|
925
|
+
})
|
|
926
|
+
|
|
927
|
+
test('handles mixed required and optional parameters', () => {
|
|
928
|
+
const app = new Spiceflow().get(
|
|
929
|
+
'/api/:version/users/:id/posts/:postId?',
|
|
930
|
+
({ params }) => params,
|
|
931
|
+
)
|
|
932
|
+
|
|
933
|
+
expect(
|
|
934
|
+
app.safePath('/api/:version/users/:id/posts/:postId?', {
|
|
935
|
+
version: 'v1',
|
|
936
|
+
id: '123',
|
|
937
|
+
postId: 'abc',
|
|
938
|
+
}),
|
|
939
|
+
).toBe('/api/v1/users/123/posts/abc')
|
|
940
|
+
|
|
941
|
+
expect(
|
|
942
|
+
app.safePath('/api/:version/users/:id/posts/:postId?', {
|
|
943
|
+
version: 'v1',
|
|
944
|
+
id: '123',
|
|
945
|
+
}),
|
|
946
|
+
).toBe('/api/v1/users/123/posts/')
|
|
947
|
+
})
|
|
948
|
+
|
|
949
|
+
test('handles numeric parameter values', () => {
|
|
950
|
+
const app = new Spiceflow().get('/users/:id', ({ params }) => params.id)
|
|
951
|
+
|
|
952
|
+
expect(app.safePath('/users/:id', { id: '123' })).toBe('/users/123')
|
|
953
|
+
expect(app.safePath('/users/:id', { id: '0' })).toBe('/users/0')
|
|
954
|
+
})
|
|
955
|
+
|
|
956
|
+
test('handles empty parameters object', () => {
|
|
957
|
+
const app = new Spiceflow().get('/static', () => 'static')
|
|
958
|
+
|
|
959
|
+
expect(app.safePath('/static', {})).toBe('/static')
|
|
960
|
+
})
|
|
961
|
+
})
|