@orion-js/resolvers 4.0.0-next.5 → 4.0.0-next.6
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 +10 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +5 -7
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
183
|
+
var import_helpers6 = require("@orion-js/helpers");
|
|
194
184
|
|
|
195
185
|
// src/resolver/getExecute/getCacheKey.ts
|
|
196
|
-
var
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
269
|
+
options.resolverId = (0, import_helpers7.generateId)();
|
|
280
270
|
}
|
|
281
271
|
if (!options.middlewares) {
|
|
282
272
|
options.middlewares = [];
|
package/dist/index.cjs.map
CHANGED
|
@@ -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 "
|
|
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 "
|
|
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.
|
|
3
|
+
"version": "4.0.0-next.6",
|
|
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
|
-
"
|
|
13
|
-
"@orion-js/
|
|
14
|
-
"@orion-js/
|
|
15
|
-
"@orion-js/schema": "4.0.0-next.5"
|
|
12
|
+
"@orion-js/schema": "4.0.0-next.6",
|
|
13
|
+
"@orion-js/cache": "4.0.0-next.6",
|
|
14
|
+
"@orion-js/helpers": "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": "^
|
|
20
|
+
"vitest": "^3.0.8"
|
|
23
21
|
},
|
|
24
22
|
"publishConfig": {
|
|
25
23
|
"access": "public"
|