spiceflow 1.0.0 → 1.0.2

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 (56) hide show
  1. package/README.md +147 -0
  2. package/dist/client/index.d.ts +4 -3
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +5 -5
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/types.d.ts +4 -5
  7. package/dist/client/types.d.ts.map +1 -1
  8. package/dist/client/ws.d.ts +4 -4
  9. package/dist/client/ws.d.ts.map +1 -1
  10. package/dist/client/ws.js.map +1 -1
  11. package/dist/client.test.js +9 -8
  12. package/dist/client.test.js.map +1 -1
  13. package/dist/elysia-fork/error.d.ts +5 -65
  14. package/dist/elysia-fork/error.d.ts.map +1 -1
  15. package/dist/elysia-fork/error.js +2 -2
  16. package/dist/elysia-fork/error.js.map +1 -1
  17. package/dist/elysia-fork/types.d.ts +27 -116
  18. package/dist/elysia-fork/types.d.ts.map +1 -1
  19. package/dist/elysia-fork/types.js +1 -2
  20. package/dist/elysia-fork/types.js.map +1 -1
  21. package/dist/elysia-fork/utils.d.ts +1 -62
  22. package/dist/elysia-fork/utils.d.ts.map +1 -1
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +2 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/openapi.d.ts +68 -0
  28. package/dist/openapi.d.ts.map +1 -0
  29. package/dist/openapi.js +250 -0
  30. package/dist/openapi.js.map +1 -0
  31. package/dist/spiceflow.d.ts +48 -52
  32. package/dist/spiceflow.d.ts.map +1 -1
  33. package/dist/spiceflow.js +148 -87
  34. package/dist/spiceflow.js.map +1 -1
  35. package/dist/spiceflow.test.js +80 -43
  36. package/dist/spiceflow.test.js.map +1 -1
  37. package/dist/stream.test.js +14 -14
  38. package/dist/stream.test.js.map +1 -1
  39. package/dist/zod.test.d.ts +2 -0
  40. package/dist/zod.test.d.ts.map +1 -0
  41. package/dist/zod.test.js +59 -0
  42. package/dist/zod.test.js.map +1 -0
  43. package/package.json +7 -4
  44. package/src/client/index.ts +10 -8
  45. package/src/client/types.ts +4 -4
  46. package/src/client/ws.ts +4 -4
  47. package/src/client.test.ts +9 -8
  48. package/src/elysia-fork/context.ts +2 -2
  49. package/src/elysia-fork/error.ts +3 -3
  50. package/src/elysia-fork/types.ts +108 -284
  51. package/src/index.ts +2 -0
  52. package/src/openapi.ts +426 -0
  53. package/src/spiceflow.test.ts +117 -64
  54. package/src/spiceflow.ts +261 -179
  55. package/src/stream.test.ts +14 -14
  56. package/src/zod.test.ts +71 -0
package/dist/spiceflow.js CHANGED
@@ -19,37 +19,89 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
19
19
  import parseQuery from 'fast-querystring';
20
20
  import { Type } from '@sinclair/typebox';
21
21
  export { Type as t };
22
+ import addFormats from 'ajv-formats';
23
+ let globalIndex = 0;
22
24
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
23
25
  // @ts-ignore
24
26
  import OriginalRouter from '@medley/router';
25
27
  import Ajv from 'ajv';
26
28
  import { isAsyncIterable } from './utils.js';
27
29
  import { redirect } from './elysia-fork/utils.js';
28
- const ajv = new Ajv();
30
+ import { zodToJsonSchema } from 'zod-to-json-schema';
31
+ import { z } from 'zod';
32
+ const ajv = addFormats(new Ajv({ useDefaults: true }), [
33
+ 'date-time',
34
+ 'time',
35
+ 'date',
36
+ 'email',
37
+ 'hostname',
38
+ 'ipv4',
39
+ 'ipv6',
40
+ 'uri',
41
+ 'uri-reference',
42
+ 'uuid',
43
+ 'uri-template',
44
+ 'json-pointer',
45
+ 'relative-json-pointer',
46
+ 'regex',
47
+ ]);
29
48
  /**
30
49
  * Router class
31
50
  */
32
- export class Elysia {
51
+ export class Spiceflow {
52
+ getAllRoutes() {
53
+ let root = this.routerTree.currentRoot || this.routerTree;
54
+ const allApps = bfs(root) || [];
55
+ const allRoutes = allApps.flatMap((x) => {
56
+ const prefix = this.getRouteAndParents(x)
57
+ .map((x) => x.prefix)
58
+ .reverse()
59
+ .join('');
60
+ return x.routes.map((x) => (Object.assign(Object.assign({}, x), { path: prefix + x.path })));
61
+ });
62
+ return allRoutes;
63
+ }
33
64
  add(_a) {
34
- var { method, path } = _a, rest = __rest(_a, ["method", "path"]);
65
+ var { method, path, hooks, handler } = _a, rest = __rest(_a, ["method", "path", "hooks", "handler"]);
35
66
  const router = this.routerTree;
36
67
  // if (router.prefix) {
37
68
  // path = router.prefix + path
38
69
  // }
70
+ let bodySchema = hooks === null || hooks === void 0 ? void 0 : hooks.body;
71
+ let validate;
72
+ if (isZodSchema(bodySchema)) {
73
+ let jsonSchema = zodToJsonSchema(bodySchema, {});
74
+ validate = ajv.compile(jsonSchema);
75
+ }
76
+ else if (bodySchema) {
77
+ // console.log(bodySchema)
78
+ validate = ajv.compile(bodySchema);
79
+ }
39
80
  const store = router.router.register(path);
40
- store[method] = Object.assign({}, rest);
81
+ let route = Object.assign(Object.assign({}, rest), { prefix: router.prefix || '', method: (method || ''), path: path || '',
82
+ // prefix,
83
+ handler: handler, hooks,
84
+ validate });
85
+ router.routes.push(route);
86
+ store[method] = route;
41
87
  }
42
88
  match(method, path) {
43
- const result = bfs(this.routerTree, (router) => {
44
- if (router.prefix && !path.startsWith(router.prefix)) {
89
+ let root = this.routerTree;
90
+ const result = bfsFind(this.routerTree, (router) => {
91
+ router.currentRoot = root;
92
+ let prefix = this.getRouteAndParents(router)
93
+ .map((x) => x.prefix)
94
+ .reverse()
95
+ .join('');
96
+ if (prefix && !path.startsWith(prefix)) {
45
97
  // console.log(
46
98
  // `router prefix: ${router.prefix} does not match path: ${path}`
47
99
  // )
48
100
  return;
49
101
  }
50
102
  let pathWithoutPrefix = path;
51
- if (router.prefix) {
52
- pathWithoutPrefix = path.replace(router.prefix, '');
103
+ if (prefix) {
104
+ pathWithoutPrefix = path.replace(prefix, '');
53
105
  }
54
106
  // console.log(`router prefix: ${router.prefix} matches path: ${path}`)
55
107
  const route = router.router.find(pathWithoutPrefix);
@@ -84,7 +136,7 @@ export class Elysia {
84
136
  Scoped: false,
85
137
  Singleton: {},
86
138
  Definitions: {},
87
- Metadata: {}
139
+ Metadata: {},
88
140
  };
89
141
  this._ephemeral = {};
90
142
  this._volatile = {};
@@ -92,12 +144,14 @@ export class Elysia {
92
144
  this.onNoMatch =
93
145
  (_a = options.onNoMatch) !== null && _a !== void 0 ? _a : (() => new Response(null, { status: 404 }));
94
146
  this.routerTree = {
147
+ id: globalIndex++,
95
148
  router: new OriginalRouter(),
96
149
  prefix: options.basePath,
97
150
  onRequestHandlers: [],
98
151
  onErrorHandlers: [],
99
152
  children: [],
100
- store: {}
153
+ store: {},
154
+ routes: [],
101
155
  };
102
156
  // Bind router methods
103
157
  // for (const method of METHODS) {
@@ -106,54 +160,38 @@ export class Elysia {
106
160
  // this[key as any] = this.#add.bind(this, method)
107
161
  // }
108
162
  }
109
- /**
110
- * ### post
111
- * Register handler for path with method [POST]
112
- *
113
- * ---
114
- * @example
115
- * ```typescript
116
- * import { Elysia, t } from 'elysia'
117
- *
118
- * new Elysia()
119
- * .post('/', () => 'hi')
120
- * .post('/with-hook', () => 'hi', {
121
- * response: t.String()
122
- * })
123
- * ```
124
- */
125
163
  post(path, handler, hook) {
126
- this.add({ method: 'POST', path, handler: handler, hook });
164
+ this.add({ method: 'POST', path, handler: handler, hooks: hook });
127
165
  return this;
128
166
  }
129
167
  get(path, handler, hook) {
130
- this.add({ method: 'GET', path, handler: handler, hook });
168
+ this.add({ method: 'GET', path, handler: handler, hooks: hook });
131
169
  return this;
132
170
  }
133
171
  put(path, handler, hook) {
134
- this.add({ method: 'PUT', path, handler: handler, hook });
172
+ this.add({ method: 'PUT', path, handler: handler, hooks: hook });
135
173
  return this;
136
174
  }
137
175
  patch(path, handler, hook) {
138
- this.add({ method: 'PATCH', path, handler: handler, hook });
176
+ this.add({ method: 'PATCH', path, handler: handler, hooks: hook });
139
177
  return this;
140
178
  }
141
179
  delete(path, handler, hook) {
142
- this.add({ method: 'DELETE', path, handler: handler, hook });
180
+ this.add({ method: 'DELETE', path, handler: handler, hooks: hook });
143
181
  return this;
144
182
  }
145
183
  options(path, handler, hook) {
146
- this.add({ method: 'OPTIONS', path, handler: handler, hook });
184
+ this.add({ method: 'OPTIONS', path, handler: handler, hooks: hook });
147
185
  return this;
148
186
  }
149
187
  all(path, handler, hook) {
150
188
  for (const method of METHODS) {
151
- this.add({ method, path, handler: handler, hook });
189
+ this.add({ method, path, handler: handler, hooks: hook });
152
190
  }
153
191
  return this;
154
192
  }
155
193
  head(path, handler, hook) {
156
- this.add({ method: 'HEAD', path, handler: handler, hook });
194
+ this.add({ method: 'HEAD', path, handler: handler, hooks: hook });
157
195
  return this;
158
196
  }
159
197
  get _scoped() {
@@ -162,11 +200,11 @@ export class Elysia {
162
200
  // group is not needed, you can add another prefixed app instead
163
201
  // group<
164
202
  // const Prefix extends string,
165
- // const NewElysia extends Elysia<any, any, any, any, any, any, any, any>
203
+ // const NewSpiceflow extends Spiceflow<any, any, any, any, any, any, any, any>
166
204
  // >(
167
205
  // prefix: Prefix,
168
206
  // run: (
169
- // group: Elysia<
207
+ // group: Spiceflow<
170
208
  // `${BasePath}${Prefix}`,
171
209
  // Scoped,
172
210
  // Singleton,
@@ -176,14 +214,14 @@ export class Elysia {
176
214
  // Ephemeral,
177
215
  // Volatile
178
216
  // >
179
- // ) => NewElysia
180
- // ): Elysia<
217
+ // ) => NewSpiceflow
218
+ // ): Spiceflow<
181
219
  // BasePath,
182
220
  // Scoped,
183
221
  // Singleton,
184
222
  // Definitions,
185
223
  // Metadata,
186
- // Prettify<Routes & NewElysia['_routes']>,
224
+ // Prettify<Routes & NewSpiceflow['_routes']>,
187
225
  // Ephemeral,
188
226
  // Volatile
189
227
  // > {
@@ -199,9 +237,7 @@ export class Elysia {
199
237
  use(instance) {
200
238
  const thisRouter = this.routerTree;
201
239
  // TODO use scoped logic to add onRequest and onError on all routers if necessary, add them first
202
- this.routerTree.children.push(mapBfs(instance.routerTree, (r) => {
203
- return Object.assign(Object.assign({}, r), { prefix: (thisRouter.prefix || '') + r.prefix });
204
- }));
240
+ this.routerTree.children.push(instance.routerTree);
205
241
  return this;
206
242
  }
207
243
  onError(handler) {
@@ -225,14 +261,14 @@ export class Elysia {
225
261
  * @returns The final `Response`
226
262
  */
227
263
  async handle(request, platform) {
228
- var _a, _b;
264
+ var _a;
229
265
  platform !== null && platform !== void 0 ? platform : (platform = {});
230
266
  let u = new URL(request.url);
231
267
  let path = u.pathname + u.search;
232
268
  const defaultContext = {
233
269
  redirect,
234
270
  error: null,
235
- path
271
+ path,
236
272
  };
237
273
  let onErrorHandlers = [];
238
274
  try {
@@ -242,35 +278,40 @@ export class Elysia {
242
278
  if (!route) {
243
279
  return this.onNoMatch(request, platform);
244
280
  }
245
- onErrorHandlers = this.getRouteAndParents(route.router).flatMap((x) => x.onErrorHandlers);
246
- const { params, store } = route;
247
- const onReq = this.getRouteAndParents(route.router).flatMap((x) => x.onRequestHandlers);
281
+ onErrorHandlers = this.getRouteAndParents(route.router)
282
+ .reverse()
283
+ .flatMap((x) => x.onErrorHandlers);
284
+ const { params, store: defaultStore } = route;
285
+ const onReqHandlers = this.getRouteAndParents(route.router)
286
+ .reverse()
287
+ .flatMap((x) => x.onRequestHandlers);
288
+ // console.log({ onReqHandlers })
289
+ let store = Object.assign({}, defaultStore);
248
290
  // TODO add content type
249
- let content = (_a = route === null || route === void 0 ? void 0 : route.hook) === null || _a === void 0 ? void 0 : _a.content;
291
+ let content = (_a = route === null || route === void 0 ? void 0 : route.hooks) === null || _a === void 0 ? void 0 : _a.content;
250
292
  let body = await getRequestBody({ request, content });
251
- let bodySchema = (_b = route === null || route === void 0 ? void 0 : route.hook) === null || _b === void 0 ? void 0 : _b.body;
252
- if (bodySchema) {
253
- const validate = ajv.compile(bodySchema);
254
- const valid = validate(body);
293
+ if (route.validate) {
294
+ // TODO move compile to the router
295
+ const valid = route.validate(body);
255
296
  if (!valid) {
256
- const error = ajv.errorsText(validate.errors, {
257
- separator: '\n'
297
+ const error = ajv.errorsText(route.validate.errors, {
298
+ separator: '\n',
258
299
  });
259
300
  return new Response(error, {
260
301
  status: 400,
261
302
  headers: {
262
- 'content-type': 'text/plain'
263
- }
303
+ 'content-type': 'text/plain',
304
+ },
264
305
  });
265
306
  }
266
307
  }
267
- if (onReq.length > 0) {
268
- for (const handler of onReq) {
308
+ if (onReqHandlers.length > 0) {
309
+ for (const handler of onReqHandlers) {
269
310
  const res = await handler({
270
311
  request,
271
312
  response,
272
313
  store,
273
- path
314
+ path,
274
315
  });
275
316
  if (res) {
276
317
  return await turnHandlerResultIntoResponse(res);
@@ -281,14 +322,12 @@ export class Elysia {
281
322
  const res = route.handler(Object.assign(Object.assign({}, defaultContext), { request,
282
323
  response, params: params, store,
283
324
  body,
284
- path
285
- // platform
286
- }));
325
+ path }));
287
326
  if (isAsyncIterable(res)) {
288
327
  return await this.handleStream({
289
328
  generator: res,
290
329
  request,
291
- onErrorHandlers
330
+ onErrorHandlers,
292
331
  });
293
332
  }
294
333
  return await turnHandlerResultIntoResponse(res);
@@ -297,16 +336,16 @@ export class Elysia {
297
336
  let res = await this.runErrorHandlers({
298
337
  onErrorHandlers,
299
338
  error: err,
300
- request
339
+ request,
301
340
  });
302
341
  if (res)
303
342
  return res;
304
343
  return new Response((err === null || err === void 0 ? void 0 : err.message) || 'Internal Server Error', {
305
- status: 500
344
+ status: 500,
306
345
  });
307
346
  }
308
347
  }
309
- async runErrorHandlers({ onErrorHandlers = [], error: err, request }) {
348
+ async runErrorHandlers({ onErrorHandlers = [], error: err, request, }) {
310
349
  if (onErrorHandlers.length === 0) {
311
350
  console.error(`Spiceflow unhandled error:`, err);
312
351
  }
@@ -319,24 +358,26 @@ export class Elysia {
319
358
  }
320
359
  }
321
360
  }
361
+ // get the route parents, the order is starting from the current router and going up to the root
322
362
  getRouteAndParents(currentRouter) {
323
363
  const parents = [];
324
364
  let current = currentRouter;
365
+ let root = this.routerTree.currentRoot || this.routerTree;
325
366
  // Perform BFS once to build a parent map
326
367
  const parentMap = new Map();
327
- bfs(this.routerTree, (node) => {
368
+ bfsFind(root, (node) => {
328
369
  for (const child of node.children) {
329
- parentMap.set(child, node);
370
+ parentMap.set(child.id, node);
330
371
  }
331
372
  });
332
373
  // Traverse the parent map to get the parents
333
374
  while (current) {
334
- parents.unshift(current);
335
- current = parentMap.get(current);
375
+ parents.push(current);
376
+ current = parentMap.get(current.id);
336
377
  }
337
- return parents.reverse().filter((x) => x !== undefined);
378
+ return parents.filter((x) => x !== undefined);
338
379
  }
339
- async handleStream({ onErrorHandlers, generator, request }) {
380
+ async handleStream({ onErrorHandlers, generator, request, }) {
340
381
  let init = generator.next();
341
382
  if (init instanceof Promise)
342
383
  init = await init;
@@ -385,7 +426,7 @@ export class Elysia {
385
426
  let res = await self.runErrorHandlers({
386
427
  onErrorHandlers: onErrorHandlers,
387
428
  error,
388
- request
429
+ request,
389
430
  });
390
431
  controller.enqueue(Buffer.from(`event: error\ndata: ${JSON.stringify(error.message || error.name || 'Error')}\n\n`));
391
432
  }
@@ -395,19 +436,19 @@ export class Elysia {
395
436
  catch (_e) {
396
437
  // nothing
397
438
  }
398
- }
439
+ },
399
440
  }), {
400
441
  // TODO add headers somehow
401
442
  headers: {
402
443
  // Manually set transfer-encoding for direct response, eg. app.handle, eden
403
444
  'transfer-encoding': 'chunked',
404
- 'content-type': 'text/event-stream; charset=utf-8'
445
+ 'content-type': 'text/event-stream; charset=utf-8',
405
446
  // ...set?.headers
406
- }
447
+ },
407
448
  });
408
449
  }
409
450
  }
410
- async function getRequestBody({ request, content }) {
451
+ async function getRequestBody({ request, content, }) {
411
452
  var _a, _b;
412
453
  let body;
413
454
  if (request.method === 'GET' || request.method === 'HEAD') {
@@ -456,9 +497,9 @@ const METHODS = [
456
497
  'PATCH',
457
498
  'POST',
458
499
  'PUT',
459
- 'TRACE'
500
+ 'TRACE',
460
501
  ];
461
- function bfs(tree, onNode) {
502
+ function bfsFind(tree, onNode) {
462
503
  const queue = [tree];
463
504
  while (queue.length > 0) {
464
505
  const node = queue.shift();
@@ -468,18 +509,25 @@ function bfs(tree, onNode) {
468
509
  }
469
510
  queue.push(...node.children);
470
511
  }
471
- return undefined;
512
+ return;
472
513
  }
473
- function mapBfs(tree, mapper) {
514
+ export function bfs(tree) {
474
515
  const queue = [tree];
475
- const result = Object.assign(Object.assign({}, mapper(tree)), { children: [] });
516
+ let nodes = [];
476
517
  while (queue.length > 0) {
477
518
  const node = queue.shift();
478
- const mappedNode = mapper(node);
479
- result.children.push(mappedNode);
480
- queue.push(...mappedNode.children);
519
+ if (node) {
520
+ nodes.push(node);
521
+ }
522
+ // const result = onNode(node)
523
+ queue.push(...node.children);
481
524
  }
482
- return result;
525
+ return nodes;
526
+ }
527
+ function mapTree(tree, mapper) {
528
+ const mappedNode = mapper(tree);
529
+ mappedNode.children = tree.children.map((child) => mapTree(child, mapper));
530
+ return mappedNode;
483
531
  }
484
532
  export async function turnHandlerResultIntoResponse(result) {
485
533
  // if user returns not a response, convert to json
@@ -495,6 +543,19 @@ export async function turnHandlerResultIntoResponse(result) {
495
543
  // result = new Response(result)
496
544
  // }
497
545
  // if user returns an object, convert to json
498
- return new Response(JSON.stringify(result));
546
+ return new Response(JSON.stringify(result, null, 2), {
547
+ headers: {
548
+ 'content-type': 'application/json',
549
+ },
550
+ });
551
+ }
552
+ export function isZodSchema(value) {
553
+ return (value instanceof z.ZodType ||
554
+ (typeof value === 'object' &&
555
+ value !== null &&
556
+ 'parse' in value &&
557
+ 'safeParse' in value &&
558
+ 'optional' in value &&
559
+ 'nullable' in value));
499
560
  }
500
561
  //# sourceMappingURL=spiceflow.js.map
@@ -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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"}