silgi 0.41.9 → 0.41.11
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/dist/cli/index.mjs +1 -1
- package/dist/core/index.d.mts +6 -8
- package/dist/core/index.mjs +22 -9
- package/dist/types/index.d.mts +2 -5
- package/package.json +1 -1
package/dist/cli/index.mjs
CHANGED
package/dist/core/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SilgiConfig, Silgi, SilgiEvent, SilgiSchema, RouteEntry, CustomRequestInit, SilgiRuntimeContext, BaseMethodSchema, MergeAll,
|
|
1
|
+
import { SilgiConfig, Silgi, SilgiEvent, HTTPMethod, SilgiSchema, RouteEntry, CustomRequestInit, SilgiRuntimeContext, BaseMethodSchema, MergeAll, ServiceSetup, ServicesObject, MiddlewareSetup, SilgiRuntimeShareds, Resolvers, SilgiURL, StorageConfig, SilgiCLI, SilgiStorageBase, SilgiRuntimeConfig } from 'silgi/types';
|
|
2
2
|
import { StandardSchemaV1 } from '@standard-schema/spec';
|
|
3
3
|
import { Storage, StorageValue } from 'unstorage';
|
|
4
4
|
import { UseContext } from 'unctx';
|
|
@@ -25,8 +25,7 @@ declare function middleware(event: SilgiEvent, url?: {
|
|
|
25
25
|
}): Promise<any>;
|
|
26
26
|
declare function handler(event: SilgiEvent, url?: {
|
|
27
27
|
path?: string;
|
|
28
|
-
method?:
|
|
29
|
-
graphql?: boolean;
|
|
28
|
+
method?: HTTPMethod;
|
|
30
29
|
}, input?: any): Promise<any>;
|
|
31
30
|
|
|
32
31
|
/**
|
|
@@ -170,12 +169,11 @@ declare function createService<Path extends string = string, Input extends Stand
|
|
|
170
169
|
path?: PathParams;
|
|
171
170
|
query?: QueryParams;
|
|
172
171
|
};
|
|
173
|
-
mode: 'graphql';
|
|
174
172
|
setup: ServiceSetup<Input, Output, PathParams, QueryParams, Resolved, HiddenParameters>;
|
|
175
173
|
}): {
|
|
176
174
|
[K in Path]: {
|
|
177
175
|
setup: ServiceSetup<Input, Output, PathParams, QueryParams, Resolved, HiddenParameters>;
|
|
178
|
-
methods
|
|
176
|
+
methods?: HTTPMethod[];
|
|
179
177
|
input?: Input;
|
|
180
178
|
output?: Output;
|
|
181
179
|
queryParams?: {
|
|
@@ -187,13 +185,13 @@ declare function createService<Path extends string = string, Input extends Stand
|
|
|
187
185
|
|
|
188
186
|
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}`;
|
|
189
187
|
type MiddlewarePath<S extends WildcardVariants<keyof ServicesObject>> = S | 'global';
|
|
190
|
-
interface CreateMiddlewareParams<S extends WildcardVariants<keyof ServicesObject>, UsedMethod extends readonly
|
|
188
|
+
interface CreateMiddlewareParams<S extends WildcardVariants<keyof ServicesObject>, UsedMethod extends readonly HTTPMethod[] = readonly HTTPMethod[], Key extends string = string> {
|
|
191
189
|
path: MiddlewarePath<S>;
|
|
192
190
|
methods?: UsedMethod;
|
|
193
191
|
setup: MiddlewareSetup;
|
|
194
192
|
key: Key;
|
|
195
193
|
}
|
|
196
|
-
type CreateMiddlewareResult<Path extends string, UsedMethod extends readonly
|
|
194
|
+
type CreateMiddlewareResult<Path extends string, UsedMethod extends readonly HTTPMethod[] = readonly HTTPMethod[], Key extends string = string> = {
|
|
197
195
|
[K in `${Key}:${Path}`]: {
|
|
198
196
|
setup: MiddlewareSetup;
|
|
199
197
|
methods?: UsedMethod;
|
|
@@ -201,7 +199,7 @@ type CreateMiddlewareResult<Path extends string, UsedMethod extends readonly Htt
|
|
|
201
199
|
path: Path;
|
|
202
200
|
};
|
|
203
201
|
};
|
|
204
|
-
declare function createMiddleware<S extends WildcardVariants<keyof ServicesObject>, UsedMethod extends readonly
|
|
202
|
+
declare function createMiddleware<S extends WildcardVariants<keyof ServicesObject>, UsedMethod extends readonly HTTPMethod[] = readonly HTTPMethod[], Path extends MiddlewarePath<S> = MiddlewarePath<S>, Key extends string = string>(params: CreateMiddlewareParams<S, UsedMethod, Key> & {
|
|
205
203
|
path: Path;
|
|
206
204
|
}): CreateMiddlewareResult<Path, UsedMethod, Key>;
|
|
207
205
|
|
package/dist/core/index.mjs
CHANGED
|
@@ -305,7 +305,8 @@ async function createSilgi(config) {
|
|
|
305
305
|
silgi.routerPrefixs.push(prefix);
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
|
-
|
|
308
|
+
const methods = object.methods?.length ? object.methods : ["ALL"];
|
|
309
|
+
if (methods.includes("GRAPHQL")) {
|
|
309
310
|
addRoute(silgi.router, "GRAPHQL", route, {
|
|
310
311
|
method: ["GRAPHQL"],
|
|
311
312
|
route,
|
|
@@ -313,7 +314,6 @@ async function createSilgi(config) {
|
|
|
313
314
|
});
|
|
314
315
|
continue;
|
|
315
316
|
}
|
|
316
|
-
const methods = object.methods?.length ? object.methods : ["ALL"];
|
|
317
317
|
for (const method of methods) {
|
|
318
318
|
const globalMethod = method === "ALL" ? "" : method.toUpperCase();
|
|
319
319
|
addRoute(silgi.router, globalMethod, route, {
|
|
@@ -586,7 +586,8 @@ function getUrlPrefix(path, method) {
|
|
|
586
586
|
|
|
587
587
|
async function orchestrate(route, event, _input) {
|
|
588
588
|
const silgiCtx = useSilgi();
|
|
589
|
-
const
|
|
589
|
+
const isGraphQL = route.method === "GRAPHQL";
|
|
590
|
+
const silgiURL = !isGraphQL ? getUrlPrefix(route.route || event.req.url, route.method) : {
|
|
590
591
|
methodName: route.method || "GET",
|
|
591
592
|
namespaceName: "graphql",
|
|
592
593
|
prefixName: "/api",
|
|
@@ -595,7 +596,7 @@ async function orchestrate(route, event, _input) {
|
|
|
595
596
|
pathParams: {},
|
|
596
597
|
queryParams: {}
|
|
597
598
|
};
|
|
598
|
-
const input = _input || (route.service?.setup.rules?.readBeforeBody === false ||
|
|
599
|
+
const input = _input || (route.service?.setup.rules?.readBeforeBody === false || isGraphQL ? {} : await parseRequestInput(event.req));
|
|
599
600
|
const hookContext = { earlyReturnValue: false };
|
|
600
601
|
const routerParams = _input ? input.path : getRouterParams(event);
|
|
601
602
|
const queryParams = _input ? input.query : getQuery(event);
|
|
@@ -613,7 +614,7 @@ async function orchestrate(route, event, _input) {
|
|
|
613
614
|
}
|
|
614
615
|
};
|
|
615
616
|
try {
|
|
616
|
-
if (!route.service &&
|
|
617
|
+
if (!route.service && route.method !== "GRAPHQL") {
|
|
617
618
|
throw createError({
|
|
618
619
|
statusCode: 404,
|
|
619
620
|
statusMessage: "Service not found"
|
|
@@ -649,7 +650,7 @@ async function orchestrate(route, event, _input) {
|
|
|
649
650
|
silgiCtx.shared.$fetch = silgiFetch;
|
|
650
651
|
silgiCtx.shared.silgi = silgiCtx;
|
|
651
652
|
let result;
|
|
652
|
-
if (!
|
|
653
|
+
if (!isGraphQL) {
|
|
653
654
|
result = await route.service?.setup.handler?.(
|
|
654
655
|
inputData,
|
|
655
656
|
silgiCtx.shared,
|
|
@@ -1007,7 +1008,20 @@ async function handler(event, url, input) {
|
|
|
1007
1008
|
const data = middleware(event, url);
|
|
1008
1009
|
_chain = data;
|
|
1009
1010
|
if (silgiCtx.router) {
|
|
1010
|
-
|
|
1011
|
+
let match = findRoute(silgiCtx.router, url?.method || event.req.method, pathname);
|
|
1012
|
+
if (!match && url?.method === "GRAPHQL") {
|
|
1013
|
+
match = {
|
|
1014
|
+
data: {
|
|
1015
|
+
method: url?.method || event.req.method,
|
|
1016
|
+
route: url?.path,
|
|
1017
|
+
service: {
|
|
1018
|
+
setup: {},
|
|
1019
|
+
methods: ["GRAPHQL"]
|
|
1020
|
+
}
|
|
1021
|
+
},
|
|
1022
|
+
params: {}
|
|
1023
|
+
};
|
|
1024
|
+
}
|
|
1011
1025
|
if (match) {
|
|
1012
1026
|
if (_chain) {
|
|
1013
1027
|
return _chain.then(async (_previous) => {
|
|
@@ -1082,9 +1096,8 @@ function createService(params) {
|
|
|
1082
1096
|
);
|
|
1083
1097
|
}
|
|
1084
1098
|
const result = {};
|
|
1085
|
-
const { path, setup, methods, input, output, queryParams
|
|
1099
|
+
const { path, setup, methods, input, output, queryParams } = params;
|
|
1086
1100
|
result[path] = {
|
|
1087
|
-
mode,
|
|
1088
1101
|
setup,
|
|
1089
1102
|
methods,
|
|
1090
1103
|
input,
|
package/dist/types/index.d.mts
CHANGED
|
@@ -285,7 +285,6 @@ interface ServiceSetup<Input extends StandardSchemaV1 = StandardSchemaV1, Output
|
|
|
285
285
|
interface ResolvedServiceDefinition {
|
|
286
286
|
[routePath: string]: {
|
|
287
287
|
setup: ServiceSetup<any, any, any, any, any, any>;
|
|
288
|
-
mode: 'graphql';
|
|
289
288
|
methods: HTTPMethod[];
|
|
290
289
|
input?: StandardSchemaV1;
|
|
291
290
|
output?: StandardSchemaV1;
|
|
@@ -531,7 +530,6 @@ type ExtractPathParams<T extends string> = T extends `${infer _Start}:${infer Pa
|
|
|
531
530
|
[K in Param]: string;
|
|
532
531
|
} : unknown;
|
|
533
532
|
|
|
534
|
-
type HttpMethod = 'get' | 'GET' | 'HEAD' | 'PATCH' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'head' | 'patch' | 'post' | 'put' | 'delete' | 'connect' | 'options' | 'trace';
|
|
535
533
|
type RouterParams<R extends AllPaths | (string & {})> = ExtractPathParams<R>;
|
|
536
534
|
type SilgiFetchOptions<P extends AllPaths | (string & {}), BasePath extends keyof SilgiRouterTypes = TrimAfterFourSlashes<P> extends keyof SilgiRouterTypes ? TrimAfterFourSlashes<P> : never, M extends keyof SilgiRouterTypes[BasePath] = keyof SilgiRouterTypes[BasePath]> = {
|
|
537
535
|
method?: M;
|
|
@@ -693,12 +691,11 @@ interface ResolvedSchemaDefinition {
|
|
|
693
691
|
}
|
|
694
692
|
|
|
695
693
|
type StandardHTTPMethod = 'GET' | 'HEAD' | 'PATCH' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'ALL' | 'GRAPHQL';
|
|
696
|
-
type HTTPMethod = SilgiRuntimeMethods extends
|
|
694
|
+
type HTTPMethod = StandardHTTPMethod | (keyof SilgiRuntimeMethods extends string ? keyof SilgiRuntimeMethods : never);
|
|
697
695
|
interface MetaData extends Record<string, unknown> {
|
|
698
696
|
}
|
|
699
697
|
interface SilgiRoute {
|
|
700
698
|
route?: string;
|
|
701
|
-
graphql?: boolean;
|
|
702
699
|
method?: HTTPMethod | HTTPMethod[];
|
|
703
700
|
service?: ResolvedServiceDefinition[string];
|
|
704
701
|
middleware?: MiddlewareSetup;
|
|
@@ -1224,4 +1221,4 @@ interface LoadConfigOptions {
|
|
|
1224
1221
|
consola?: ConsolaInstance;
|
|
1225
1222
|
}
|
|
1226
1223
|
|
|
1227
|
-
export type { AllPaths, AllPrefixes, AppConfig, Awaitable, BaseMethodSchema, BuildSilgi, CaptureError, CapturedErrorContext, CommandType, Commands, CustomRequestInit, DeepPartial, DeepRequired, DefaultHooks, DefineFrameworkOptions, DotenvOptions, EnvOptions, EventHandlerResponse, ExtendContext, ExtendShared, ExtractNamespace, ExtractPathParamKeys, ExtractPathParams, ExtractPrefix, ExtractRoute, GenImport, GenerateAppOptions, HTTPMethod, HasPathParams, HookResult,
|
|
1224
|
+
export type { AllPaths, AllPrefixes, AppConfig, Awaitable, BaseMethodSchema, BuildSilgi, CaptureError, CapturedErrorContext, CommandType, Commands, CustomRequestInit, DeepPartial, DeepRequired, DefaultHooks, DefineFrameworkOptions, DotenvOptions, EnvOptions, EventHandlerResponse, ExtendContext, ExtendShared, ExtractNamespace, ExtractPathParamKeys, ExtractPathParams, ExtractPrefix, ExtractRoute, GenImport, GenerateAppOptions, HTTPMethod, HasPathParams, HookResult, LoadConfigOptions, MergeAll, MergedSilgiSchema, MetaData, MethodSchemas, MiddlewareHandler, MiddlewareSetup, ModuleDefinition, ModuleHookContext, ModuleMeta, ModuleOptionsCustom, ModuleSetupInstallResult, ModuleSetupReturn, NamespacesForPrefix, NitroBuildInfo, RequiredServiceType, ResolvedMiddlewareDefinition, ResolvedModuleMeta, ResolvedModuleOptions, ResolvedSchema, ResolvedSchemaDefinition, ResolvedServiceDefinition, ResolvedSilgiTemplate, Resolvers, RouteEntry, RouteRules, RouterParams, RoutesForPrefixAndNamespace, ScanFile, Schema, ServiceHandler, ServiceHandlerInput, ServiceSetup, ServicesObject, SetupModuleOption, Silgi, SilgiAppPlugin, SilgiCLI, SilgiCLIConfig, SilgiCLIHooks, SilgiCLIOptions, SilgiCommands, SilgiCompatibility, SilgiCompatibilityIssue, SilgiCompatibilityIssues, SilgiConfig, SilgiEvent, SilgiFetchClient, SilgiFetchOptions, SilgiFrameworkInfo, SilgiHooks, SilgiModule, SilgiModuleInput, SilgiModuleOptions, SilgiOptions, SilgiPreset, SilgiPresetMeta, SilgiRoute, SilgiRouterTypes, SilgiRuntimeConfig, SilgiRuntimeContext, SilgiRuntimeDefaultConfig, SilgiRuntimeHooks, SilgiRuntimeMethods, SilgiRuntimeOptions, SilgiRuntimeShareds, SilgiRuntimeSharedsExtend, SilgiSchema, SilgiStorageBase, SilgiTemplate, SilgiURL, StandardHTTPMethod, StorageConfig, StorageKeyGenerator, StorageKeyParams, StorageMounts, TSReference, TrimAfterFourSlashes, WithPathParams };
|