spiceflow 1.0.7 → 1.1.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.
Files changed (76) hide show
  1. package/README.md +1 -1
  2. package/dist/client/index.d.ts +1 -1
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js.map +1 -1
  5. package/dist/client/types.d.ts +1 -2
  6. package/dist/client/types.d.ts.map +1 -1
  7. package/dist/client/ws.d.ts +1 -1
  8. package/dist/client/ws.d.ts.map +1 -1
  9. package/dist/client.test.js +1 -18
  10. package/dist/client.test.js.map +1 -1
  11. package/dist/{elysia-fork/context.d.ts → context.d.ts} +8 -7
  12. package/dist/context.d.ts.map +1 -0
  13. package/dist/{elysia-fork/context.js.map → context.js.map} +1 -1
  14. package/dist/error.d.ts.map +1 -0
  15. package/dist/error.js.map +1 -0
  16. package/dist/index.d.ts +1 -2
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/middleware.test.d.ts +2 -0
  21. package/dist/middleware.test.d.ts.map +1 -0
  22. package/dist/middleware.test.js +99 -0
  23. package/dist/middleware.test.js.map +1 -0
  24. package/dist/openapi.d.ts +23 -3
  25. package/dist/openapi.d.ts.map +1 -1
  26. package/dist/openapi.js +2 -2
  27. package/dist/openapi.js.map +1 -1
  28. package/dist/openapi.test.js +66 -1
  29. package/dist/openapi.test.js.map +1 -1
  30. package/dist/spiceflow.d.ts +44 -125
  31. package/dist/spiceflow.d.ts.map +1 -1
  32. package/dist/spiceflow.js +129 -166
  33. package/dist/spiceflow.js.map +1 -1
  34. package/dist/spiceflow.test.js +54 -16
  35. package/dist/spiceflow.test.js.map +1 -1
  36. package/dist/types.d.ts +406 -0
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.js +1 -1
  39. package/dist/types.js.map +1 -1
  40. package/dist/utils.d.ts +72 -0
  41. package/dist/utils.d.ts.map +1 -1
  42. package/dist/utils.js +69 -0
  43. package/dist/utils.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/client/index.ts +1 -3
  46. package/src/client/types.ts +6 -13
  47. package/src/client/ws.ts +1 -1
  48. package/src/client.test.ts +1 -19
  49. package/src/context.ts +128 -0
  50. package/src/index.ts +1 -2
  51. package/src/middleware.test.ts +107 -0
  52. package/src/openapi.test.ts +71 -1
  53. package/src/openapi.ts +1 -1
  54. package/src/spiceflow.test.ts +74 -16
  55. package/src/spiceflow.ts +213 -386
  56. package/src/types.test.ts +1 -1
  57. package/src/types.ts +926 -0
  58. package/src/utils.ts +84 -0
  59. package/dist/elysia-fork/context.d.ts.map +0 -1
  60. package/dist/elysia-fork/error.d.ts.map +0 -1
  61. package/dist/elysia-fork/error.js.map +0 -1
  62. package/dist/elysia-fork/types.d.ts +0 -562
  63. package/dist/elysia-fork/types.d.ts.map +0 -1
  64. package/dist/elysia-fork/types.js +0 -2
  65. package/dist/elysia-fork/types.js.map +0 -1
  66. package/dist/elysia-fork/utils.d.ts +0 -134
  67. package/dist/elysia-fork/utils.d.ts.map +0 -1
  68. package/dist/elysia-fork/utils.js +0 -70
  69. package/dist/elysia-fork/utils.js.map +0 -1
  70. package/src/elysia-fork/context.ts +0 -166
  71. package/src/elysia-fork/types.ts +0 -1281
  72. package/src/elysia-fork/utils.ts +0 -85
  73. /package/dist/{elysia-fork/context.js → context.js} +0 -0
  74. /package/dist/{elysia-fork/error.d.ts → error.d.ts} +0 -0
  75. /package/dist/{elysia-fork/error.js → error.js} +0 -0
  76. /package/src/{elysia-fork/error.ts → error.ts} +0 -0
package/dist/spiceflow.js CHANGED
@@ -25,11 +25,10 @@ let globalIndex = 0;
25
25
  // @ts-ignore
26
26
  import OriginalRouter from '@medley/router';
27
27
  import Ajv from 'ajv';
28
- import { isAsyncIterable } from './utils.js';
29
- import { redirect } from './elysia-fork/utils.js';
30
- import { ValidationError } from './elysia-fork/error.js';
31
- import { zodToJsonSchema } from 'zod-to-json-schema';
32
28
  import { z } from 'zod';
29
+ import { zodToJsonSchema } from 'zod-to-json-schema';
30
+ import { NotFoundError, ValidationError } from './error.js';
31
+ import { isAsyncIterable, redirect } from './utils.js';
33
32
  const ajv = (addFormats.default || addFormats)(new (Ajv.default || Ajv)({ useDefaults: true }), [
34
33
  'date-time',
35
34
  'time',
@@ -50,13 +49,13 @@ const ajv = (addFormats.default || addFormats)(new (Ajv.default || Ajv)({ useDef
50
49
  * Router class
51
50
  */
52
51
  export class Spiceflow {
52
+ /** @internal */
53
53
  getAllRoutes() {
54
- let root = this.routerTree.currentRoot || this.routerTree;
54
+ let root = this.topLevelApp || this;
55
55
  const allApps = bfs(root) || [];
56
56
  const allRoutes = allApps.flatMap((x) => {
57
- const prefix = this.getRouteAndParents(x)
57
+ const prefix = this.getAppAndParents(x)
58
58
  .map((x) => x.prefix)
59
- .reverse()
60
59
  .join('');
61
60
  return x.routes.map((x) => (Object.assign(Object.assign({}, x), { path: prefix + x.path })));
62
61
  });
@@ -64,61 +63,51 @@ export class Spiceflow {
64
63
  }
65
64
  add(_a) {
66
65
  var { method, path, hooks, handler } = _a, rest = __rest(_a, ["method", "path", "hooks", "handler"]);
67
- const router = this.routerTree;
68
- // if (router.prefix) {
69
- // path = router.prefix + path
70
- // }
71
66
  let bodySchema = hooks === null || hooks === void 0 ? void 0 : hooks.body;
72
67
  let validateBody = getValidateFunction(bodySchema);
73
68
  let validateQuery = getValidateFunction(hooks === null || hooks === void 0 ? void 0 : hooks.query);
74
69
  let validateParams = getValidateFunction(hooks === null || hooks === void 0 ? void 0 : hooks.params);
75
- const store = router.router.register(path);
76
- let route = Object.assign(Object.assign({}, rest), { prefix: router.prefix || '', method: (method || ''), path: path || '',
77
- // prefix,
78
- handler: handler, hooks,
70
+ const store = this.router.register(path);
71
+ let route = Object.assign(Object.assign({}, rest), { prefix: this.prefix || '', method: (method || ''), path: path || '', handler: handler, hooks,
79
72
  validateBody,
80
73
  validateParams,
81
74
  validateQuery });
82
- router.routes.push(route);
75
+ this.routes.push(route);
83
76
  store[method] = route;
84
77
  }
85
78
  match(method, path) {
86
- let root = this.routerTree;
87
- const result = bfsFind(this.routerTree, (router) => {
88
- router.currentRoot = root;
89
- let prefix = this.getRouteAndParents(router)
79
+ let root = this;
80
+ const result = bfsFind(this, (app) => {
81
+ app.topLevelApp = root;
82
+ let prefix = this.getAppAndParents(app)
90
83
  .map((x) => x.prefix)
91
- .reverse()
92
84
  .join('');
93
85
  if (prefix && !path.startsWith(prefix)) {
94
- // console.log(
95
- // `router prefix: ${router.prefix} does not match path: ${path}`
96
- // )
97
86
  return;
98
87
  }
99
88
  let pathWithoutPrefix = path;
100
89
  if (prefix) {
101
90
  pathWithoutPrefix = path.replace(prefix, '');
102
91
  }
103
- // console.log(`router prefix: ${router.prefix} matches path: ${path}`)
104
- const route = router.router.find(pathWithoutPrefix);
92
+ const route = app.router.find(pathWithoutPrefix);
105
93
  if (!route) {
106
94
  return;
107
95
  }
108
- let data = route['store'][method];
109
- if (data) {
110
- // console.log(`route found: ${method} ${path}`, route)
111
- const { onErrorHandlers, onRequestHandlers } = router;
96
+ let internalRoute = route['store'][method];
97
+ if (internalRoute) {
112
98
  const params = route['params'] || {};
113
- return Object.assign(Object.assign({}, data), { router, store: router.store, onErrorHandlers,
114
- onRequestHandlers,
115
- params });
99
+ const res = {
100
+ app,
101
+ internalRoute: internalRoute,
102
+ params,
103
+ };
104
+ return res;
116
105
  }
117
106
  });
118
107
  return result;
119
108
  }
120
109
  state(name, value) {
121
- this.routerTree.store[name] = value;
110
+ this.defaultStore[name] = value;
122
111
  return this;
123
112
  }
124
113
  /**
@@ -126,7 +115,14 @@ export class Spiceflow {
126
115
  * @param options {@link RouterOptions} {@link Platform}
127
116
  */
128
117
  constructor(options = {}) {
129
- var _a;
118
+ this.id = globalIndex++;
119
+ this.router = new OriginalRouter();
120
+ this.middlewares = [];
121
+ this.onErrorHandlers = [];
122
+ this.routes = [];
123
+ this.defaultStore = {};
124
+ /** @internal */
125
+ this.childrenApps = [];
130
126
  this._routes = {};
131
127
  this._types = {
132
128
  Prefix: '',
@@ -135,27 +131,9 @@ export class Spiceflow {
135
131
  Definitions: {},
136
132
  Metadata: {},
137
133
  };
138
- this._ephemeral = {};
139
- this._volatile = {};
134
+ this.scoped = true;
140
135
  this.scoped = options.scoped;
141
- this.onNoMatch =
142
- (_a = options.onNoMatch) !== null && _a !== void 0 ? _a : (() => new Response(null, { status: 404 }));
143
- this.routerTree = {
144
- id: globalIndex++,
145
- router: new OriginalRouter(),
146
- prefix: options.basePath,
147
- onRequestHandlers: [],
148
- onErrorHandlers: [],
149
- children: [],
150
- store: {},
151
- routes: [],
152
- };
153
- // Bind router methods
154
- // for (const method of METHODS) {
155
- // this.#routes.set(method as Method, [])
156
- // const key = method.toLowerCase() as Lowercase<Method>
157
- // this[key as any] = this.#add.bind(this, method)
158
- // }
136
+ this.prefix = options.basePath;
159
137
  }
160
138
  post(path, handler, hook) {
161
139
  this.add({ method: 'POST', path, handler: handler, hooks: hook });
@@ -191,64 +169,21 @@ export class Spiceflow {
191
169
  this.add({ method: 'HEAD', path, handler: handler, hooks: hook });
192
170
  return this;
193
171
  }
194
- get _scoped() {
195
- return this.scoped;
196
- }
197
- // group is not needed, you can add another prefixed app instead
198
- // group<
199
- // const Prefix extends string,
200
- // const NewSpiceflow extends Spiceflow<any, any, any, any, any, any, any, any>
201
- // >(
202
- // prefix: Prefix,
203
- // run: (
204
- // group: Spiceflow<
205
- // `${BasePath}${Prefix}`,
206
- // Scoped,
207
- // Singleton,
208
- // Definitions,
209
- // Metadata,
210
- // {},
211
- // Ephemeral,
212
- // Volatile
213
- // >
214
- // ) => NewSpiceflow
215
- // ): Spiceflow<
216
- // BasePath,
217
- // Scoped,
218
- // Singleton,
219
- // Definitions,
220
- // Metadata,
221
- // Prettify<Routes & NewSpiceflow['_routes']>,
222
- // Ephemeral,
223
- // Volatile
224
- // > {
225
- // let thisRouter = this.routers[0]
226
- // this.routers.push(
227
- // ...instance.routers.map((r) => ({
228
- // ...r,
229
- // prefix: (thisRouter.prefix || '') + r.prefix
230
- // }))
231
- // )
232
- // return this
233
- // }
234
- use(instance) {
235
- const thisRouter = this.routerTree;
236
- // TODO use scoped logic to add onRequest and onError on all routers if necessary, add them first
237
- this.routerTree.children.push(instance.routerTree);
238
- return this;
239
- }
240
- onError(handler) {
172
+ use(appOrHandler) {
241
173
  var _a;
242
- const router = this.routerTree;
243
- (_a = router.onErrorHandlers) !== null && _a !== void 0 ? _a : (router.onErrorHandlers = []);
244
- router.onErrorHandlers.push(handler);
174
+ if (appOrHandler instanceof Spiceflow) {
175
+ this.childrenApps.push(appOrHandler);
176
+ }
177
+ else if (typeof appOrHandler === 'function') {
178
+ (_a = this.middlewares) !== null && _a !== void 0 ? _a : (this.middlewares = []);
179
+ this.middlewares.push(appOrHandler);
180
+ }
245
181
  return this;
246
182
  }
247
- onRequest(handler) {
183
+ onError(handler) {
248
184
  var _a;
249
- const router = this.routerTree;
250
- (_a = router.onRequestHandlers) !== null && _a !== void 0 ? _a : (router.onRequestHandlers = []);
251
- router.onRequestHandlers.push(handler);
185
+ (_a = this.onErrorHandlers) !== null && _a !== void 0 ? _a : (this.onErrorHandlers = []);
186
+ this.onErrorHandlers.push(handler);
252
187
  return this;
253
188
  }
254
189
  /**
@@ -257,73 +192,87 @@ export class Spiceflow {
257
192
  * @param platform Platform specific context {@link Platform}
258
193
  * @returns The final `Response`
259
194
  */
260
- async handle(request, platform) {
261
- var _a, _b;
262
- platform !== null && platform !== void 0 ? platform : (platform = {});
263
- let u = new URL(request.url);
195
+ async handle(request) {
196
+ var _a, _b, _c, _d, _e;
197
+ let u = new URL(request.url, 'http://localhost');
264
198
  let path = u.pathname + u.search;
265
199
  const defaultContext = {
266
200
  redirect,
267
201
  error: null,
268
202
  path,
269
203
  };
204
+ const root = this.topLevelApp || this;
270
205
  let onErrorHandlers = [];
271
206
  try {
272
- let response;
273
207
  // Get all middleware and method specific routes in order
274
208
  const route = this.match(request.method, path);
275
209
  if (!route) {
276
- return this.onNoMatch(request, platform);
210
+ const error = new NotFoundError();
211
+ const res = await this.runErrorHandlers({
212
+ onErrorHandlers,
213
+ error,
214
+ request,
215
+ });
216
+ if (res)
217
+ return res;
218
+ return new Response(`Not Found`, {
219
+ status: 404,
220
+ });
277
221
  }
278
- onErrorHandlers = this.getRouteAndParents(route.router)
279
- .reverse()
280
- .flatMap((x) => x.onErrorHandlers);
281
- let { params, store: defaultStore } = route;
282
- const onReqHandlers = this.getRouteAndParents(route.router)
283
- .reverse()
284
- .flatMap((x) => x.onRequestHandlers);
222
+ onErrorHandlers = this.getAppsInScope(route.app).flatMap((x) => x.onErrorHandlers);
223
+ let { params, app: { defaultStore }, } = route;
224
+ const middlewares = this.getAppsInScope(route.app).flatMap((x) => x.middlewares);
285
225
  // console.log({ onReqHandlers })
286
226
  let store = Object.assign({}, defaultStore);
287
- // TODO add content type
288
- let content = (_a = route === null || route === void 0 ? void 0 : route.hooks) === null || _a === void 0 ? void 0 : _a.content;
289
- // let body = await getRequestBody({ request, content })
290
- if (route.validateBody) {
227
+ let content = (_b = (_a = route === null || route === void 0 ? void 0 : route.internalRoute) === null || _a === void 0 ? void 0 : _a.hooks) === null || _b === void 0 ? void 0 : _b.content;
228
+ if ((_c = route.internalRoute) === null || _c === void 0 ? void 0 : _c.validateBody) {
291
229
  // TODO don't clone the request
292
230
  let typedRequest = new TypedRequest(request);
293
- typedRequest.validateBody = route.validateBody;
231
+ typedRequest.validateBody = (_d = route.internalRoute) === null || _d === void 0 ? void 0 : _d.validateBody;
294
232
  request = typedRequest;
295
233
  }
296
234
  let query = parseQuery.parse((u.search || '').slice(1));
297
- if (onReqHandlers.length > 0) {
298
- for (const handler of onReqHandlers) {
299
- const res = await handler({
235
+ let index = 0;
236
+ const next = async () => {
237
+ var _a, _b, _c;
238
+ if (index < middlewares.length) {
239
+ const middleware = middlewares[index];
240
+ index++;
241
+ let context = {
300
242
  request,
301
- response,
302
243
  store,
303
244
  path,
304
245
  query,
305
- });
306
- if (res) {
307
- return await turnHandlerResultIntoResponse(res);
246
+ params,
247
+ redirect,
248
+ };
249
+ const result = await middleware(context, next);
250
+ if (!result && index < middlewares.length) {
251
+ return await next();
252
+ }
253
+ else if (result) {
254
+ return await turnHandlerResultIntoResponse(result);
308
255
  }
309
256
  }
310
- }
311
- query = runValidation(query, route.validateQuery);
312
- params = runValidation(params, route.validateParams);
313
- // console.log(route)
314
- const res = route.handler(Object.assign(Object.assign({}, defaultContext), { request,
315
- response, params: params, store,
316
- query,
317
- // body,
318
- path }));
319
- if (isAsyncIterable(res)) {
320
- return await this.handleStream({
321
- generator: res,
322
- request,
323
- onErrorHandlers,
324
- });
325
- }
326
- return await turnHandlerResultIntoResponse(res);
257
+ query = runValidation(query, (_a = route.internalRoute) === null || _a === void 0 ? void 0 : _a.validateQuery);
258
+ params = runValidation(params, (_b = route.internalRoute) === null || _b === void 0 ? void 0 : _b.validateParams);
259
+ // console.log(route)
260
+ const res = (_c = route.internalRoute) === null || _c === void 0 ? void 0 : _c.handler(Object.assign(Object.assign({}, defaultContext), { request, params: params, redirect,
261
+ store,
262
+ query,
263
+ // body,
264
+ path }));
265
+ if (isAsyncIterable(res)) {
266
+ return await this.handleStream({
267
+ generator: res,
268
+ request,
269
+ onErrorHandlers,
270
+ });
271
+ }
272
+ return await turnHandlerResultIntoResponse(res);
273
+ };
274
+ const response = await next();
275
+ return response;
327
276
  }
328
277
  catch (err) {
329
278
  if (err instanceof Response)
@@ -335,7 +284,7 @@ export class Spiceflow {
335
284
  });
336
285
  if (res)
337
286
  return res;
338
- let status = (_b = err === null || err === void 0 ? void 0 : err.status) !== null && _b !== void 0 ? _b : 500;
287
+ let status = (_e = err === null || err === void 0 ? void 0 : err.status) !== null && _e !== void 0 ? _e : 500;
339
288
  return new Response((err === null || err === void 0 ? void 0 : err.message) || 'Internal Server Error', {
340
289
  status,
341
290
  });
@@ -354,25 +303,41 @@ export class Spiceflow {
354
303
  }
355
304
  }
356
305
  }
357
- // get the route parents, the order is starting from the current router and going up to the root
358
- getRouteAndParents(currentRouter) {
306
+ getAppAndParents(currentApp) {
359
307
  const parents = [];
360
- let current = currentRouter;
361
- let root = this.routerTree.currentRoot || this.routerTree;
362
- // Perform BFS once to build a parent map
308
+ let current = currentApp;
309
+ let root = this.topLevelApp || this;
363
310
  const parentMap = new Map();
364
311
  bfsFind(root, (node) => {
365
- for (const child of node.children) {
312
+ for (const child of node.childrenApps) {
366
313
  parentMap.set(child.id, node);
367
314
  }
368
315
  });
369
316
  // Traverse the parent map to get the parents
370
317
  while (current) {
371
- parents.push(current);
318
+ parents.unshift(current);
372
319
  current = parentMap.get(current.id);
373
320
  }
374
321
  return parents.filter((x) => x !== undefined);
375
322
  }
323
+ getAppsInScope(currentApp) {
324
+ const withParents = this.getAppAndParents(currentApp);
325
+ let root = this.topLevelApp || this;
326
+ const wantedOrder = bfs(root);
327
+ const scopeFalseApps = wantedOrder.filter((x) => x.scoped === false);
328
+ let appsInScope = [];
329
+ for (const app of wantedOrder) {
330
+ if (scopeFalseApps.includes(app)) {
331
+ appsInScope.push(app);
332
+ continue;
333
+ }
334
+ if (withParents.includes(app)) {
335
+ appsInScope.push(app);
336
+ continue;
337
+ }
338
+ }
339
+ return appsInScope;
340
+ }
376
341
  async handleStream({ onErrorHandlers, generator, request, }) {
377
342
  let init = generator.next();
378
343
  if (init instanceof Promise)
@@ -506,7 +471,7 @@ function bfsFind(tree, onNode) {
506
471
  if (result) {
507
472
  return result;
508
473
  }
509
- queue.push(...node.children);
474
+ queue.push(...node.childrenApps);
510
475
  }
511
476
  return;
512
477
  }
@@ -517,6 +482,7 @@ export class TypedRequest extends Request {
517
482
  }
518
483
  }
519
484
  export function bfs(tree) {
485
+ var _a;
520
486
  const queue = [tree];
521
487
  let nodes = [];
522
488
  while (queue.length > 0) {
@@ -525,15 +491,12 @@ export function bfs(tree) {
525
491
  nodes.push(node);
526
492
  }
527
493
  // const result = onNode(node)
528
- queue.push(...node.children);
494
+ if ((_a = node === null || node === void 0 ? void 0 : node.childrenApps) === null || _a === void 0 ? void 0 : _a.length) {
495
+ queue.push(...node.childrenApps);
496
+ }
529
497
  }
530
498
  return nodes;
531
499
  }
532
- function mapTree(tree, mapper) {
533
- const mappedNode = mapper(tree);
534
- mappedNode.children = tree.children.map((child) => mapTree(child, mapper));
535
- return mappedNode;
536
- }
537
500
  export async function turnHandlerResultIntoResponse(result) {
538
501
  // if user returns not a response, convert to json
539
502
  if (result instanceof Response) {
@@ -1 +1 @@
1
- {"version":3,"file":"spiceflow.js","sourceRoot":"","sources":["../src/spiceflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spiceflow.js","sourceRoot":"","sources":["../src/spiceflow.ts"],"names":[],"mappings":"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"}