@orion-js/resolvers 4.0.0-next.2 → 4.0.0-next.4

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/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { OrionCache } from '@orion-js/cache';
2
- import { Blackbox } from '@orion-js/schema';
2
+ import { Blackbox, InferSchemaType, SchemaFieldType, Schema } from '@orion-js/schema';
3
3
 
4
- type GlobalResolverResolve = (params: any, viewer: any, info?: any) => Promise<any>;
5
- type ModelResolverResolve = (item: any, params: any, viewer: any, info?: any) => Promise<any>;
6
- type GlobalCheckPermissions = (params: any, viewer: any, info?: any) => Promise<string | void>;
7
- type ModelCheckPermissions = (parent: any, params: any, viewer: any, info?: any) => Promise<string | void>;
4
+ type GlobalResolverResolve<TParams = any, TReturns = any, TViewer = any, TInfo = any> = (params?: InferSchemaType<TParams>, viewer?: TViewer, info?: TInfo) => Promise<InferSchemaType<TReturns>>;
5
+ type ModelResolverResolve<TItem = any, TParams = any, TReturns = any, TViewer = any, TInfo = any> = (item?: TItem, params?: InferSchemaType<TParams>, viewer?: TViewer, info?: TInfo) => Promise<InferSchemaType<TReturns>>;
6
+ type GlobalCheckPermissions = (params: any, viewer: any, info?: any) => Promise<string>;
7
+ type ModelCheckPermissions = (parent: any, params: any, viewer: any, info?: any) => Promise<string>;
8
8
  type GlobalGetCacheKey = (params: any, viewer: any, info: any) => Promise<any>;
9
9
  type ModelGetCacheKey = (parent: any, params: any, viewer: any, info: any) => Promise<any>;
10
10
  interface ExecuteOptions {
@@ -12,7 +12,7 @@ interface ExecuteOptions {
12
12
  viewer: any;
13
13
  parent?: any;
14
14
  info?: any;
15
- options: ResolverOptions;
15
+ options: GlobalResolverOptions | ModelResolverOptions;
16
16
  }
17
17
  type Parameters<T> = T extends (...args: infer P) => any ? P : never;
18
18
  type ReturnType<T> = T extends (...args: any) => infer R ? R : any;
@@ -24,10 +24,10 @@ interface ExecuteParams<Resolve = Function, IsModel = undefined> {
24
24
  info?: any;
25
25
  }
26
26
  type Execute<Resolve = Function, IsModel = undefined> = (executeOptions: ExecuteParams<Resolve, IsModel>) => ReturnType<Resolve>;
27
- interface SharedResolverOptions {
27
+ interface SharedResolverOptions<TParams = any, TReturns = any> {
28
28
  resolverId?: string;
29
- params?: any;
30
- returns?: any;
29
+ params?: TParams;
30
+ returns?: TReturns;
31
31
  mutation?: boolean;
32
32
  private?: boolean;
33
33
  checkPermission?: GlobalCheckPermissions | ModelCheckPermissions;
@@ -37,9 +37,13 @@ interface SharedResolverOptions {
37
37
  permissionsOptions?: any;
38
38
  middlewares?: ResolverMiddleware[];
39
39
  }
40
- interface ResolverOptions<Resolve = Function> extends SharedResolverOptions {
41
- resolve: Resolve;
42
- }
40
+ type GlobalResolverOptions<TParams = any, TReturns = any, TViewer = any, TInfo = any> = SharedResolverOptions<TParams, TReturns> & {
41
+ resolve: GlobalResolverResolve<TParams, TReturns, TViewer, TInfo>;
42
+ };
43
+ type ModelResolverOptions<TItem = any, TParams = any, TReturns = any, TViewer = any, TInfo = any> = SharedResolverOptions<TParams, TReturns> & {
44
+ resolve: ModelResolverResolve<TItem, TParams, TReturns, TViewer, TInfo>;
45
+ };
46
+ type ResolverOptions<TParams = any, TReturns = any, TViewer = any, TInfo = any, TItem = any> = GlobalResolverOptions<TParams, TReturns, TViewer, TInfo> | ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>;
43
47
  type OmitFirstArg<F> = F extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never;
44
48
  interface Resolver<Resolve = Function, IsModel = undefined> extends SharedResolverOptions {
45
49
  execute: Execute<Resolve, IsModel>;
@@ -47,21 +51,16 @@ interface Resolver<Resolve = Function, IsModel = undefined> extends SharedResolv
47
51
  modelResolve: IsModel extends undefined ? undefined : OmitFirstArg<Resolve>;
48
52
  }
49
53
  type ModelResolver<Resolve = Function> = Resolver<Resolve, true>;
50
- type CreateResolver = <Resolve extends GlobalResolverResolve>(options: ResolverOptions<Resolve>) => Resolver<Resolve>;
51
- type CreateModelResolver = <Resolve extends ModelResolverResolve>(options: ResolverOptions<Resolve>) => ModelResolver<Resolve>;
52
54
  interface PermissionCheckerOptions {
53
- resolver: ResolverOptions;
55
+ resolver: GlobalResolverOptions | ModelResolverOptions;
54
56
  parent: any;
55
57
  params: any;
56
58
  viewer: any;
57
59
  info: any;
58
60
  }
59
- type PermissionChecker = (options: PermissionCheckerOptions) => Promise<string | void>;
61
+ type PermissionChecker = (options: PermissionCheckerOptions) => Promise<string>;
60
62
  type ResolverMiddleware = (executeOptions: ExecuteOptions, next: () => Promise<any>) => Promise<any>;
61
63
 
62
- declare const resolver: CreateResolver;
63
- declare const modelResolver: CreateModelResolver;
64
-
65
64
  declare function createResolverMiddleware(middleware: ResolverMiddleware): ResolverMiddleware;
66
65
 
67
66
  declare function export_default$2(executeOptions: ExecuteOptions, options: ResolverOptions): Promise<void>;
@@ -84,4 +83,33 @@ declare function getResolverArgs(...args: any[]): {
84
83
  parent?: undefined;
85
84
  };
86
85
 
87
- export { type CreateModelResolver, type CreateResolver, type Execute, type ExecuteOptions, type ExecuteParams, type GlobalCheckPermissions, type GlobalGetCacheKey, type GlobalResolverResolve, type ModelCheckPermissions, type ModelGetCacheKey, type ModelResolver, type ModelResolverResolve, type PermissionChecker, type PermissionCheckerOptions, type Resolver, type ResolverMiddleware, type ResolverOptions, type SharedResolverOptions, addPermissionChecker, export_default$2 as checkPermissions, export_default$1 as cleanParams, export_default as cleanReturns, createResolverMiddleware, getResolverArgs, modelResolver, resolver };
86
+ declare const createResolver: <TParams extends SchemaFieldType = SchemaFieldType, TReturns extends SchemaFieldType = SchemaFieldType, TViewer = any, TInfo = any>(options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>) => Resolver<GlobalResolverResolve<TParams, TReturns, TViewer, TInfo>>;
87
+ declare const createModelResolver: <TItem = any, TParams extends SchemaFieldType = SchemaFieldType, TReturns extends SchemaFieldType = SchemaFieldType, TViewer = any, TInfo = any>(options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>) => ModelResolver<ModelResolverResolve<TItem, TParams, TReturns, TViewer, TInfo>>;
88
+ /**
89
+ * @deprecated Use createResolver and createModelResolver instead
90
+ */
91
+ declare const resolver: <TParams extends SchemaFieldType = SchemaFieldType, TReturns extends SchemaFieldType = SchemaFieldType, TViewer = any, TInfo = any>(options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>) => Resolver<GlobalResolverResolve<TParams, TReturns, TViewer, TInfo>>;
92
+ /**
93
+ * @deprecated Use createResolver and createModelResolver instead
94
+ */
95
+ declare const modelResolver: <TItem = any, TParams extends SchemaFieldType = SchemaFieldType, TReturns extends SchemaFieldType = SchemaFieldType, TViewer = any, TInfo = any>(options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>) => ModelResolver<ModelResolverResolve<TItem, TParams, TReturns, TViewer, TInfo>>;
96
+
97
+ interface SchemaWithResolversResolversMap<TSchema> {
98
+ [key: string]: ModelResolver<ModelResolverResolve<TSchema>>;
99
+ }
100
+ interface SchemaWithResolversOptions<TModelName extends string, TSchema extends Schema, TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>> {
101
+ name: TModelName;
102
+ schema: TSchema;
103
+ resolvers?: TTypeResolvers;
104
+ }
105
+ declare function internal_schemaWithResolvers<TModelName extends string, TSchema extends Schema, TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>>(options: SchemaWithResolversOptions<TModelName, TSchema, TTypeResolvers>): {
106
+ __modelName: TModelName;
107
+ __resolvers: TTypeResolvers;
108
+ } & TSchema;
109
+ /**
110
+ * This method is used to give backwards compatibility to models.initItem
111
+ */
112
+ declare function internal_appendResolversToItem<TItem, TSchema extends Schema, TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>>(item: TItem, resolvers: TTypeResolvers): TItem & { [key in keyof TTypeResolvers]: RemoveFirstArg<TTypeResolvers[key]>; };
113
+ type RemoveFirstArg<T> = T extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never;
114
+
115
+ export { type Execute, type ExecuteOptions, type ExecuteParams, type GlobalCheckPermissions, type GlobalGetCacheKey, type GlobalResolverOptions, type GlobalResolverResolve, type ModelCheckPermissions, type ModelGetCacheKey, type ModelResolver, type ModelResolverOptions, type ModelResolverResolve, type PermissionChecker, type PermissionCheckerOptions, type Resolver, type ResolverMiddleware, type ResolverOptions, type SchemaWithResolversOptions, type SchemaWithResolversResolversMap, type SharedResolverOptions, addPermissionChecker, export_default$2 as checkPermissions, export_default$1 as cleanParams, export_default as cleanReturns, createModelResolver, createResolver, createResolverMiddleware, getResolverArgs, internal_appendResolversToItem, internal_schemaWithResolvers, modelResolver, resolver };