spiceflow 1.2.0 → 1.3.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 +11 -9
- package/dist/cors.d.ts +2 -0
- package/dist/cors.d.ts.map +1 -1
- package/dist/cors.js +10 -2
- package/dist/cors.js.map +1 -1
- package/dist/stream.test.js +4 -2
- package/dist/stream.test.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +8 -6
- package/src/cors.ts +14 -2
- package/src/stream.test.ts +4 -2
package/README.md
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
<h3>spiceflow</h3>
|
|
6
6
|
<br/>
|
|
7
7
|
<p>fast, simple and type safe API framework</p>
|
|
8
|
-
|
|
9
8
|
<br/>
|
|
10
9
|
<br/>
|
|
11
10
|
</div>
|
|
@@ -16,13 +15,14 @@ Spiceflow is a lightweight, type-safe API framework for building web services us
|
|
|
16
15
|
|
|
17
16
|
## Features
|
|
18
17
|
|
|
19
|
-
- Type
|
|
20
|
-
- OpenAPI
|
|
21
|
-
- Native support for [Fern](https://github.com/fern-api/fern) docs and
|
|
22
|
-
-
|
|
18
|
+
- Type safe schema based validation via Zod
|
|
19
|
+
- Can easily generate OpenAPI document based on your routes
|
|
20
|
+
- Native support for [Fern](https://github.com/fern-api/fern) to generate docs and SDKs (see example docs [here](https://remorses.docs.buildwithfern.com))
|
|
21
|
+
- Support for [Model Context Protocol](https://modelcontextprotocol.io/) to easily wire your app with LLMs
|
|
22
|
+
- Type safe RPC client generation
|
|
23
23
|
- Simple and intuitive API
|
|
24
24
|
- Uses web standards for requests and responses
|
|
25
|
-
- Supports async generators for streaming
|
|
25
|
+
- Supports async generators for streaming via server sent events
|
|
26
26
|
- Modular design with `.use()` for mounting sub-apps
|
|
27
27
|
- Base path support
|
|
28
28
|
|
|
@@ -34,6 +34,8 @@ npm install spiceflow
|
|
|
34
34
|
|
|
35
35
|
## Basic Usage
|
|
36
36
|
|
|
37
|
+
Objects returned from route handlers are automatically serialized to JSON
|
|
38
|
+
|
|
37
39
|
```ts
|
|
38
40
|
import { Spiceflow } from 'spiceflow'
|
|
39
41
|
|
|
@@ -41,20 +43,20 @@ const app = new Spiceflow()
|
|
|
41
43
|
.get('/hello', () => 'Hello, World!')
|
|
42
44
|
.post('/echo', async ({ request }) => {
|
|
43
45
|
const body = await request.json()
|
|
44
|
-
return body
|
|
46
|
+
return { echo: body }
|
|
45
47
|
})
|
|
46
48
|
|
|
47
49
|
app.listen(3000)
|
|
48
50
|
```
|
|
49
51
|
|
|
50
|
-
>
|
|
52
|
+
> Never declare app and add routes separately, that way you lose the type safety. Instead always append routes with .post and .get in a single expression.
|
|
51
53
|
|
|
52
54
|
```ts
|
|
53
55
|
// This is an example of what NOT to do when using Spiceflow
|
|
54
56
|
|
|
55
57
|
import { Spiceflow } from 'spiceflow'
|
|
56
58
|
|
|
57
|
-
//
|
|
59
|
+
// DO NOT declare the app separately and add routes later
|
|
58
60
|
const app = new Spiceflow()
|
|
59
61
|
|
|
60
62
|
// Do NOT do this! Adding routes separately like this will lose type safety
|
package/dist/cors.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ type CORSOptions = {
|
|
|
16
16
|
credentials?: boolean;
|
|
17
17
|
/** Configures the Access-Control-Expose-Headers CORS header */
|
|
18
18
|
exposeHeaders?: string[];
|
|
19
|
+
/** Configures browser and CDN caching duration for CORS preflight requests in seconds. Set to 0 to disable. */
|
|
20
|
+
cacheAge?: number;
|
|
19
21
|
};
|
|
20
22
|
export declare const cors: (options?: CORSOptions) => MiddlewareHandler;
|
|
21
23
|
export {};
|
package/dist/cors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C;;;GAGG;AACH,KAAK,WAAW,GAAG;IACjB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C;;;GAGG;AACH,KAAK,WAAW,GAAG;IACjB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,IAAI,aAAc,WAAW,KAAG,iBAmG5C,CAAA"}
|
package/dist/cors.js
CHANGED
|
@@ -4,6 +4,7 @@ export const cors = (options) => {
|
|
|
4
4
|
allowMethods: ['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH'],
|
|
5
5
|
allowHeaders: [],
|
|
6
6
|
exposeHeaders: [],
|
|
7
|
+
cacheAge: 21600 // 6 hours default
|
|
7
8
|
};
|
|
8
9
|
const opts = Object.assign(Object.assign({}, defaults), options);
|
|
9
10
|
const findAllowOrigin = ((optsOrigin) => {
|
|
@@ -45,8 +46,15 @@ export const cors = (options) => {
|
|
|
45
46
|
set('Access-Control-Expose-Headers', opts.exposeHeaders.join(','));
|
|
46
47
|
}
|
|
47
48
|
if (c.request.method === 'OPTIONS') {
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
// Set CORS caching headers if enabled
|
|
50
|
+
if (opts.cacheAge && opts.cacheAge > 0) {
|
|
51
|
+
// CORS preflight cache
|
|
52
|
+
set('Access-Control-Max-Age', opts.cacheAge.toString());
|
|
53
|
+
// Browser cache and CDN cache
|
|
54
|
+
set('Cache-Control', `public, max-age=${opts.cacheAge}, s-maxage=${opts.cacheAge}`);
|
|
55
|
+
// Additional CDN-specific headers
|
|
56
|
+
set('CDN-Cache-Control', `public, s-maxage=${opts.cacheAge}`);
|
|
57
|
+
set('Cloudflare-CDN-Cache-Control', `public, s-maxage=${opts.cacheAge}`);
|
|
50
58
|
}
|
|
51
59
|
if ((_b = opts.allowMethods) === null || _b === void 0 ? void 0 : _b.length) {
|
|
52
60
|
set('Access-Control-Allow-Methods', opts.allowMethods.join(','));
|
package/dist/cors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"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"}
|
package/dist/stream.test.js
CHANGED
|
@@ -176,8 +176,10 @@ describe('Stream', () => {
|
|
|
176
176
|
});
|
|
177
177
|
const body = await app.handle(req('/')).then((x) => x.body);
|
|
178
178
|
let events = [];
|
|
179
|
-
const parser = createParser(
|
|
180
|
-
|
|
179
|
+
const parser = createParser({
|
|
180
|
+
onEvent: (event) => {
|
|
181
|
+
events.push(event);
|
|
182
|
+
},
|
|
181
183
|
});
|
|
182
184
|
const { promise, resolve } = Promise.withResolvers();
|
|
183
185
|
const reader = body === null || body === void 0 ? void 0 : body.getReader();
|
package/dist/stream.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.test.js","sourceRoot":"","sources":["../src/stream.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stream.test.js","sourceRoot":"","sources":["../src/stream.test.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,UAAW,GAAG,QAOpC,CAAA;AAED,eAAO,MAAM,GAAG,SAAU,MAAM,YAAY,WAAW,YACN,CAAA;AAEjD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAQpE;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAE/B;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DZ,CAAA;AAEV,eAAO,MAAM,iBAAiB,EAEzB,GACF,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,UAAW,GAAG,QAOpC,CAAA;AAED,eAAO,MAAM,GAAG,SAAU,MAAM,YAAY,WAAW,YACN,CAAA;AAEjD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAQpE;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAE/B;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DZ,CAAA;AAEV,eAAO,MAAM,iBAAiB,EAEzB,GACF,CAAoB,IAAf,MAAM,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAC1C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA;AACxC,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA;AAExD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,QACd,MAAM,WACH,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,aACF,CAAA;AAEnC,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAA;AAEtC,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,QAAQ,CAoB1D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "spiceflow",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.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",
|
|
@@ -45,17 +45,17 @@
|
|
|
45
45
|
"@sinclair/typebox": "^0.33.7",
|
|
46
46
|
"ajv": "^8.17.1",
|
|
47
47
|
"ajv-formats": "^3.0.1",
|
|
48
|
-
"eventsource-parser": "^
|
|
48
|
+
"eventsource-parser": "^3.0.0",
|
|
49
49
|
"fast-querystring": "^1.1.2",
|
|
50
50
|
"lodash.clonedeep": "^4.5.0",
|
|
51
51
|
"openapi-types": "^12.1.3",
|
|
52
|
-
"zod": "^3.
|
|
53
|
-
"zod-to-json-schema": "^3.
|
|
52
|
+
"zod": "^3.24.1",
|
|
53
|
+
"zod-to-json-schema": "^3.24.1"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"formdata-node": "^6.0.3",
|
|
57
56
|
"@types/node": "22.7.4",
|
|
58
57
|
"eventsource": "^3.0.2",
|
|
58
|
+
"formdata-node": "^6.0.3",
|
|
59
59
|
"js-base64": "^3.7.7",
|
|
60
60
|
"js-yaml": "^4.1.0"
|
|
61
61
|
},
|
|
@@ -63,8 +63,10 @@
|
|
|
63
63
|
"build": "cp ../README.md ./README.md && rm -rf dist && tsc",
|
|
64
64
|
"gen-openapi": "pnpm tsx scripts/openapi-fern.ts",
|
|
65
65
|
"docs:dev": "pnpm run gen-openapi && fern docs dev",
|
|
66
|
-
"
|
|
66
|
+
"docs:prod": "pnpm run gen-openapi && fern generate --docs --force",
|
|
67
|
+
"fern-sdk": "pnpm run gen-openapi && fern generate --force ",
|
|
67
68
|
"fern-docs": "pnpm run gen-openapi && fern generate --docs --force",
|
|
69
|
+
"play-sdk:build": "pnpm vite build --config ./scripts/play-sdk.vite.ts",
|
|
68
70
|
"test": "pnpm vitest",
|
|
69
71
|
"watch": "tsc -w"
|
|
70
72
|
}
|
package/src/cors.ts
CHANGED
|
@@ -16,6 +16,8 @@ type CORSOptions = {
|
|
|
16
16
|
credentials?: boolean
|
|
17
17
|
/** Configures the Access-Control-Expose-Headers CORS header */
|
|
18
18
|
exposeHeaders?: string[]
|
|
19
|
+
/** Configures browser and CDN caching duration for CORS preflight requests in seconds. Set to 0 to disable. */
|
|
20
|
+
cacheAge?: number
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
export const cors = (options?: CORSOptions): MiddlewareHandler => {
|
|
@@ -24,6 +26,7 @@ export const cors = (options?: CORSOptions): MiddlewareHandler => {
|
|
|
24
26
|
allowMethods: ['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH'],
|
|
25
27
|
allowHeaders: [],
|
|
26
28
|
exposeHeaders: [],
|
|
29
|
+
cacheAge: 21600 // 6 hours default
|
|
27
30
|
}
|
|
28
31
|
const opts = {
|
|
29
32
|
...defaults,
|
|
@@ -74,8 +77,17 @@ export const cors = (options?: CORSOptions): MiddlewareHandler => {
|
|
|
74
77
|
}
|
|
75
78
|
|
|
76
79
|
if (c.request.method === 'OPTIONS') {
|
|
77
|
-
|
|
78
|
-
|
|
80
|
+
// Set CORS caching headers if enabled
|
|
81
|
+
if (opts.cacheAge && opts.cacheAge > 0) {
|
|
82
|
+
// CORS preflight cache
|
|
83
|
+
set('Access-Control-Max-Age', opts.cacheAge.toString())
|
|
84
|
+
|
|
85
|
+
// Browser cache and CDN cache
|
|
86
|
+
set('Cache-Control', `public, max-age=${opts.cacheAge}, s-maxage=${opts.cacheAge}`)
|
|
87
|
+
|
|
88
|
+
// Additional CDN-specific headers
|
|
89
|
+
set('CDN-Cache-Control', `public, s-maxage=${opts.cacheAge}`)
|
|
90
|
+
set('Cloudflare-CDN-Cache-Control', `public, s-maxage=${opts.cacheAge}`)
|
|
79
91
|
}
|
|
80
92
|
|
|
81
93
|
if (opts.allowMethods?.length) {
|
package/src/stream.test.ts
CHANGED
|
@@ -204,8 +204,10 @@ describe('Stream', () => {
|
|
|
204
204
|
const body = await app.handle(req('/')).then((x) => x.body)
|
|
205
205
|
|
|
206
206
|
let events = [] as any[]
|
|
207
|
-
const parser = createParser(
|
|
208
|
-
|
|
207
|
+
const parser = createParser({
|
|
208
|
+
onEvent: (event) => {
|
|
209
|
+
events.push(event)
|
|
210
|
+
},
|
|
209
211
|
})
|
|
210
212
|
const { promise, resolve } = Promise.withResolvers<void>()
|
|
211
213
|
const reader = body?.getReader()!
|