silgi 0.38.5 → 0.38.7

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.38.5";
4
+ const version = "0.38.7";
5
5
  const packageJson = {
6
6
  version: version};
7
7
 
@@ -14,6 +14,10 @@ declare function silgiFetch<Schema extends SilgiSchema = SilgiSchema, Route exte
14
14
  declare function silgiFetch(_request: Request | URL, options?: RequestInit & {
15
15
  pathParams?: Record<string, any>;
16
16
  }, context?: SilgiRuntimeContext): Promise<Response | Promise<Response>>;
17
+ declare function middleware(event: SilgiEvent, url?: {
18
+ path: string;
19
+ method: string;
20
+ }): Promise<any>;
17
21
  declare function handler(event: SilgiEvent, url?: {
18
22
  path: string;
19
23
  method: string;
@@ -243,7 +247,7 @@ declare function createService<Schema extends SilgiSchema, Path extends keyof Sc
243
247
  type WildcardVariants<Path extends string, Acc extends string = ''> = Path extends `${infer Head}/${infer Tail}` ? Tail extends '' ? `${Acc}${Head}` : `${Acc}${Head}/${Tail}` | `${Acc}${Head}/*` | `${Acc}${Head}/**` | WildcardVariants<Tail, `${Acc}${Head}/`> : `${Acc}${Path}`;
244
248
  type MiddlewareParams<Schema extends SilgiSchema, Path extends keyof Schema & string, S extends string = WildcardVariants<Path>, Service extends MiddlewareDefinition = MiddlewareDefinition, Method extends string = HttpMethod, UsedMethod extends readonly Method[] = readonly never[]> = ({
245
249
  path: S;
246
- method?: UsedMethod;
250
+ method: UsedMethod;
247
251
  setup: Service;
248
252
  }) | ({
249
253
  global: true;
@@ -255,9 +259,10 @@ type MiddlewareReturn<S extends string, Service extends MiddlewareDefinition, Us
255
259
  [K in S]: {
256
260
  method: boolean;
257
261
  global: boolean;
258
- } & (UsedMethod extends readonly [] | undefined ? Service : {
259
- [M in UsedMethod[number]]: Service;
260
- }) & (S extends string ? (never extends S ? object : object) : Service) & (Service);
262
+ methods: UsedMethod extends readonly [] | undefined ? object : {
263
+ [M in UsedMethod[number]]: Service;
264
+ };
265
+ };
261
266
  };
262
267
  declare function createMiddleware<Schema extends SilgiSchema, Path extends keyof Schema & string, S extends string = WildcardVariants<Path>, Service extends MiddlewareDefinition = MiddlewareDefinition, Method extends string = HttpMethod, UsedMethod extends readonly Method[] = readonly never[]>(params: MiddlewareParams<Schema, Path, S, Service, Method, UsedMethod>): MiddlewareReturn<S, Service, UsedMethod>;
263
268
 
@@ -312,4 +317,4 @@ declare function useRuntime(): SilgiRuntimeConfig;
312
317
 
313
318
  declare const autoImportTypes: string[];
314
319
 
315
- export { SilgiError, autoImportTypes, createError, createMiddleware, createRoute, createSchema, createService, createShared, createSilgi, createStorage, deepMergeObjects, getEvent, getEventContext, getUrlPrefix, handleResponse, handler, isError, replaceRuntimeValues, silgiCLICtx, silgiCtx, silgiFetch, storageMount, tryUseSilgi, tryUseSilgiCLI, updateRuntimeStorage, useRuntime, useSilgi, useSilgiCLI, useSilgiStorage };
320
+ export { SilgiError, autoImportTypes, createError, createMiddleware, createRoute, createSchema, createService, createShared, createSilgi, createStorage, deepMergeObjects, getEvent, getEventContext, getUrlPrefix, handleResponse, handler, isError, middleware, replaceRuntimeValues, silgiCLICtx, silgiCtx, silgiFetch, storageMount, tryUseSilgi, tryUseSilgiCLI, updateRuntimeStorage, useRuntime, useSilgi, useSilgiCLI, useSilgiStorage };
@@ -322,37 +322,40 @@ async function createSilgi(config) {
322
322
  }
323
323
  for (const route in silgi.middlewares) {
324
324
  const routeObject = silgi.middlewares[route];
325
- if ("global" in routeObject) {
326
- const global = routeObject.global ?? false;
327
- const method = routeObject.method ?? false;
328
- if (global && !method) {
329
- silgi.globalMiddlewares.push({
330
- setup: routeObject.setup,
331
- route
332
- });
333
- } else if (method) {
334
- for (const methodKey in routeObject) {
335
- if (["global", "setup", "method"].includes(methodKey))
336
- continue;
325
+ const global = routeObject.global ?? false;
326
+ if (global) {
327
+ if ("methods" in routeObject && routeObject.methods && Object.keys(routeObject.methods).length > 0) {
328
+ for (const methodKey in routeObject.methods) {
337
329
  const _method = (methodKey || "").toUpperCase();
338
- const object = routeObject[methodKey];
330
+ const object = routeObject.methods[methodKey];
331
+ if (!object)
332
+ continue;
339
333
  silgi.globalMiddlewares.push({
340
334
  setup: object.setup,
341
335
  method: _method,
342
336
  route
343
337
  });
344
338
  }
345
- }
346
- } else {
347
- for (const method in routeObject) {
348
- const _method = (method || "").toUpperCase();
349
- const routeObjectMethod = routeObject[method];
350
- addRoute(silgi._middlewareRouter, _method, route, {
351
- setup: routeObjectMethod.setup,
352
- method: _method,
339
+ } else {
340
+ silgi.globalMiddlewares.push({
341
+ setup: routeObject.setup,
353
342
  route
354
343
  });
355
344
  }
345
+ } else {
346
+ if ("methods" in routeObject && routeObject.methods) {
347
+ for (const method in routeObject.methods) {
348
+ const _method = (method || "").toUpperCase();
349
+ const routeObjectMethod = routeObject.methods[method];
350
+ if (!routeObjectMethod)
351
+ continue;
352
+ addRoute(silgi._middlewareRouter, _method, route, {
353
+ setup: routeObjectMethod.setup,
354
+ method: _method,
355
+ route
356
+ });
357
+ }
358
+ }
356
359
  }
357
360
  }
358
361
  silgi.hooks.addHooks(silgi.options.hooks);
@@ -909,7 +912,6 @@ function withDuplexIfBody(options) {
909
912
  return options;
910
913
  }
911
914
  async function silgiFetch(_request, options, context) {
912
- useSilgi();
913
915
  let request;
914
916
  if (typeof _request === "string") {
915
917
  _request = substitutePathParams(_request, options?.pathParams);
@@ -949,9 +951,6 @@ async function middleware(event, url) {
949
951
  if (m.method && m.method !== event.req.method) {
950
952
  return;
951
953
  }
952
- if (m.method && m.method !== event.req.method) {
953
- return;
954
- }
955
954
  await silgiContext.callHook("middleware:global:on", event, m.setup);
956
955
  return m.setup.handler(event, silgiContext);
957
956
  });
@@ -1066,44 +1065,41 @@ function createMiddleware(params) {
1066
1065
  [params.key]: {
1067
1066
  method: false,
1068
1067
  global: params.global,
1069
- setup: params.setup
1068
+ methods: {}
1070
1069
  }
1071
1070
  };
1072
1071
  }
1073
- const result2 = {
1074
- [params.key]: {
1075
- global: params.global,
1076
- method: true
1077
- }
1078
- };
1072
+ const methods2 = {};
1079
1073
  for (const m of params.method) {
1080
- result2[params.key][m] = {
1074
+ methods2[m] = {
1081
1075
  setup: params.setup,
1082
1076
  global: true,
1083
1077
  method: m
1084
1078
  };
1085
1079
  }
1086
- return result2;
1087
- }
1088
- if (!params.method || params.method.length === 0) {
1089
1080
  return {
1090
- [params.path]: {
1081
+ [params.key]: {
1082
+ global: params.global,
1091
1083
  method: true,
1092
- global: false,
1093
- setup: params.setup
1084
+ methods: methods2
1094
1085
  }
1095
1086
  };
1096
1087
  }
1097
- const result = {
1098
- [params.path]: {}
1099
- };
1088
+ const methods = {};
1100
1089
  for (const m of params.method) {
1101
- result[params.path][m] = {
1090
+ methods[m] = {
1102
1091
  setup: params.setup,
1103
- method: m
1092
+ method: m,
1093
+ global: false
1104
1094
  };
1105
1095
  }
1106
- return result;
1096
+ return {
1097
+ [params.path]: {
1098
+ method: true,
1099
+ global: false,
1100
+ methods
1101
+ }
1102
+ };
1107
1103
  }
1108
1104
 
1109
1105
  function createShared(shared) {
@@ -1149,4 +1145,4 @@ const autoImportTypes = [
1149
1145
  "ExtractQueryParamsFromURI"
1150
1146
  ];
1151
1147
 
1152
- export { SilgiError, autoImportTypes, createError, createMiddleware, createRoute, createSchema, createService, createShared, createSilgi, createStorage, deepMergeObjects, getEvent, getEventContext, getUrlPrefix, handleResponse, handler, isError, replaceRuntimeValues, silgiCtx, silgiFetch, storageMount, tryUseSilgi, updateRuntimeStorage, useRuntime, useSilgi, useSilgiStorage };
1148
+ export { SilgiError, autoImportTypes, createError, createMiddleware, createRoute, createSchema, createService, createShared, createSilgi, createStorage, deepMergeObjects, getEvent, getEventContext, getUrlPrefix, handleResponse, handler, isError, middleware, replaceRuntimeValues, silgiCtx, silgiFetch, storageMount, tryUseSilgi, updateRuntimeStorage, useRuntime, useSilgi, useSilgiStorage };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- export { SilgiError, autoImportTypes, createError, createMiddleware, createRoute, createSchema, createService, createShared, createSilgi, createStorage, deepMergeObjects, getEvent, getEventContext, getUrlPrefix, handleResponse, handler, isError, replaceRuntimeValues, silgiCLICtx, silgiCtx, silgiFetch, storageMount, tryUseSilgi, tryUseSilgiCLI, updateRuntimeStorage, useRuntime, useSilgi, useSilgiCLI, useSilgiStorage } from './core/index.mjs';
1
+ export { SilgiError, autoImportTypes, createError, createMiddleware, createRoute, createSchema, createService, createShared, createSilgi, createStorage, deepMergeObjects, getEvent, getEventContext, getUrlPrefix, handleResponse, handler, isError, middleware, replaceRuntimeValues, silgiCLICtx, silgiCtx, silgiFetch, storageMount, tryUseSilgi, tryUseSilgiCLI, updateRuntimeStorage, useRuntime, useSilgi, useSilgiCLI, useSilgiStorage } from './core/index.mjs';
2
2
  import 'silgi/types';
3
3
  import 'unstorage';
4
4
  import 'unctx';
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { SilgiError, autoImportTypes, createError, createMiddleware, createRoute, createSchema, createService, createShared, createSilgi, createStorage, deepMergeObjects, getEvent, getEventContext, getUrlPrefix, handleResponse, handler, isError, replaceRuntimeValues, silgiCtx, silgiFetch, storageMount, tryUseSilgi, updateRuntimeStorage, useRuntime, useSilgi, useSilgiStorage } from './core/index.mjs';
1
+ export { SilgiError, autoImportTypes, createError, createMiddleware, createRoute, createSchema, createService, createShared, createSilgi, createStorage, deepMergeObjects, getEvent, getEventContext, getUrlPrefix, handleResponse, handler, isError, middleware, replaceRuntimeValues, silgiCtx, silgiFetch, storageMount, tryUseSilgi, updateRuntimeStorage, useRuntime, useSilgi, useSilgiStorage } from './core/index.mjs';
2
2
  export { s as silgiCLICtx, t as tryUseSilgiCLI, u as useSilgiCLI } from './_chunks/silgiApp.mjs';
3
3
  import 'consola';
4
4
  import 'defu';
@@ -399,23 +399,22 @@ interface MiddlewareSetup {
399
399
  storage?: StorageConfig;
400
400
  }
401
401
  type MiddlewareDefinition = MiddlewareSetup;
402
- type ResolvedMiddlewareDefinition = {
402
+ interface ResolvedMiddlewareDefinition {
403
403
  [routePath: string]: {
404
- global: boolean;
404
+ global: true;
405
405
  method: false;
406
406
  setup: MiddlewareSetup;
407
- };
408
- } | {
409
- [routePath: string]: {
410
- [method: string]: {
411
- setup: MiddlewareSetup;
412
- method: string;
413
- } & {
414
- global: boolean;
415
- method: boolean;
407
+ } | {
408
+ global: false;
409
+ method: true;
410
+ methods: {
411
+ [method: string]: {
412
+ setup: MiddlewareSetup;
413
+ method: string;
414
+ };
416
415
  };
417
416
  };
418
- };
417
+ }
419
418
 
420
419
  interface SilgiCLI {
421
420
  _ignore?: Ignore;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "silgi",
3
3
  "type": "module",
4
- "version": "0.38.5",
4
+ "version": "0.38.7",
5
5
  "private": false,
6
6
  "sideEffects": false,
7
7
  "exports": {