silgi 0.37.0 → 0.37.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.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { defineCommand, runMain } from 'citty';
3
3
 
4
- const version = "0.37.0";
4
+ const version = "0.37.2";
5
5
  const packageJson = {
6
6
  version: version};
7
7
 
@@ -8,7 +8,6 @@ import { klona } from 'klona';
8
8
  import { useSilgiRuntimeConfig } from 'silgi/runtime';
9
9
  import { createStorage as createStorage$1, builtinDrivers, prefixStorage } from 'unstorage';
10
10
  import { FastURL, FastResponse } from 'srvx';
11
- import { isRuntimePresents } from 'silgi/kit';
12
11
  export { s as silgiCLICtx, t as tryUseSilgiCLI, u as useSilgiCLI } from '../_chunks/silgiApp.mjs';
13
12
 
14
13
  const silgiCtx = getContext("silgi");
@@ -307,7 +306,7 @@ async function createSilgi(config) {
307
306
  addRoute(silgi.router, _method, route, {
308
307
  method: _method,
309
308
  route,
310
- setup: methodObject,
309
+ service: methodObject,
311
310
  schema: schemaWrapper
312
311
  });
313
312
  }
@@ -532,56 +531,73 @@ function getUrlPrefix(path, method) {
532
531
  }
533
532
 
534
533
  async function orchestrate(route, event) {
535
- const input = await parseRequestInput(event.req);
536
534
  const silgiCtx = useSilgi();
537
535
  const silgiURL = getUrlPrefix(route.route, event.req.method);
536
+ const input = await parseRequestInput(event.req);
538
537
  try {
539
538
  const routerParams = getRouterParams(event);
540
539
  const queryParams = getQuery(event);
541
- let success = false;
542
- let cached = false;
543
- let result;
544
- const setup = route.setup;
545
- const cacheData = await cacheExecute(input, route, silgiURL, event);
540
+ const service = route.service;
541
+ const cachePromise = cacheExecute(input, route, silgiURL, event);
542
+ const beforeHookPromise = silgiCtx.callHook("fetch:before", {
543
+ url: silgiURL,
544
+ input,
545
+ event,
546
+ route
547
+ });
548
+ const cacheData = await cachePromise;
549
+ await beforeHookPromise;
546
550
  if (cacheData?.success) {
547
- result = cacheData.data;
548
- success = cacheData.success;
549
- cached = cacheData.cached;
550
- } else {
551
- silgiCtx.shared.$fetch = silgiFetch;
552
- silgiCtx.shared.silgi = silgiCtx;
553
- result = await setup?.handler(
554
- {
555
- args: input,
556
- parameters: {
557
- query: queryParams,
558
- path: routerParams
559
- }
560
- },
561
- silgiCtx.shared,
551
+ await silgiCtx.callHook("fetch:after", {
562
552
  event,
563
- event.context.source
564
- );
565
- success = true;
553
+ url: silgiURL,
554
+ input,
555
+ result: cacheData.data,
556
+ success: true,
557
+ // modules: setup.modules,
558
+ route
559
+ });
560
+ return cacheData.data;
566
561
  }
562
+ silgiCtx.shared.$fetch = silgiFetch;
563
+ silgiCtx.shared.silgi = silgiCtx;
564
+ const result = await service?.handler(
565
+ {
566
+ args: input,
567
+ parameters: {
568
+ query: queryParams,
569
+ path: routerParams
570
+ }
571
+ },
572
+ silgiCtx.shared,
573
+ event,
574
+ event.context.source
575
+ );
567
576
  await silgiCtx.callHook("fetch:after", {
577
+ event,
568
578
  url: silgiURL,
569
579
  input,
570
580
  result,
571
- success,
572
- modules: setup.modules
581
+ success: true,
582
+ // modules: setup.modules,
583
+ route
573
584
  });
574
- if (!cached) {
575
- if (success && cacheData?.cachedKey && setup.storage) {
576
- await useSilgiStorage(setup.storage.base).setItem(cacheData.cachedKey, result, setup.storage.options);
577
- }
585
+ if (service.storage && cacheData?.cachedKey) {
586
+ await useSilgiStorage(service.storage.base).setItem(
587
+ cacheData.cachedKey,
588
+ result,
589
+ // Cast to StorageValue if needed
590
+ service.storage.options
591
+ );
578
592
  }
579
593
  return result;
580
594
  } catch (err) {
581
595
  await silgiCtx.callHook("fetch:error", {
596
+ event,
582
597
  input,
583
598
  error: err instanceof Error ? err : new Error(String(err)),
584
- url: silgiURL
599
+ url: silgiURL,
600
+ route
585
601
  });
586
602
  silgiCtx.captureError(
587
603
  silgiCtx,
@@ -600,7 +616,7 @@ async function orchestrate(route, event) {
600
616
  }
601
617
  }
602
618
  async function cacheExecute(input, route, silgiURL, event) {
603
- const setup = route.setup;
619
+ const setup = route.service;
604
620
  if (!setup.storage)
605
621
  return;
606
622
  const cacheKey = setup.storage ? await generateStorageKey({
@@ -869,17 +885,11 @@ function getEvent(event) {
869
885
  if (event?.event) {
870
886
  return getEvent(event.event);
871
887
  }
872
- if (isRuntimePresents(["h3", "nitro", "nuxt"])) {
873
- return event;
874
- }
875
888
  return event;
876
889
  }
877
890
  function getEventContext(event) {
878
891
  const _event = getEvent(event);
879
- if (isRuntimePresents(["h3", "nitro", "nuxt"])) {
880
- return _event.context;
881
- }
882
- return _event;
892
+ return _event.context;
883
893
  }
884
894
 
885
895
  function createSchema(params) {
package/dist/index.mjs CHANGED
@@ -10,4 +10,3 @@ import 'klona';
10
10
  import 'silgi/runtime';
11
11
  import 'unstorage';
12
12
  import 'srvx';
13
- import 'silgi/kit';
@@ -1,10 +1,9 @@
1
- import { createError, getUrlPrefix, isError, silgiFetch, useSilgi } from "silgi";
1
+ import { createError, silgiFetch, useSilgi } from "silgi";
2
2
  export function toNextJsHandler(silgiContext = useSilgi()) {
3
3
  const handler = async (request) => {
4
4
  if (!silgiContext) {
5
5
  throw new Error("Silgi context is not defined");
6
6
  }
7
- const silgiURL = getUrlPrefix(request.url, request.method);
8
7
  try {
9
8
  const res = await silgiFetch(request);
10
9
  if (!res.ok) {
@@ -22,30 +21,6 @@ export function toNextJsHandler(silgiContext = useSilgi()) {
22
21
  }
23
22
  return res;
24
23
  } catch (err) {
25
- if (isError(err)) {
26
- throw createError({
27
- statusCode: 500,
28
- statusMessage: "Internal Server Error",
29
- cause: err
30
- });
31
- }
32
- await silgiContext.callHook("fetch:error", {
33
- error: err instanceof Error ? err : new Error(String(err)),
34
- url: silgiURL
35
- });
36
- silgiContext.captureError(
37
- silgiContext,
38
- createError({
39
- message: err instanceof Error ? err.message : String(err),
40
- statusCode: 500,
41
- statusMessage: "Internal Server Error",
42
- cause: err
43
- }),
44
- {
45
- url: silgiURL,
46
- tags: ["execute"]
47
- }
48
- );
49
24
  throw createError({
50
25
  statusCode: 500,
51
26
  message: "Internal Server Error",
@@ -1,13 +1,10 @@
1
1
  import {
2
- createError as createH3Error,
3
2
  defineEventHandler,
4
- getRequestWebStream,
5
- H3Error
3
+ getRequestWebStream
6
4
  } from "h3";
7
5
  import {
8
6
  createError,
9
7
  getUrlPrefix,
10
- isError,
11
8
  silgiFetch,
12
9
  useSilgi
13
10
  } from "silgi";
@@ -53,34 +50,6 @@ export async function addNitroApp(silgiContext = useSilgi()) {
53
50
  }
54
51
  return resolvedRoute;
55
52
  } catch (err) {
56
- if (err instanceof H3Error) {
57
- throw err;
58
- }
59
- if (isError(err)) {
60
- throw createH3Error({
61
- statusCode: 500,
62
- statusMessage: "Internal Server Error",
63
- cause: err
64
- });
65
- }
66
- await silgiContext.callHook("fetch:error", {
67
- error: err instanceof Error ? err : new Error(String(err)),
68
- url: silgiURL
69
- });
70
- silgiContext.captureError(
71
- silgiContext,
72
- createError({
73
- message: err instanceof Error ? err.message : String(err),
74
- statusCode: 500,
75
- statusMessage: "Internal Server Error",
76
- cause: err
77
- }),
78
- {
79
- event,
80
- url: silgiURL,
81
- tags: ["execute"]
82
- }
83
- );
84
53
  throw createError({
85
54
  statusCode: 500,
86
55
  message: "Internal Server Error",