@orion-js/resolvers 4.0.0-next.5 → 4.0.0-next.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.
package/dist/index.cjs CHANGED
@@ -1,8 +1,6 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __export = (target, all) => {
8
6
  for (var name in all)
@@ -16,14 +14,6 @@ var __copyProps = (to, from, except, desc) => {
16
14
  }
17
15
  return to;
18
16
  };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
18
 
29
19
  // src/index.ts
@@ -93,7 +83,7 @@ async function checkPermissions_default(executeOptions, options) {
93
83
  }
94
84
 
95
85
  // src/resolver/cleanParams.ts
96
- var import_clone = __toESM(require("lodash/clone"), 1);
86
+ var import_helpers3 = require("@orion-js/helpers");
97
87
  Symbol.metadata ?? (Symbol.metadata = Symbol("Symbol.metadata"));
98
88
  function cleanParams_default(rawParams) {
99
89
  var _a;
@@ -104,7 +94,7 @@ function cleanParams_default(rawParams) {
104
94
  if (rawParams.__isModel) {
105
95
  rawParams = rawParams.getSchema();
106
96
  }
107
- const params = (0, import_clone.default)(rawParams);
97
+ const params = (0, import_helpers3.clone)(rawParams);
108
98
  Object.keys(params).forEach((key) => {
109
99
  if (key.startsWith("__")) {
110
100
  delete params[key];
@@ -148,7 +138,7 @@ function getResolverArgs(...args) {
148
138
 
149
139
  // src/resolver/getExecute/getSchema.ts
150
140
  var import_schema = require("@orion-js/schema");
151
- var import_clone2 = __toESM(require("lodash/clone"), 1);
141
+ var import_helpers4 = require("@orion-js/helpers");
152
142
  function getType(type) {
153
143
  if (Array.isArray(type)) {
154
144
  return [getType(type[0])];
@@ -161,7 +151,7 @@ function getType(type) {
161
151
  function getSchema(resolverParams) {
162
152
  const schema = {};
163
153
  for (const key of Object.keys(resolverParams)) {
164
- const field = (0, import_clone2.default)(resolverParams[key]);
154
+ const field = (0, import_helpers4.clone)(resolverParams[key]);
165
155
  if (!field) continue;
166
156
  field.type = getType(field.type);
167
157
  schema[key] = field;
@@ -190,10 +180,10 @@ async function cleanAndValidate({
190
180
  }
191
181
 
192
182
  // src/resolver/getExecute/getResultWithMiddlewares.ts
193
- var import_helpers4 = require("@orion-js/helpers");
183
+ var import_helpers6 = require("@orion-js/helpers");
194
184
 
195
185
  // src/resolver/getExecute/getCacheKey.ts
196
- var import_helpers3 = require("@orion-js/helpers");
186
+ var import_helpers5 = require("@orion-js/helpers");
197
187
  var getBaseKey = async (executeOptions) => {
198
188
  const { parent, params, viewer, info, options } = executeOptions;
199
189
  if (parent) {
@@ -209,7 +199,7 @@ async function getCacheKey_default(executeOptions) {
209
199
  const baseKey = await getBaseKey(executeOptions);
210
200
  return `${options.resolverId}_${baseKey}`;
211
201
  }
212
- const key = (0, import_helpers3.hashObject)({ parent, params, resolverId: options.resolverId });
202
+ const key = (0, import_helpers5.hashObject)({ parent, params, resolverId: options.resolverId });
213
203
  return key;
214
204
  }
215
205
 
@@ -239,7 +229,7 @@ async function getResultWithMiddlewares(executeOptions) {
239
229
  const resolveMiddleware = createResolverMiddleware(async (executeOptions2) => {
240
230
  return await getResult_default(executeOptions2);
241
231
  });
242
- const composedMiddlewares = (0, import_helpers4.composeMiddlewares)([
232
+ const composedMiddlewares = (0, import_helpers6.composeMiddlewares)([
243
233
  ...executeOptions.options.middlewares || [],
244
234
  resolveMiddleware
245
235
  ]);
@@ -267,7 +257,7 @@ function getExecute(options) {
267
257
  }
268
258
 
269
259
  // src/resolver/index.ts
270
- var import_helpers5 = require("@orion-js/helpers");
260
+ var import_helpers7 = require("@orion-js/helpers");
271
261
  var import_cache = require("@orion-js/cache");
272
262
  function dynamicCreateResolver(options) {
273
263
  options.params = cleanParams_default(options.params);
@@ -276,7 +266,7 @@ function dynamicCreateResolver(options) {
276
266
  options.cacheProvider = import_cache.defaultCache;
277
267
  }
278
268
  if (!options.resolverId) {
279
- options.resolverId = (0, import_helpers5.generateId)();
269
+ options.resolverId = (0, import_helpers7.generateId)();
280
270
  }
281
271
  if (!options.middlewares) {
282
272
  options.middlewares = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/createResolverMiddleware.ts","../src/resolver/permisionsCheckers.ts","../src/resolver/getExecute/checkPermissions.ts","../src/resolver/cleanParams.ts","../src/resolver/cleanReturns.ts","../src/resolver/getArgs.ts","../src/resolver/getExecute/getSchema.ts","../src/resolver/getExecute/cleanAndValidate.ts","../src/resolver/getExecute/getResultWithMiddlewares.ts","../src/resolver/getExecute/getCacheKey.ts","../src/resolver/getExecute/getResult.ts","../src/resolver/getExecute/index.ts","../src/resolver/index.ts","../src/schemaWithResolvers/index.ts"],"sourcesContent":["export * from './resolver/types'\nexport * from './createResolverMiddleware'\nimport checkPermissions from './resolver/getExecute/checkPermissions'\nimport {addPermissionChecker} from './resolver/permisionsCheckers'\nimport cleanParams from './resolver/cleanParams'\nimport cleanReturns from './resolver/cleanReturns'\nexport * from './resolver/getArgs'\nexport * from './resolver'\n\nexport {checkPermissions, addPermissionChecker, cleanParams, cleanReturns}\n\nexport * from './schemaWithResolvers'\n","import {ResolverMiddleware} from './resolver/types'\n\nexport function createResolverMiddleware(middleware: ResolverMiddleware) {\n return middleware\n}\n","import {PermissionsError} from '@orion-js/helpers'\nimport {PermissionChecker, PermissionCheckerOptions} from './types'\n\ndeclare const global: {\n checkers: PermissionChecker[]\n}\n\nglobal.checkers = []\n\nexport const addPermissionChecker = function (func: PermissionChecker) {\n global.checkers.push(func)\n}\n\nexport const checkPermissions = async function (options: PermissionCheckerOptions) {\n for (const checker of global.checkers) {\n const errorMessage = await checker(options)\n if (errorMessage) {\n throw new PermissionsError(errorMessage)\n }\n }\n}\n","import {checkPermissions} from '../permisionsCheckers'\nimport {PermissionsError} from '@orion-js/helpers'\nimport {\n ExecuteOptions,\n GlobalCheckPermissions,\n ModelCheckPermissions,\n ResolverOptions,\n} from '../types'\n\nexport default async function (executeOptions: ExecuteOptions, options: ResolverOptions) {\n const {parent, params, viewer, info} = executeOptions\n\n if (viewer.app) return\n\n await checkPermissions({\n resolver: options,\n parent,\n params,\n viewer,\n info,\n })\n\n if (options.checkPermission) {\n const execute = async () => {\n if (parent) {\n const checker = options.checkPermission as ModelCheckPermissions\n return checker(parent, params, viewer, info)\n }\n const checker = options.checkPermission as GlobalCheckPermissions\n return checker(params, viewer, info)\n }\n\n const error = await execute()\n if (error) {\n throw new PermissionsError(error)\n }\n }\n}\n","import clone from 'lodash/clone'\n\n// @ts-ignore polyfill for Symbol.metadata // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#decorator-metadata\nSymbol.metadata ??= Symbol('Symbol.metadata')\n\nexport default function (rawParams: any) {\n if (!rawParams) return\n\n // for typed model\n if (rawParams[Symbol.metadata]?._getModel) {\n rawParams = rawParams[Symbol.metadata]._getModel()\n }\n\n if (rawParams.__isModel) {\n rawParams = rawParams.getSchema()\n }\n\n const params = clone(rawParams)\n Object.keys(params).forEach(key => {\n if (key.startsWith('__')) {\n delete params[key]\n }\n })\n\n return params\n}\n","export default function (rawReturns: any) {\n if (!rawReturns) return\n\n // for typed model\n if (rawReturns[Symbol.metadata]?._getModel) {\n return rawReturns[Symbol.metadata]._getModel()\n }\n\n // for typed model\n if (rawReturns.getModel) {\n return rawReturns.getModel()\n }\n\n return rawReturns\n}\n","export function getResolverArgs(...args: any[]) {\n if (args.length === 4) {\n return {\n parent: args[0],\n params: args[1] || {},\n viewer: args[2] || {},\n info: args[3] || {},\n }\n }\n if (args.length < 4) {\n return {\n params: args[0] || {},\n viewer: args[1] || {},\n info: args[2] || {},\n }\n }\n throw new Error('A resolver must be called with 2 parameters only')\n}\n","import {getSchemaFromAnyOrionForm, isSchemaLike, Schema} from '@orion-js/schema'\nimport clone from 'lodash/clone'\n\nfunction getType(type: any) {\n if (Array.isArray(type)) {\n return [getType(type[0])]\n }\n\n if (isSchemaLike(type)) {\n return getSchemaFromAnyOrionForm(type)\n }\n\n return type\n}\n\nexport default function getSchema(resolverParams: any) {\n const schema: Schema = {}\n\n for (const key of Object.keys(resolverParams)) {\n const field = clone(resolverParams[key])\n if (!field) continue\n\n field.type = getType(field.type)\n\n schema[key] = field\n }\n\n return schema\n}\n","import getSchema from './getSchema'\nimport {validate, clean} from '@orion-js/schema'\n\nexport default async function cleanAndValidate({\n params,\n callParams,\n}: {params: any; callParams: any}) {\n if (!callParams) callParams = {}\n\n if (params) {\n const options = {\n filter: false,\n removeEmptyStrings: false,\n }\n const schema = getSchema(params)\n const cleaned = await clean(schema, callParams, options)\n await validate(schema, cleaned, options)\n return cleaned\n }\n\n return callParams\n}\n","import {composeMiddlewares} from '@orion-js/helpers'\nimport {createResolverMiddleware} from '../../createResolverMiddleware'\nimport {ExecuteOptions} from '../types'\nimport getResult from './getResult'\n\nexport async function getResultWithMiddlewares(executeOptions: ExecuteOptions) {\n const resolveMiddleware = createResolverMiddleware(async executeOptions => {\n return await getResult(executeOptions)\n })\n\n const composedMiddlewares = composeMiddlewares([\n ...(executeOptions.options.middlewares || []),\n resolveMiddleware,\n ])\n\n return await composedMiddlewares(executeOptions)\n}\n","import {hashObject} from '@orion-js/helpers'\nimport {ExecuteOptions, ModelGetCacheKey, GlobalGetCacheKey} from '../types'\n\nconst getBaseKey = async (executeOptions: ExecuteOptions) => {\n const {parent, params, viewer, info, options} = executeOptions\n if (parent) {\n const getKey = options.getCacheKey as ModelGetCacheKey\n return await getKey(parent, params, viewer, info)\n }\n const getKey = options.getCacheKey as GlobalGetCacheKey\n return await getKey(params, viewer, info)\n}\n\nexport default async function (executeOptions: ExecuteOptions): Promise<string> {\n const {parent, params, options} = executeOptions\n if (options.getCacheKey) {\n const baseKey = await getBaseKey(executeOptions)\n return `${options.resolverId}_${baseKey}`\n }\n const key = hashObject({parent, params, resolverId: options.resolverId})\n return key\n}\n","import getCacheKey from './getCacheKey'\nimport {ExecuteOptions} from '../types'\n\nexport default async function (executeOptions: ExecuteOptions) {\n const {parent, params, viewer, info, options} = executeOptions\n const executeResolver = async (): Promise<any> => {\n const resultFunc = options.resolve as (...args: any) => any\n if (parent) {\n return await resultFunc(parent, params, viewer, info)\n }\n return await resultFunc(params, viewer, info)\n }\n\n if (options.cache && options.cacheProvider) {\n const key = await getCacheKey(executeOptions)\n const result = await options.cacheProvider.get(key, {\n fallback: executeResolver,\n ttl: options.cache,\n })\n return result.value\n }\n return await executeResolver()\n}\n","import checkPermissions from './checkPermissions'\nimport cleanAndValidate from './cleanAndValidate'\nimport {ResolverOptions, Execute, ExecuteOptions} from '../types'\nimport {getResultWithMiddlewares} from './getResultWithMiddlewares'\n\nexport default function getExecute(options: ResolverOptions) {\n const execute: Execute = async executeParams => {\n const executeOptions: ExecuteOptions = {\n params: await cleanAndValidate({\n params: options.params,\n callParams: executeParams.params,\n }),\n viewer: executeParams.viewer || {},\n info: executeParams.info || {},\n parent: executeParams.parent,\n options: options,\n }\n\n await checkPermissions(executeOptions, options)\n\n const result = await getResultWithMiddlewares(executeOptions)\n\n return result\n }\n\n return execute\n}\n","import getExecute from './getExecute'\nimport cleanParams from './cleanParams'\nimport {generateId} from '@orion-js/helpers'\nimport {\n GlobalResolverOptions,\n GlobalResolverResolve,\n ModelResolver,\n ModelResolverOptions,\n ModelResolverResolve,\n Resolver,\n} from './types'\nimport {defaultCache} from '@orion-js/cache'\nimport cleanReturns from './cleanReturns'\nimport {getResolverArgs} from './getArgs'\nimport {SchemaFieldType} from '@orion-js/schema'\n\nfunction dynamicCreateResolver(options: any) {\n options.params = cleanParams(options.params)\n options.returns = cleanReturns(options.returns)\n\n if (!options.cacheProvider) {\n options.cacheProvider = defaultCache\n }\n\n if (!options.resolverId) {\n options.resolverId = generateId()\n }\n\n if (!options.middlewares) {\n options.middlewares = []\n }\n\n const execute = getExecute(options)\n\n const resolve = async (...args: any[]) => {\n const params: any = getResolverArgs(...args)\n return await execute(params)\n }\n\n const resolver = {\n ...options,\n resolve,\n execute,\n }\n\n return resolver\n}\n\nconst createResolver = <\n TParams extends SchemaFieldType = SchemaFieldType,\n TReturns extends SchemaFieldType = SchemaFieldType,\n TViewer = any,\n TInfo = any,\n>(\n options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>,\n): Resolver<GlobalResolverResolve<TParams, TReturns, TViewer, TInfo>> => {\n return dynamicCreateResolver(options)\n}\n\nconst createModelResolver = <\n TItem = any,\n TParams extends SchemaFieldType = SchemaFieldType,\n TReturns extends SchemaFieldType = SchemaFieldType,\n TViewer = any,\n TInfo = any,\n>(\n options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>,\n): ModelResolver<ModelResolverResolve<TItem, TParams, TReturns, TViewer, TInfo>> => {\n return dynamicCreateResolver(options)\n}\n\n/**\n * @deprecated Use createResolver and createModelResolver instead\n */\nconst resolver = createResolver\n\n/**\n * @deprecated Use createResolver and createModelResolver instead\n */\nconst modelResolver = createModelResolver\n\nexport {createResolver, createModelResolver, resolver, modelResolver}\n","import {Schema} from '@orion-js/schema'\nimport {ModelResolver, ModelResolverResolve} from '../resolver/types'\n\nexport interface SchemaWithResolversResolversMap<TSchema> {\n [key: string]: ModelResolver<ModelResolverResolve<TSchema>>\n}\n\nexport interface SchemaWithResolversOptions<\n TModelName extends string,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n> {\n name: TModelName\n schema: TSchema\n resolvers?: TTypeResolvers\n}\n\nexport function internal_schemaWithResolvers<\n TModelName extends string,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n>(options: SchemaWithResolversOptions<TModelName, TSchema, TTypeResolvers>) {\n const {name, schema, resolvers} = options\n return {\n __modelName: name,\n __resolvers: resolvers,\n ...schema,\n }\n}\n\n/**\n * This method is used to give backwards compatibility to models.initItem\n */\nexport function internal_appendResolversToItem<\n TItem,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n>(item: TItem, resolvers: TTypeResolvers) {\n const newItem = {...item} as any\n\n for (const resolverName in resolvers) {\n newItem[resolverName] = (...args: any[]) => resolvers[resolverName].resolve(newItem, ...args)\n }\n\n return newItem as TItem & {\n [key in keyof TTypeResolvers]: RemoveFirstArg<TTypeResolvers[key]>\n }\n}\n\ntype RemoveFirstArg<T> = T extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never\n"],"mappings":"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","names":["import_helpers","checker","clone","import_clone","clone","import_schema","import_helpers","import_helpers","getKey","executeOptions","import_helpers","resolver"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/createResolverMiddleware.ts","../src/resolver/permisionsCheckers.ts","../src/resolver/getExecute/checkPermissions.ts","../src/resolver/cleanParams.ts","../src/resolver/cleanReturns.ts","../src/resolver/getArgs.ts","../src/resolver/getExecute/getSchema.ts","../src/resolver/getExecute/cleanAndValidate.ts","../src/resolver/getExecute/getResultWithMiddlewares.ts","../src/resolver/getExecute/getCacheKey.ts","../src/resolver/getExecute/getResult.ts","../src/resolver/getExecute/index.ts","../src/resolver/index.ts","../src/schemaWithResolvers/index.ts"],"sourcesContent":["export * from './resolver/types'\nexport * from './createResolverMiddleware'\nimport checkPermissions from './resolver/getExecute/checkPermissions'\nimport {addPermissionChecker} from './resolver/permisionsCheckers'\nimport cleanParams from './resolver/cleanParams'\nimport cleanReturns from './resolver/cleanReturns'\nexport * from './resolver/getArgs'\nexport * from './resolver'\n\nexport {checkPermissions, addPermissionChecker, cleanParams, cleanReturns}\n\nexport * from './schemaWithResolvers'\n","import {ResolverMiddleware} from './resolver/types'\n\nexport function createResolverMiddleware(middleware: ResolverMiddleware) {\n return middleware\n}\n","import {PermissionsError} from '@orion-js/helpers'\nimport {PermissionChecker, PermissionCheckerOptions} from './types'\n\ndeclare const global: {\n checkers: PermissionChecker[]\n}\n\nglobal.checkers = []\n\nexport const addPermissionChecker = function (func: PermissionChecker) {\n global.checkers.push(func)\n}\n\nexport const checkPermissions = async function (options: PermissionCheckerOptions) {\n for (const checker of global.checkers) {\n const errorMessage = await checker(options)\n if (errorMessage) {\n throw new PermissionsError(errorMessage)\n }\n }\n}\n","import {checkPermissions} from '../permisionsCheckers'\nimport {PermissionsError} from '@orion-js/helpers'\nimport {\n ExecuteOptions,\n GlobalCheckPermissions,\n ModelCheckPermissions,\n ResolverOptions,\n} from '../types'\n\nexport default async function (executeOptions: ExecuteOptions, options: ResolverOptions) {\n const {parent, params, viewer, info} = executeOptions\n\n if (viewer.app) return\n\n await checkPermissions({\n resolver: options,\n parent,\n params,\n viewer,\n info,\n })\n\n if (options.checkPermission) {\n const execute = async () => {\n if (parent) {\n const checker = options.checkPermission as ModelCheckPermissions\n return checker(parent, params, viewer, info)\n }\n const checker = options.checkPermission as GlobalCheckPermissions\n return checker(params, viewer, info)\n }\n\n const error = await execute()\n if (error) {\n throw new PermissionsError(error)\n }\n }\n}\n","import {clone} from '@orion-js/helpers'\n\n// @ts-ignore polyfill for Symbol.metadata // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#decorator-metadata\nSymbol.metadata ??= Symbol('Symbol.metadata')\n\nexport default function (rawParams: any) {\n if (!rawParams) return\n\n // for typed model\n if (rawParams[Symbol.metadata]?._getModel) {\n rawParams = rawParams[Symbol.metadata]._getModel()\n }\n\n if (rawParams.__isModel) {\n rawParams = rawParams.getSchema()\n }\n\n const params = clone(rawParams)\n Object.keys(params).forEach(key => {\n if (key.startsWith('__')) {\n delete params[key]\n }\n })\n\n return params\n}\n","export default function (rawReturns: any) {\n if (!rawReturns) return\n\n // for typed model\n if (rawReturns[Symbol.metadata]?._getModel) {\n return rawReturns[Symbol.metadata]._getModel()\n }\n\n // for typed model\n if (rawReturns.getModel) {\n return rawReturns.getModel()\n }\n\n return rawReturns\n}\n","export function getResolverArgs(...args: any[]) {\n if (args.length === 4) {\n return {\n parent: args[0],\n params: args[1] || {},\n viewer: args[2] || {},\n info: args[3] || {},\n }\n }\n if (args.length < 4) {\n return {\n params: args[0] || {},\n viewer: args[1] || {},\n info: args[2] || {},\n }\n }\n throw new Error('A resolver must be called with 2 parameters only')\n}\n","import {getSchemaFromAnyOrionForm, isSchemaLike, Schema} from '@orion-js/schema'\nimport {clone} from '@orion-js/helpers'\n\nfunction getType(type: any) {\n if (Array.isArray(type)) {\n return [getType(type[0])]\n }\n\n if (isSchemaLike(type)) {\n return getSchemaFromAnyOrionForm(type)\n }\n\n return type\n}\n\nexport default function getSchema(resolverParams: any) {\n const schema: Schema = {}\n\n for (const key of Object.keys(resolverParams)) {\n const field = clone(resolverParams[key])\n if (!field) continue\n\n field.type = getType(field.type)\n\n schema[key] = field\n }\n\n return schema\n}\n","import getSchema from './getSchema'\nimport {validate, clean} from '@orion-js/schema'\n\nexport default async function cleanAndValidate({\n params,\n callParams,\n}: {params: any; callParams: any}) {\n if (!callParams) callParams = {}\n\n if (params) {\n const options = {\n filter: false,\n removeEmptyStrings: false,\n }\n const schema = getSchema(params)\n const cleaned = await clean(schema, callParams, options)\n await validate(schema, cleaned, options)\n return cleaned\n }\n\n return callParams\n}\n","import {composeMiddlewares} from '@orion-js/helpers'\nimport {createResolverMiddleware} from '../../createResolverMiddleware'\nimport {ExecuteOptions} from '../types'\nimport getResult from './getResult'\n\nexport async function getResultWithMiddlewares(executeOptions: ExecuteOptions) {\n const resolveMiddleware = createResolverMiddleware(async executeOptions => {\n return await getResult(executeOptions)\n })\n\n const composedMiddlewares = composeMiddlewares([\n ...(executeOptions.options.middlewares || []),\n resolveMiddleware,\n ])\n\n return await composedMiddlewares(executeOptions)\n}\n","import {hashObject} from '@orion-js/helpers'\nimport {ExecuteOptions, ModelGetCacheKey, GlobalGetCacheKey} from '../types'\n\nconst getBaseKey = async (executeOptions: ExecuteOptions) => {\n const {parent, params, viewer, info, options} = executeOptions\n if (parent) {\n const getKey = options.getCacheKey as ModelGetCacheKey\n return await getKey(parent, params, viewer, info)\n }\n const getKey = options.getCacheKey as GlobalGetCacheKey\n return await getKey(params, viewer, info)\n}\n\nexport default async function (executeOptions: ExecuteOptions): Promise<string> {\n const {parent, params, options} = executeOptions\n if (options.getCacheKey) {\n const baseKey = await getBaseKey(executeOptions)\n return `${options.resolverId}_${baseKey}`\n }\n const key = hashObject({parent, params, resolverId: options.resolverId})\n return key\n}\n","import getCacheKey from './getCacheKey'\nimport {ExecuteOptions} from '../types'\n\nexport default async function (executeOptions: ExecuteOptions) {\n const {parent, params, viewer, info, options} = executeOptions\n const executeResolver = async (): Promise<any> => {\n const resultFunc = options.resolve as (...args: any) => any\n if (parent) {\n return await resultFunc(parent, params, viewer, info)\n }\n return await resultFunc(params, viewer, info)\n }\n\n if (options.cache && options.cacheProvider) {\n const key = await getCacheKey(executeOptions)\n const result = await options.cacheProvider.get(key, {\n fallback: executeResolver,\n ttl: options.cache,\n })\n return result.value\n }\n return await executeResolver()\n}\n","import checkPermissions from './checkPermissions'\nimport cleanAndValidate from './cleanAndValidate'\nimport {ResolverOptions, Execute, ExecuteOptions} from '../types'\nimport {getResultWithMiddlewares} from './getResultWithMiddlewares'\n\nexport default function getExecute(options: ResolverOptions) {\n const execute: Execute = async executeParams => {\n const executeOptions: ExecuteOptions = {\n params: await cleanAndValidate({\n params: options.params,\n callParams: executeParams.params,\n }),\n viewer: executeParams.viewer || {},\n info: executeParams.info || {},\n parent: executeParams.parent,\n options: options,\n }\n\n await checkPermissions(executeOptions, options)\n\n const result = await getResultWithMiddlewares(executeOptions)\n\n return result\n }\n\n return execute\n}\n","import getExecute from './getExecute'\nimport cleanParams from './cleanParams'\nimport {generateId} from '@orion-js/helpers'\nimport {\n GlobalResolverOptions,\n GlobalResolverResolve,\n ModelResolver,\n ModelResolverOptions,\n ModelResolverResolve,\n Resolver,\n} from './types'\nimport {defaultCache} from '@orion-js/cache'\nimport cleanReturns from './cleanReturns'\nimport {getResolverArgs} from './getArgs'\nimport {SchemaFieldType} from '@orion-js/schema'\n\nfunction dynamicCreateResolver(options: any) {\n options.params = cleanParams(options.params)\n options.returns = cleanReturns(options.returns)\n\n if (!options.cacheProvider) {\n options.cacheProvider = defaultCache\n }\n\n if (!options.resolverId) {\n options.resolverId = generateId()\n }\n\n if (!options.middlewares) {\n options.middlewares = []\n }\n\n const execute = getExecute(options)\n\n const resolve = async (...args: any[]) => {\n const params: any = getResolverArgs(...args)\n return await execute(params)\n }\n\n const resolver = {\n ...options,\n resolve,\n execute,\n }\n\n return resolver\n}\n\nconst createResolver = <\n TParams extends SchemaFieldType = SchemaFieldType,\n TReturns extends SchemaFieldType = SchemaFieldType,\n TViewer = any,\n TInfo = any,\n>(\n options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>,\n): Resolver<GlobalResolverResolve<TParams, TReturns, TViewer, TInfo>> => {\n return dynamicCreateResolver(options)\n}\n\nconst createModelResolver = <\n TItem = any,\n TParams extends SchemaFieldType = SchemaFieldType,\n TReturns extends SchemaFieldType = SchemaFieldType,\n TViewer = any,\n TInfo = any,\n>(\n options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>,\n): ModelResolver<ModelResolverResolve<TItem, TParams, TReturns, TViewer, TInfo>> => {\n return dynamicCreateResolver(options)\n}\n\n/**\n * @deprecated Use createResolver and createModelResolver instead\n */\nconst resolver = createResolver\n\n/**\n * @deprecated Use createResolver and createModelResolver instead\n */\nconst modelResolver = createModelResolver\n\nexport {createResolver, createModelResolver, resolver, modelResolver}\n","import {Schema} from '@orion-js/schema'\nimport {ModelResolver, ModelResolverResolve} from '../resolver/types'\n\nexport interface SchemaWithResolversResolversMap<TSchema> {\n [key: string]: ModelResolver<ModelResolverResolve<TSchema>>\n}\n\nexport interface SchemaWithResolversOptions<\n TModelName extends string,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n> {\n name: TModelName\n schema: TSchema\n resolvers?: TTypeResolvers\n}\n\nexport function internal_schemaWithResolvers<\n TModelName extends string,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n>(options: SchemaWithResolversOptions<TModelName, TSchema, TTypeResolvers>) {\n const {name, schema, resolvers} = options\n return {\n __modelName: name,\n __resolvers: resolvers,\n ...schema,\n }\n}\n\n/**\n * This method is used to give backwards compatibility to models.initItem\n */\nexport function internal_appendResolversToItem<\n TItem,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n>(item: TItem, resolvers: TTypeResolvers) {\n const newItem = {...item} as any\n\n for (const resolverName in resolvers) {\n newItem[resolverName] = (...args: any[]) => resolvers[resolverName].resolve(newItem, ...args)\n }\n\n return newItem as TItem & {\n [key in keyof TTypeResolvers]: RemoveFirstArg<TTypeResolvers[key]>\n }\n}\n\ntype RemoveFirstArg<T> = T extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never\n"],"mappings":"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","names":["import_helpers","checker","import_helpers","import_helpers","import_schema","import_helpers","import_helpers","getKey","executeOptions","import_helpers","resolver"]}
package/dist/index.js CHANGED
@@ -47,7 +47,7 @@ async function checkPermissions_default(executeOptions, options) {
47
47
  }
48
48
 
49
49
  // src/resolver/cleanParams.ts
50
- import clone from "lodash/clone";
50
+ import { clone } from "@orion-js/helpers";
51
51
  Symbol.metadata ?? (Symbol.metadata = Symbol("Symbol.metadata"));
52
52
  function cleanParams_default(rawParams) {
53
53
  var _a;
@@ -102,7 +102,7 @@ function getResolverArgs(...args) {
102
102
 
103
103
  // src/resolver/getExecute/getSchema.ts
104
104
  import { getSchemaFromAnyOrionForm, isSchemaLike } from "@orion-js/schema";
105
- import clone2 from "lodash/clone";
105
+ import { clone as clone2 } from "@orion-js/helpers";
106
106
  function getType(type) {
107
107
  if (Array.isArray(type)) {
108
108
  return [getType(type[0])];
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createResolverMiddleware.ts","../src/resolver/permisionsCheckers.ts","../src/resolver/getExecute/checkPermissions.ts","../src/resolver/cleanParams.ts","../src/resolver/cleanReturns.ts","../src/resolver/getArgs.ts","../src/resolver/getExecute/getSchema.ts","../src/resolver/getExecute/cleanAndValidate.ts","../src/resolver/getExecute/getResultWithMiddlewares.ts","../src/resolver/getExecute/getCacheKey.ts","../src/resolver/getExecute/getResult.ts","../src/resolver/getExecute/index.ts","../src/resolver/index.ts","../src/schemaWithResolvers/index.ts"],"sourcesContent":["import {ResolverMiddleware} from './resolver/types'\n\nexport function createResolverMiddleware(middleware: ResolverMiddleware) {\n return middleware\n}\n","import {PermissionsError} from '@orion-js/helpers'\nimport {PermissionChecker, PermissionCheckerOptions} from './types'\n\ndeclare const global: {\n checkers: PermissionChecker[]\n}\n\nglobal.checkers = []\n\nexport const addPermissionChecker = function (func: PermissionChecker) {\n global.checkers.push(func)\n}\n\nexport const checkPermissions = async function (options: PermissionCheckerOptions) {\n for (const checker of global.checkers) {\n const errorMessage = await checker(options)\n if (errorMessage) {\n throw new PermissionsError(errorMessage)\n }\n }\n}\n","import {checkPermissions} from '../permisionsCheckers'\nimport {PermissionsError} from '@orion-js/helpers'\nimport {\n ExecuteOptions,\n GlobalCheckPermissions,\n ModelCheckPermissions,\n ResolverOptions,\n} from '../types'\n\nexport default async function (executeOptions: ExecuteOptions, options: ResolverOptions) {\n const {parent, params, viewer, info} = executeOptions\n\n if (viewer.app) return\n\n await checkPermissions({\n resolver: options,\n parent,\n params,\n viewer,\n info,\n })\n\n if (options.checkPermission) {\n const execute = async () => {\n if (parent) {\n const checker = options.checkPermission as ModelCheckPermissions\n return checker(parent, params, viewer, info)\n }\n const checker = options.checkPermission as GlobalCheckPermissions\n return checker(params, viewer, info)\n }\n\n const error = await execute()\n if (error) {\n throw new PermissionsError(error)\n }\n }\n}\n","import clone from 'lodash/clone'\n\n// @ts-ignore polyfill for Symbol.metadata // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#decorator-metadata\nSymbol.metadata ??= Symbol('Symbol.metadata')\n\nexport default function (rawParams: any) {\n if (!rawParams) return\n\n // for typed model\n if (rawParams[Symbol.metadata]?._getModel) {\n rawParams = rawParams[Symbol.metadata]._getModel()\n }\n\n if (rawParams.__isModel) {\n rawParams = rawParams.getSchema()\n }\n\n const params = clone(rawParams)\n Object.keys(params).forEach(key => {\n if (key.startsWith('__')) {\n delete params[key]\n }\n })\n\n return params\n}\n","export default function (rawReturns: any) {\n if (!rawReturns) return\n\n // for typed model\n if (rawReturns[Symbol.metadata]?._getModel) {\n return rawReturns[Symbol.metadata]._getModel()\n }\n\n // for typed model\n if (rawReturns.getModel) {\n return rawReturns.getModel()\n }\n\n return rawReturns\n}\n","export function getResolverArgs(...args: any[]) {\n if (args.length === 4) {\n return {\n parent: args[0],\n params: args[1] || {},\n viewer: args[2] || {},\n info: args[3] || {},\n }\n }\n if (args.length < 4) {\n return {\n params: args[0] || {},\n viewer: args[1] || {},\n info: args[2] || {},\n }\n }\n throw new Error('A resolver must be called with 2 parameters only')\n}\n","import {getSchemaFromAnyOrionForm, isSchemaLike, Schema} from '@orion-js/schema'\nimport clone from 'lodash/clone'\n\nfunction getType(type: any) {\n if (Array.isArray(type)) {\n return [getType(type[0])]\n }\n\n if (isSchemaLike(type)) {\n return getSchemaFromAnyOrionForm(type)\n }\n\n return type\n}\n\nexport default function getSchema(resolverParams: any) {\n const schema: Schema = {}\n\n for (const key of Object.keys(resolverParams)) {\n const field = clone(resolverParams[key])\n if (!field) continue\n\n field.type = getType(field.type)\n\n schema[key] = field\n }\n\n return schema\n}\n","import getSchema from './getSchema'\nimport {validate, clean} from '@orion-js/schema'\n\nexport default async function cleanAndValidate({\n params,\n callParams,\n}: {params: any; callParams: any}) {\n if (!callParams) callParams = {}\n\n if (params) {\n const options = {\n filter: false,\n removeEmptyStrings: false,\n }\n const schema = getSchema(params)\n const cleaned = await clean(schema, callParams, options)\n await validate(schema, cleaned, options)\n return cleaned\n }\n\n return callParams\n}\n","import {composeMiddlewares} from '@orion-js/helpers'\nimport {createResolverMiddleware} from '../../createResolverMiddleware'\nimport {ExecuteOptions} from '../types'\nimport getResult from './getResult'\n\nexport async function getResultWithMiddlewares(executeOptions: ExecuteOptions) {\n const resolveMiddleware = createResolverMiddleware(async executeOptions => {\n return await getResult(executeOptions)\n })\n\n const composedMiddlewares = composeMiddlewares([\n ...(executeOptions.options.middlewares || []),\n resolveMiddleware,\n ])\n\n return await composedMiddlewares(executeOptions)\n}\n","import {hashObject} from '@orion-js/helpers'\nimport {ExecuteOptions, ModelGetCacheKey, GlobalGetCacheKey} from '../types'\n\nconst getBaseKey = async (executeOptions: ExecuteOptions) => {\n const {parent, params, viewer, info, options} = executeOptions\n if (parent) {\n const getKey = options.getCacheKey as ModelGetCacheKey\n return await getKey(parent, params, viewer, info)\n }\n const getKey = options.getCacheKey as GlobalGetCacheKey\n return await getKey(params, viewer, info)\n}\n\nexport default async function (executeOptions: ExecuteOptions): Promise<string> {\n const {parent, params, options} = executeOptions\n if (options.getCacheKey) {\n const baseKey = await getBaseKey(executeOptions)\n return `${options.resolverId}_${baseKey}`\n }\n const key = hashObject({parent, params, resolverId: options.resolverId})\n return key\n}\n","import getCacheKey from './getCacheKey'\nimport {ExecuteOptions} from '../types'\n\nexport default async function (executeOptions: ExecuteOptions) {\n const {parent, params, viewer, info, options} = executeOptions\n const executeResolver = async (): Promise<any> => {\n const resultFunc = options.resolve as (...args: any) => any\n if (parent) {\n return await resultFunc(parent, params, viewer, info)\n }\n return await resultFunc(params, viewer, info)\n }\n\n if (options.cache && options.cacheProvider) {\n const key = await getCacheKey(executeOptions)\n const result = await options.cacheProvider.get(key, {\n fallback: executeResolver,\n ttl: options.cache,\n })\n return result.value\n }\n return await executeResolver()\n}\n","import checkPermissions from './checkPermissions'\nimport cleanAndValidate from './cleanAndValidate'\nimport {ResolverOptions, Execute, ExecuteOptions} from '../types'\nimport {getResultWithMiddlewares} from './getResultWithMiddlewares'\n\nexport default function getExecute(options: ResolverOptions) {\n const execute: Execute = async executeParams => {\n const executeOptions: ExecuteOptions = {\n params: await cleanAndValidate({\n params: options.params,\n callParams: executeParams.params,\n }),\n viewer: executeParams.viewer || {},\n info: executeParams.info || {},\n parent: executeParams.parent,\n options: options,\n }\n\n await checkPermissions(executeOptions, options)\n\n const result = await getResultWithMiddlewares(executeOptions)\n\n return result\n }\n\n return execute\n}\n","import getExecute from './getExecute'\nimport cleanParams from './cleanParams'\nimport {generateId} from '@orion-js/helpers'\nimport {\n GlobalResolverOptions,\n GlobalResolverResolve,\n ModelResolver,\n ModelResolverOptions,\n ModelResolverResolve,\n Resolver,\n} from './types'\nimport {defaultCache} from '@orion-js/cache'\nimport cleanReturns from './cleanReturns'\nimport {getResolverArgs} from './getArgs'\nimport {SchemaFieldType} from '@orion-js/schema'\n\nfunction dynamicCreateResolver(options: any) {\n options.params = cleanParams(options.params)\n options.returns = cleanReturns(options.returns)\n\n if (!options.cacheProvider) {\n options.cacheProvider = defaultCache\n }\n\n if (!options.resolverId) {\n options.resolverId = generateId()\n }\n\n if (!options.middlewares) {\n options.middlewares = []\n }\n\n const execute = getExecute(options)\n\n const resolve = async (...args: any[]) => {\n const params: any = getResolverArgs(...args)\n return await execute(params)\n }\n\n const resolver = {\n ...options,\n resolve,\n execute,\n }\n\n return resolver\n}\n\nconst createResolver = <\n TParams extends SchemaFieldType = SchemaFieldType,\n TReturns extends SchemaFieldType = SchemaFieldType,\n TViewer = any,\n TInfo = any,\n>(\n options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>,\n): Resolver<GlobalResolverResolve<TParams, TReturns, TViewer, TInfo>> => {\n return dynamicCreateResolver(options)\n}\n\nconst createModelResolver = <\n TItem = any,\n TParams extends SchemaFieldType = SchemaFieldType,\n TReturns extends SchemaFieldType = SchemaFieldType,\n TViewer = any,\n TInfo = any,\n>(\n options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>,\n): ModelResolver<ModelResolverResolve<TItem, TParams, TReturns, TViewer, TInfo>> => {\n return dynamicCreateResolver(options)\n}\n\n/**\n * @deprecated Use createResolver and createModelResolver instead\n */\nconst resolver = createResolver\n\n/**\n * @deprecated Use createResolver and createModelResolver instead\n */\nconst modelResolver = createModelResolver\n\nexport {createResolver, createModelResolver, resolver, modelResolver}\n","import {Schema} from '@orion-js/schema'\nimport {ModelResolver, ModelResolverResolve} from '../resolver/types'\n\nexport interface SchemaWithResolversResolversMap<TSchema> {\n [key: string]: ModelResolver<ModelResolverResolve<TSchema>>\n}\n\nexport interface SchemaWithResolversOptions<\n TModelName extends string,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n> {\n name: TModelName\n schema: TSchema\n resolvers?: TTypeResolvers\n}\n\nexport function internal_schemaWithResolvers<\n TModelName extends string,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n>(options: SchemaWithResolversOptions<TModelName, TSchema, TTypeResolvers>) {\n const {name, schema, resolvers} = options\n return {\n __modelName: name,\n __resolvers: resolvers,\n ...schema,\n }\n}\n\n/**\n * This method is used to give backwards compatibility to models.initItem\n */\nexport function internal_appendResolversToItem<\n TItem,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n>(item: TItem, resolvers: TTypeResolvers) {\n const newItem = {...item} as any\n\n for (const resolverName in resolvers) {\n newItem[resolverName] = (...args: any[]) => resolvers[resolverName].resolve(newItem, ...args)\n }\n\n return newItem as TItem & {\n [key in keyof TTypeResolvers]: RemoveFirstArg<TTypeResolvers[key]>\n }\n}\n\ntype RemoveFirstArg<T> = T extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never\n"],"mappings":"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","names":["PermissionsError","checker","clone","getKey","executeOptions","resolver"]}
1
+ {"version":3,"sources":["../src/createResolverMiddleware.ts","../src/resolver/permisionsCheckers.ts","../src/resolver/getExecute/checkPermissions.ts","../src/resolver/cleanParams.ts","../src/resolver/cleanReturns.ts","../src/resolver/getArgs.ts","../src/resolver/getExecute/getSchema.ts","../src/resolver/getExecute/cleanAndValidate.ts","../src/resolver/getExecute/getResultWithMiddlewares.ts","../src/resolver/getExecute/getCacheKey.ts","../src/resolver/getExecute/getResult.ts","../src/resolver/getExecute/index.ts","../src/resolver/index.ts","../src/schemaWithResolvers/index.ts"],"sourcesContent":["import {ResolverMiddleware} from './resolver/types'\n\nexport function createResolverMiddleware(middleware: ResolverMiddleware) {\n return middleware\n}\n","import {PermissionsError} from '@orion-js/helpers'\nimport {PermissionChecker, PermissionCheckerOptions} from './types'\n\ndeclare const global: {\n checkers: PermissionChecker[]\n}\n\nglobal.checkers = []\n\nexport const addPermissionChecker = function (func: PermissionChecker) {\n global.checkers.push(func)\n}\n\nexport const checkPermissions = async function (options: PermissionCheckerOptions) {\n for (const checker of global.checkers) {\n const errorMessage = await checker(options)\n if (errorMessage) {\n throw new PermissionsError(errorMessage)\n }\n }\n}\n","import {checkPermissions} from '../permisionsCheckers'\nimport {PermissionsError} from '@orion-js/helpers'\nimport {\n ExecuteOptions,\n GlobalCheckPermissions,\n ModelCheckPermissions,\n ResolverOptions,\n} from '../types'\n\nexport default async function (executeOptions: ExecuteOptions, options: ResolverOptions) {\n const {parent, params, viewer, info} = executeOptions\n\n if (viewer.app) return\n\n await checkPermissions({\n resolver: options,\n parent,\n params,\n viewer,\n info,\n })\n\n if (options.checkPermission) {\n const execute = async () => {\n if (parent) {\n const checker = options.checkPermission as ModelCheckPermissions\n return checker(parent, params, viewer, info)\n }\n const checker = options.checkPermission as GlobalCheckPermissions\n return checker(params, viewer, info)\n }\n\n const error = await execute()\n if (error) {\n throw new PermissionsError(error)\n }\n }\n}\n","import {clone} from '@orion-js/helpers'\n\n// @ts-ignore polyfill for Symbol.metadata // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#decorator-metadata\nSymbol.metadata ??= Symbol('Symbol.metadata')\n\nexport default function (rawParams: any) {\n if (!rawParams) return\n\n // for typed model\n if (rawParams[Symbol.metadata]?._getModel) {\n rawParams = rawParams[Symbol.metadata]._getModel()\n }\n\n if (rawParams.__isModel) {\n rawParams = rawParams.getSchema()\n }\n\n const params = clone(rawParams)\n Object.keys(params).forEach(key => {\n if (key.startsWith('__')) {\n delete params[key]\n }\n })\n\n return params\n}\n","export default function (rawReturns: any) {\n if (!rawReturns) return\n\n // for typed model\n if (rawReturns[Symbol.metadata]?._getModel) {\n return rawReturns[Symbol.metadata]._getModel()\n }\n\n // for typed model\n if (rawReturns.getModel) {\n return rawReturns.getModel()\n }\n\n return rawReturns\n}\n","export function getResolverArgs(...args: any[]) {\n if (args.length === 4) {\n return {\n parent: args[0],\n params: args[1] || {},\n viewer: args[2] || {},\n info: args[3] || {},\n }\n }\n if (args.length < 4) {\n return {\n params: args[0] || {},\n viewer: args[1] || {},\n info: args[2] || {},\n }\n }\n throw new Error('A resolver must be called with 2 parameters only')\n}\n","import {getSchemaFromAnyOrionForm, isSchemaLike, Schema} from '@orion-js/schema'\nimport {clone} from '@orion-js/helpers'\n\nfunction getType(type: any) {\n if (Array.isArray(type)) {\n return [getType(type[0])]\n }\n\n if (isSchemaLike(type)) {\n return getSchemaFromAnyOrionForm(type)\n }\n\n return type\n}\n\nexport default function getSchema(resolverParams: any) {\n const schema: Schema = {}\n\n for (const key of Object.keys(resolverParams)) {\n const field = clone(resolverParams[key])\n if (!field) continue\n\n field.type = getType(field.type)\n\n schema[key] = field\n }\n\n return schema\n}\n","import getSchema from './getSchema'\nimport {validate, clean} from '@orion-js/schema'\n\nexport default async function cleanAndValidate({\n params,\n callParams,\n}: {params: any; callParams: any}) {\n if (!callParams) callParams = {}\n\n if (params) {\n const options = {\n filter: false,\n removeEmptyStrings: false,\n }\n const schema = getSchema(params)\n const cleaned = await clean(schema, callParams, options)\n await validate(schema, cleaned, options)\n return cleaned\n }\n\n return callParams\n}\n","import {composeMiddlewares} from '@orion-js/helpers'\nimport {createResolverMiddleware} from '../../createResolverMiddleware'\nimport {ExecuteOptions} from '../types'\nimport getResult from './getResult'\n\nexport async function getResultWithMiddlewares(executeOptions: ExecuteOptions) {\n const resolveMiddleware = createResolverMiddleware(async executeOptions => {\n return await getResult(executeOptions)\n })\n\n const composedMiddlewares = composeMiddlewares([\n ...(executeOptions.options.middlewares || []),\n resolveMiddleware,\n ])\n\n return await composedMiddlewares(executeOptions)\n}\n","import {hashObject} from '@orion-js/helpers'\nimport {ExecuteOptions, ModelGetCacheKey, GlobalGetCacheKey} from '../types'\n\nconst getBaseKey = async (executeOptions: ExecuteOptions) => {\n const {parent, params, viewer, info, options} = executeOptions\n if (parent) {\n const getKey = options.getCacheKey as ModelGetCacheKey\n return await getKey(parent, params, viewer, info)\n }\n const getKey = options.getCacheKey as GlobalGetCacheKey\n return await getKey(params, viewer, info)\n}\n\nexport default async function (executeOptions: ExecuteOptions): Promise<string> {\n const {parent, params, options} = executeOptions\n if (options.getCacheKey) {\n const baseKey = await getBaseKey(executeOptions)\n return `${options.resolverId}_${baseKey}`\n }\n const key = hashObject({parent, params, resolverId: options.resolverId})\n return key\n}\n","import getCacheKey from './getCacheKey'\nimport {ExecuteOptions} from '../types'\n\nexport default async function (executeOptions: ExecuteOptions) {\n const {parent, params, viewer, info, options} = executeOptions\n const executeResolver = async (): Promise<any> => {\n const resultFunc = options.resolve as (...args: any) => any\n if (parent) {\n return await resultFunc(parent, params, viewer, info)\n }\n return await resultFunc(params, viewer, info)\n }\n\n if (options.cache && options.cacheProvider) {\n const key = await getCacheKey(executeOptions)\n const result = await options.cacheProvider.get(key, {\n fallback: executeResolver,\n ttl: options.cache,\n })\n return result.value\n }\n return await executeResolver()\n}\n","import checkPermissions from './checkPermissions'\nimport cleanAndValidate from './cleanAndValidate'\nimport {ResolverOptions, Execute, ExecuteOptions} from '../types'\nimport {getResultWithMiddlewares} from './getResultWithMiddlewares'\n\nexport default function getExecute(options: ResolverOptions) {\n const execute: Execute = async executeParams => {\n const executeOptions: ExecuteOptions = {\n params: await cleanAndValidate({\n params: options.params,\n callParams: executeParams.params,\n }),\n viewer: executeParams.viewer || {},\n info: executeParams.info || {},\n parent: executeParams.parent,\n options: options,\n }\n\n await checkPermissions(executeOptions, options)\n\n const result = await getResultWithMiddlewares(executeOptions)\n\n return result\n }\n\n return execute\n}\n","import getExecute from './getExecute'\nimport cleanParams from './cleanParams'\nimport {generateId} from '@orion-js/helpers'\nimport {\n GlobalResolverOptions,\n GlobalResolverResolve,\n ModelResolver,\n ModelResolverOptions,\n ModelResolverResolve,\n Resolver,\n} from './types'\nimport {defaultCache} from '@orion-js/cache'\nimport cleanReturns from './cleanReturns'\nimport {getResolverArgs} from './getArgs'\nimport {SchemaFieldType} from '@orion-js/schema'\n\nfunction dynamicCreateResolver(options: any) {\n options.params = cleanParams(options.params)\n options.returns = cleanReturns(options.returns)\n\n if (!options.cacheProvider) {\n options.cacheProvider = defaultCache\n }\n\n if (!options.resolverId) {\n options.resolverId = generateId()\n }\n\n if (!options.middlewares) {\n options.middlewares = []\n }\n\n const execute = getExecute(options)\n\n const resolve = async (...args: any[]) => {\n const params: any = getResolverArgs(...args)\n return await execute(params)\n }\n\n const resolver = {\n ...options,\n resolve,\n execute,\n }\n\n return resolver\n}\n\nconst createResolver = <\n TParams extends SchemaFieldType = SchemaFieldType,\n TReturns extends SchemaFieldType = SchemaFieldType,\n TViewer = any,\n TInfo = any,\n>(\n options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>,\n): Resolver<GlobalResolverResolve<TParams, TReturns, TViewer, TInfo>> => {\n return dynamicCreateResolver(options)\n}\n\nconst createModelResolver = <\n TItem = any,\n TParams extends SchemaFieldType = SchemaFieldType,\n TReturns extends SchemaFieldType = SchemaFieldType,\n TViewer = any,\n TInfo = any,\n>(\n options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>,\n): ModelResolver<ModelResolverResolve<TItem, TParams, TReturns, TViewer, TInfo>> => {\n return dynamicCreateResolver(options)\n}\n\n/**\n * @deprecated Use createResolver and createModelResolver instead\n */\nconst resolver = createResolver\n\n/**\n * @deprecated Use createResolver and createModelResolver instead\n */\nconst modelResolver = createModelResolver\n\nexport {createResolver, createModelResolver, resolver, modelResolver}\n","import {Schema} from '@orion-js/schema'\nimport {ModelResolver, ModelResolverResolve} from '../resolver/types'\n\nexport interface SchemaWithResolversResolversMap<TSchema> {\n [key: string]: ModelResolver<ModelResolverResolve<TSchema>>\n}\n\nexport interface SchemaWithResolversOptions<\n TModelName extends string,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n> {\n name: TModelName\n schema: TSchema\n resolvers?: TTypeResolvers\n}\n\nexport function internal_schemaWithResolvers<\n TModelName extends string,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n>(options: SchemaWithResolversOptions<TModelName, TSchema, TTypeResolvers>) {\n const {name, schema, resolvers} = options\n return {\n __modelName: name,\n __resolvers: resolvers,\n ...schema,\n }\n}\n\n/**\n * This method is used to give backwards compatibility to models.initItem\n */\nexport function internal_appendResolversToItem<\n TItem,\n TSchema extends Schema,\n TTypeResolvers extends SchemaWithResolversResolversMap<TSchema>,\n>(item: TItem, resolvers: TTypeResolvers) {\n const newItem = {...item} as any\n\n for (const resolverName in resolvers) {\n newItem[resolverName] = (...args: any[]) => resolvers[resolverName].resolve(newItem, ...args)\n }\n\n return newItem as TItem & {\n [key in keyof TTypeResolvers]: RemoveFirstArg<TTypeResolvers[key]>\n }\n}\n\ntype RemoveFirstArg<T> = T extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never\n"],"mappings":"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","names":["PermissionsError","checker","clone","getKey","executeOptions","resolver"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/resolvers",
3
- "version": "4.0.0-next.5",
3
+ "version": "4.0.0-next.7",
4
4
  "main": "./dist/index.cjs",
5
5
  "types": "./dist/index.d.ts",
6
6
  "files": [
@@ -9,17 +9,15 @@
9
9
  "author": "nicolaslopezj",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "lodash": "^4.17.21",
13
- "@orion-js/helpers": "4.0.0-next.5",
14
- "@orion-js/cache": "4.0.0-next.5",
15
- "@orion-js/schema": "4.0.0-next.5"
12
+ "@orion-js/cache": "4.0.0-next.7",
13
+ "@orion-js/helpers": "4.0.0-next.7",
14
+ "@orion-js/schema": "4.0.0-next.6"
16
15
  },
17
16
  "devDependencies": {
18
- "@types/lodash": "4.14.176",
19
17
  "@types/node": "^18.0.0",
20
18
  "tsup": "^8.0.1",
21
19
  "typescript": "^5.4.5",
22
- "vitest": "^1.1.0"
20
+ "vitest": "^3.0.8"
23
21
  },
24
22
  "publishConfig": {
25
23
  "access": "public"