npm package diff

Package: @forge/resolver

Versions: 1.6.17-next.0 - 1.7.0-next.1

File: package/out/index.d.ts

Index: package/out/index.d.ts
===================================================================
--- package/out/index.d.ts
+++ package/out/index.d.ts
@@ -1,34 +1,28 @@
-interface InvokePayload {
+import type { Context, DefArgument, DefResult, Definitions, Request } from './shared';
+export { Request };
+declare type InvokePayload<Argument> = {
     call: {
         functionKey: string;
-        payload?: {
-            [key in number | string]: any;
-        };
+        payload?: Argument;
         jobId?: string;
     };
-    context: {
-        [key: string]: any;
-    };
-}
-export interface Request {
-    payload: {
-        [key in number | string]: any;
-    };
-    context: InvokePayload['context'];
-}
-interface ResponseObject {
+    context: Context;
+};
+export declare type Response = {
     [key: string]: any;
-}
-export declare type Response = ResponseObject | string | void;
-export declare type ResolverFunction = (request: Request) => Promise<Response> | Response;
-declare type DefinitionsHandler = (payload: InvokePayload, backendRuntimePayload?: Request['payload']) => Promise<ReturnType<ResolverFunction>>;
+} | string | void;
+export declare type ResolverFunction<Argument = any, Result = Response> = (request: Request<Argument>) => Promise<Result> | Result;
+declare type DefinitionsHandler = (payload: InvokePayload<unknown>, backendRuntimePayload?: Record<string, any>) => Promise<unknown>;
 export default class Resolver {
     private functions;
     constructor();
-    define(functionKey: string, cb: ResolverFunction): this;
+    define(functionKey: string, cb: ResolverFunction<never, unknown>): this;
     private getFunction;
     private sanitizeObject;
     getDefinitions(): DefinitionsHandler;
 }
-export {};
+export declare type Handlers<D extends Definitions> = {
+    [Def in keyof D & string]: ResolverFunction<DefArgument<D, Def>, DefResult<D, Def>>;
+};
+export declare function makeResolver<D extends Definitions>(handlers: Handlers<D>): DefinitionsHandler;
 //# sourceMappingURL=index.d.ts.map
\ No newline at end of file