@orion-js/resolvers 4.0.13 → 4.0.14
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 +21 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -57,6 +57,7 @@ function getResolverArgs(...args) {
|
|
|
57
57
|
|
|
58
58
|
// src/resolver/getExecute/index.ts
|
|
59
59
|
var import_schema = require("@orion-js/schema");
|
|
60
|
+
var import_logger = require("@orion-js/logger");
|
|
60
61
|
|
|
61
62
|
// src/resolver/getExecute/getResultWithMiddlewares.ts
|
|
62
63
|
var import_helpers = require("@orion-js/helpers");
|
|
@@ -89,14 +90,32 @@ async function getResultWithMiddlewares(executeOptions) {
|
|
|
89
90
|
// src/resolver/getExecute/index.ts
|
|
90
91
|
function getExecute(options) {
|
|
91
92
|
const execute = async (executeParams) => {
|
|
92
|
-
const
|
|
93
|
+
const executeContext = {
|
|
93
94
|
params: options.params ? await (0, import_schema.cleanAndValidate)(options.params, executeParams.params ?? {}) : executeParams.params ?? {},
|
|
94
95
|
viewer: executeParams.viewer || {},
|
|
95
96
|
info: executeParams.info || {},
|
|
96
97
|
parent: executeParams.parent,
|
|
97
98
|
options
|
|
98
99
|
};
|
|
99
|
-
const
|
|
100
|
+
const currentContext = (0, import_logger.getOrionAsyncContext)();
|
|
101
|
+
const context = currentContext ? {
|
|
102
|
+
...currentContext,
|
|
103
|
+
viewer: executeContext.viewer,
|
|
104
|
+
params: executeContext.params,
|
|
105
|
+
parentData: executeContext.parent,
|
|
106
|
+
modelResolverName: executeContext.parent ? executeContext.options.resolverId : currentContext.controllerType === "modelResolver" ? currentContext.modelResolverName : void 0,
|
|
107
|
+
resolverName: !executeContext.parent && currentContext.controllerType === "resolver" ? executeContext.options.resolverId : currentContext.controllerType === "resolver" ? currentContext.resolverName : void 0
|
|
108
|
+
} : {
|
|
109
|
+
controllerType: executeContext.parent ? "modelResolver" : "resolver",
|
|
110
|
+
viewer: executeContext.viewer,
|
|
111
|
+
params: executeContext.params,
|
|
112
|
+
parentData: executeContext.parent,
|
|
113
|
+
modelResolverName: executeContext.parent ? executeContext.options.resolverId : void 0,
|
|
114
|
+
resolverName: !executeContext.parent ? executeContext.options.resolverId : void 0
|
|
115
|
+
};
|
|
116
|
+
const result = await (0, import_logger.runWithOrionAsyncContext)(context, async () => {
|
|
117
|
+
return await getResultWithMiddlewares(executeContext);
|
|
118
|
+
});
|
|
100
119
|
if (options.returns) {
|
|
101
120
|
return await (0, import_schema.clean)(options.returns, result);
|
|
102
121
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/createResolverMiddleware.ts","../src/resolver/getArgs.ts","../src/resolver/getExecute/index.ts","../src/resolver/getExecute/getResultWithMiddlewares.ts","../src/resolver/getExecute/getResult.ts","../src/resolver/index.ts","../src/schemaWithResolvers/index.ts"],"sourcesContent":["export * from './resolver/types'\nexport * from './createResolverMiddleware'\nexport * from './resolver/getArgs'\nexport * from './resolver'\nexport * from './schemaWithResolvers'\n","import {ResolverMiddleware} from './resolver/types'\n\nexport function createResolverMiddleware(middleware: ResolverMiddleware) {\n return middleware\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 {clean, cleanAndValidate} from '@orion-js/schema'\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: options.params\n ? await cleanAndValidate(options.params, executeParams.params ?? {})\n : (executeParams.params ?? {}),\n viewer: executeParams.viewer || {},\n info: executeParams.info || {},\n parent: executeParams.parent,\n options: options,\n }\n\n const result = await getResultWithMiddlewares(executeOptions)\n\n if (options.returns) {\n return await clean(options.returns, result)\n }\n\n return result\n }\n\n return execute\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 {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 return await executeResolver()\n}\n","import getExecute from './getExecute'\nimport {generateId} from '@orion-js/helpers'\nimport {GlobalResolverOptions, ModelResolver, ModelResolverOptions, GlobalResolver} from './types'\nimport {getResolverArgs} from './getArgs'\nimport {getSchemaFromAnyOrionForm, SchemaFieldType} from '@orion-js/schema'\n\nfunction dynamicCreateResolver(options: any) {\n options.params = getSchemaFromAnyOrionForm(options.params)\n options.returns = getSchemaFromAnyOrionForm(options.returns)\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 = any,\n TReturns extends SchemaFieldType = any,\n TViewer = any,\n TInfo = any,\n>(\n options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>,\n): GlobalResolver<TParams, TReturns, TViewer, TInfo> => {\n return dynamicCreateResolver(options)\n}\n\nconst createModelResolver = <\n TItem = any,\n TParams extends SchemaFieldType = any,\n TReturns extends SchemaFieldType = any,\n TViewer = any,\n TInfo = any,\n>(\n options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>,\n): ModelResolver<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":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,SAAS,yBAAyB,YAAgC;AACvE,SAAO;AACT;;;ACJO,SAAS,mBAAmB,MAAa;AAC9C,MAAI,KAAK,WAAW,GAAG;AACrB,WAAO;AAAA,MACL,QAAQ,KAAK,CAAC;AAAA,MACd,QAAQ,KAAK,CAAC,KAAK,CAAC;AAAA,MACpB,QAAQ,KAAK,CAAC,KAAK,CAAC;AAAA,MACpB,MAAM,KAAK,CAAC,KAAK,CAAC;AAAA,IACpB;AAAA,EACF;AACA,MAAI,KAAK,SAAS,GAAG;AACnB,WAAO;AAAA,MACL,QAAQ,KAAK,CAAC,KAAK,CAAC;AAAA,MACpB,QAAQ,KAAK,CAAC,KAAK,CAAC;AAAA,MACpB,MAAM,KAAK,CAAC,KAAK,CAAC;AAAA,IACpB;AAAA,EACF;AACA,QAAM,IAAI,MAAM,kDAAkD;AACpE;;;ACjBA,oBAAsC;;;ACAtC,qBAAiC;;;ACEjC,eAAO,kBAAwB,gBAAgC;AAC7D,QAAM,EAAC,QAAQ,QAAQ,QAAQ,MAAM,QAAO,IAAI;AAChD,QAAM,kBAAkB,YAA0B;AAChD,UAAM,aAAa,QAAQ;AAC3B,QAAI,QAAQ;AACV,aAAO,MAAM,WAAW,QAAQ,QAAQ,QAAQ,IAAI;AAAA,IACtD;AACA,WAAO,MAAM,WAAW,QAAQ,QAAQ,IAAI;AAAA,EAC9C;AAEA,SAAO,MAAM,gBAAgB;AAC/B;;;ADRA,eAAsB,yBAAyB,gBAAgC;AAC7E,QAAM,oBAAoB,yBAAyB,OAAMA,oBAAkB;AACzE,WAAO,MAAM,kBAAUA,eAAc;AAAA,EACvC,CAAC;AAED,QAAM,0BAAsB,mCAAmB;AAAA,IAC7C,GAAI,eAAe,QAAQ,eAAe,CAAC;AAAA,IAC3C;AAAA,EACF,CAAC;AAED,SAAO,MAAM,oBAAoB,cAAc;AACjD;;;ADZe,SAAR,WAA4B,SAA0B;AAC3D,QAAM,UAAmB,OAAM,kBAAiB;AAC9C,UAAM,iBAAiC;AAAA,MACrC,QAAQ,QAAQ,SACZ,UAAM,gCAAiB,QAAQ,QAAQ,cAAc,UAAU,CAAC,CAAC,IAChE,cAAc,UAAU,CAAC;AAAA,MAC9B,QAAQ,cAAc,UAAU,CAAC;AAAA,MACjC,MAAM,cAAc,QAAQ,CAAC;AAAA,MAC7B,QAAQ,cAAc;AAAA,MACtB;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,yBAAyB,cAAc;AAE5D,QAAI,QAAQ,SAAS;AACnB,aAAO,UAAM,qBAAM,QAAQ,SAAS,MAAM;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;;;AGzBA,IAAAC,kBAAyB;AAGzB,IAAAC,iBAAyD;AAEzD,SAAS,sBAAsB,SAAc;AAC3C,UAAQ,aAAS,0CAA0B,QAAQ,MAAM;AACzD,UAAQ,cAAU,0CAA0B,QAAQ,OAAO;AAE3D,MAAI,CAAC,QAAQ,YAAY;AACvB,YAAQ,iBAAa,4BAAW;AAAA,EAClC;AAEA,MAAI,CAAC,QAAQ,aAAa;AACxB,YAAQ,cAAc,CAAC;AAAA,EACzB;AAEA,QAAM,UAAU,WAAW,OAAO;AAElC,QAAM,UAAU,UAAU,SAAgB;AACxC,UAAM,SAAc,gBAAgB,GAAG,IAAI;AAC3C,WAAO,MAAM,QAAQ,MAAM;AAAA,EAC7B;AAEA,QAAMC,YAAW;AAAA,IACf,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF;AAEA,SAAOA;AACT;AAEA,IAAM,iBAAiB,CAMrB,YACsD;AACtD,SAAO,sBAAsB,OAAO;AACtC;AAEA,IAAM,sBAAsB,CAO1B,YAC4D;AAC5D,SAAO,sBAAsB,OAAO;AACtC;AAKA,IAAM,WAAW;AAKjB,IAAM,gBAAgB;;;AChDf,SAAS,6BAId,SAA0E;AAC1E,QAAM,EAAC,MAAM,QAAQ,UAAS,IAAI;AAClC,SAAO;AAAA,IACL,aAAa;AAAA,IACb,aAAa;AAAA,IACb,GAAG;AAAA,EACL;AACF;AAKO,SAAS,+BAId,MAAa,WAA2B;AACxC,QAAM,UAAU,EAAC,GAAG,KAAI;AAExB,aAAW,gBAAgB,WAAW;AACpC,YAAQ,YAAY,IAAI,IAAI,SAAgB,UAAU,YAAY,EAAE,QAAQ,SAAS,GAAG,IAAI;AAAA,EAC9F;AAEA,SAAO;AAGT;","names":["executeOptions","import_helpers","import_schema","resolver"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/createResolverMiddleware.ts","../src/resolver/getArgs.ts","../src/resolver/getExecute/index.ts","../src/resolver/getExecute/getResultWithMiddlewares.ts","../src/resolver/getExecute/getResult.ts","../src/resolver/index.ts","../src/schemaWithResolvers/index.ts"],"sourcesContent":["export * from './resolver/types'\nexport * from './createResolverMiddleware'\nexport * from './resolver/getArgs'\nexport * from './resolver'\nexport * from './schemaWithResolvers'\n","import {ResolverMiddleware} from './resolver/types'\n\nexport function createResolverMiddleware(middleware: ResolverMiddleware) {\n return middleware\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 {clean, cleanAndValidate} from '@orion-js/schema'\nimport {getOrionAsyncContext, runWithOrionAsyncContext} from '@orion-js/logger'\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 executeContext: ExecuteOptions = {\n params: options.params\n ? await cleanAndValidate(options.params, executeParams.params ?? {})\n : (executeParams.params ?? {}),\n viewer: executeParams.viewer || {},\n info: executeParams.info || {},\n parent: executeParams.parent,\n options: options,\n }\n\n const currentContext = getOrionAsyncContext()\n\n const context = currentContext\n ? {\n ...currentContext,\n viewer: executeContext.viewer,\n params: executeContext.params,\n parentData: executeContext.parent,\n modelResolverName: executeContext.parent\n ? executeContext.options.resolverId\n : currentContext.controllerType === 'modelResolver'\n ? currentContext.modelResolverName\n : undefined,\n resolverName:\n !executeContext.parent && currentContext.controllerType === 'resolver'\n ? executeContext.options.resolverId\n : currentContext.controllerType === 'resolver'\n ? currentContext.resolverName\n : undefined,\n }\n : {\n controllerType: executeContext.parent ? 'modelResolver' : 'resolver',\n viewer: executeContext.viewer,\n params: executeContext.params,\n parentData: executeContext.parent,\n modelResolverName: executeContext.parent ? executeContext.options.resolverId : undefined,\n resolverName: !executeContext.parent ? executeContext.options.resolverId : undefined,\n }\n\n const result = await runWithOrionAsyncContext(context, async () => {\n return await getResultWithMiddlewares(executeContext)\n })\n\n if (options.returns) {\n return await clean(options.returns, result)\n }\n\n return result\n }\n\n return execute\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 {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 return await executeResolver()\n}\n","import getExecute from './getExecute'\nimport {generateId} from '@orion-js/helpers'\nimport {GlobalResolverOptions, ModelResolver, ModelResolverOptions, GlobalResolver} from './types'\nimport {getResolverArgs} from './getArgs'\nimport {getSchemaFromAnyOrionForm, SchemaFieldType} from '@orion-js/schema'\n\nfunction dynamicCreateResolver(options: any) {\n options.params = getSchemaFromAnyOrionForm(options.params)\n options.returns = getSchemaFromAnyOrionForm(options.returns)\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 = any,\n TReturns extends SchemaFieldType = any,\n TViewer = any,\n TInfo = any,\n>(\n options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>,\n): GlobalResolver<TParams, TReturns, TViewer, TInfo> => {\n return dynamicCreateResolver(options)\n}\n\nconst createModelResolver = <\n TItem = any,\n TParams extends SchemaFieldType = any,\n TReturns extends SchemaFieldType = any,\n TViewer = any,\n TInfo = any,\n>(\n options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>,\n): ModelResolver<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":["executeOptions","import_helpers","import_schema","resolver"]}
|
package/dist/index.js
CHANGED
|
@@ -25,6 +25,7 @@ function getResolverArgs(...args) {
|
|
|
25
25
|
|
|
26
26
|
// src/resolver/getExecute/index.ts
|
|
27
27
|
import { clean, cleanAndValidate } from "@orion-js/schema";
|
|
28
|
+
import { getOrionAsyncContext, runWithOrionAsyncContext } from "@orion-js/logger";
|
|
28
29
|
|
|
29
30
|
// src/resolver/getExecute/getResultWithMiddlewares.ts
|
|
30
31
|
import { composeMiddlewares } from "@orion-js/helpers";
|
|
@@ -57,14 +58,32 @@ async function getResultWithMiddlewares(executeOptions) {
|
|
|
57
58
|
// src/resolver/getExecute/index.ts
|
|
58
59
|
function getExecute(options) {
|
|
59
60
|
const execute = async (executeParams) => {
|
|
60
|
-
const
|
|
61
|
+
const executeContext = {
|
|
61
62
|
params: options.params ? await cleanAndValidate(options.params, executeParams.params ?? {}) : executeParams.params ?? {},
|
|
62
63
|
viewer: executeParams.viewer || {},
|
|
63
64
|
info: executeParams.info || {},
|
|
64
65
|
parent: executeParams.parent,
|
|
65
66
|
options
|
|
66
67
|
};
|
|
67
|
-
const
|
|
68
|
+
const currentContext = getOrionAsyncContext();
|
|
69
|
+
const context = currentContext ? {
|
|
70
|
+
...currentContext,
|
|
71
|
+
viewer: executeContext.viewer,
|
|
72
|
+
params: executeContext.params,
|
|
73
|
+
parentData: executeContext.parent,
|
|
74
|
+
modelResolverName: executeContext.parent ? executeContext.options.resolverId : currentContext.controllerType === "modelResolver" ? currentContext.modelResolverName : void 0,
|
|
75
|
+
resolverName: !executeContext.parent && currentContext.controllerType === "resolver" ? executeContext.options.resolverId : currentContext.controllerType === "resolver" ? currentContext.resolverName : void 0
|
|
76
|
+
} : {
|
|
77
|
+
controllerType: executeContext.parent ? "modelResolver" : "resolver",
|
|
78
|
+
viewer: executeContext.viewer,
|
|
79
|
+
params: executeContext.params,
|
|
80
|
+
parentData: executeContext.parent,
|
|
81
|
+
modelResolverName: executeContext.parent ? executeContext.options.resolverId : void 0,
|
|
82
|
+
resolverName: !executeContext.parent ? executeContext.options.resolverId : void 0
|
|
83
|
+
};
|
|
84
|
+
const result = await runWithOrionAsyncContext(context, async () => {
|
|
85
|
+
return await getResultWithMiddlewares(executeContext);
|
|
86
|
+
});
|
|
68
87
|
if (options.returns) {
|
|
69
88
|
return await clean(options.returns, result);
|
|
70
89
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/createResolverMiddleware.ts","../src/resolver/getArgs.ts","../src/resolver/getExecute/index.ts","../src/resolver/getExecute/getResultWithMiddlewares.ts","../src/resolver/getExecute/getResult.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","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 {clean, cleanAndValidate} from '@orion-js/schema'\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: options.params\n ? await cleanAndValidate(options.params, executeParams.params ?? {})\n : (executeParams.params ?? {}),\n viewer: executeParams.viewer || {},\n info: executeParams.info || {},\n parent: executeParams.parent,\n options: options,\n }\n\n const result = await getResultWithMiddlewares(executeOptions)\n\n if (options.returns) {\n return await clean(options.returns, result)\n }\n\n return result\n }\n\n return execute\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 {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 return await executeResolver()\n}\n","import getExecute from './getExecute'\nimport {generateId} from '@orion-js/helpers'\nimport {GlobalResolverOptions, ModelResolver, ModelResolverOptions, GlobalResolver} from './types'\nimport {getResolverArgs} from './getArgs'\nimport {getSchemaFromAnyOrionForm, SchemaFieldType} from '@orion-js/schema'\n\nfunction dynamicCreateResolver(options: any) {\n options.params = getSchemaFromAnyOrionForm(options.params)\n options.returns = getSchemaFromAnyOrionForm(options.returns)\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 = any,\n TReturns extends SchemaFieldType = any,\n TViewer = any,\n TInfo = any,\n>(\n options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>,\n): GlobalResolver<TParams, TReturns, TViewer, TInfo> => {\n return dynamicCreateResolver(options)\n}\n\nconst createModelResolver = <\n TItem = any,\n TParams extends SchemaFieldType = any,\n TReturns extends SchemaFieldType = any,\n TViewer = any,\n TInfo = any,\n>(\n options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>,\n): ModelResolver<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":";AAEO,SAAS,yBAAyB,YAAgC;AACvE,SAAO;AACT;;;ACJO,SAAS,mBAAmB,MAAa;AAC9C,MAAI,KAAK,WAAW,GAAG;AACrB,WAAO;AAAA,MACL,QAAQ,KAAK,CAAC;AAAA,MACd,QAAQ,KAAK,CAAC,KAAK,CAAC;AAAA,MACpB,QAAQ,KAAK,CAAC,KAAK,CAAC;AAAA,MACpB,MAAM,KAAK,CAAC,KAAK,CAAC;AAAA,IACpB;AAAA,EACF;AACA,MAAI,KAAK,SAAS,GAAG;AACnB,WAAO;AAAA,MACL,QAAQ,KAAK,CAAC,KAAK,CAAC;AAAA,MACpB,QAAQ,KAAK,CAAC,KAAK,CAAC;AAAA,MACpB,MAAM,KAAK,CAAC,KAAK,CAAC;AAAA,IACpB;AAAA,EACF;AACA,QAAM,IAAI,MAAM,kDAAkD;AACpE;;;ACjBA,SAAQ,OAAO,wBAAuB;;;ACAtC,SAAQ,0BAAyB;;;ACEjC,eAAO,kBAAwB,gBAAgC;AAC7D,QAAM,EAAC,QAAQ,QAAQ,QAAQ,MAAM,QAAO,IAAI;AAChD,QAAM,kBAAkB,YAA0B;AAChD,UAAM,aAAa,QAAQ;AAC3B,QAAI,QAAQ;AACV,aAAO,MAAM,WAAW,QAAQ,QAAQ,QAAQ,IAAI;AAAA,IACtD;AACA,WAAO,MAAM,WAAW,QAAQ,QAAQ,IAAI;AAAA,EAC9C;AAEA,SAAO,MAAM,gBAAgB;AAC/B;;;ADRA,eAAsB,yBAAyB,gBAAgC;AAC7E,QAAM,oBAAoB,yBAAyB,OAAMA,oBAAkB;AACzE,WAAO,MAAM,kBAAUA,eAAc;AAAA,EACvC,CAAC;AAED,QAAM,sBAAsB,mBAAmB;AAAA,IAC7C,GAAI,eAAe,QAAQ,eAAe,CAAC;AAAA,IAC3C;AAAA,EACF,CAAC;AAED,SAAO,MAAM,oBAAoB,cAAc;AACjD;;;ADZe,SAAR,WAA4B,SAA0B;AAC3D,QAAM,UAAmB,OAAM,kBAAiB;AAC9C,UAAM,iBAAiC;AAAA,MACrC,QAAQ,QAAQ,SACZ,MAAM,iBAAiB,QAAQ,QAAQ,cAAc,UAAU,CAAC,CAAC,IAChE,cAAc,UAAU,CAAC;AAAA,MAC9B,QAAQ,cAAc,UAAU,CAAC;AAAA,MACjC,MAAM,cAAc,QAAQ,CAAC;AAAA,MAC7B,QAAQ,cAAc;AAAA,MACtB;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,yBAAyB,cAAc;AAE5D,QAAI,QAAQ,SAAS;AACnB,aAAO,MAAM,MAAM,QAAQ,SAAS,MAAM;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;;;AGzBA,SAAQ,kBAAiB;AAGzB,SAAQ,iCAAiD;AAEzD,SAAS,sBAAsB,SAAc;AAC3C,UAAQ,SAAS,0BAA0B,QAAQ,MAAM;AACzD,UAAQ,UAAU,0BAA0B,QAAQ,OAAO;AAE3D,MAAI,CAAC,QAAQ,YAAY;AACvB,YAAQ,aAAa,WAAW;AAAA,EAClC;AAEA,MAAI,CAAC,QAAQ,aAAa;AACxB,YAAQ,cAAc,CAAC;AAAA,EACzB;AAEA,QAAM,UAAU,WAAW,OAAO;AAElC,QAAM,UAAU,UAAU,SAAgB;AACxC,UAAM,SAAc,gBAAgB,GAAG,IAAI;AAC3C,WAAO,MAAM,QAAQ,MAAM;AAAA,EAC7B;AAEA,QAAMC,YAAW;AAAA,IACf,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF;AAEA,SAAOA;AACT;AAEA,IAAM,iBAAiB,CAMrB,YACsD;AACtD,SAAO,sBAAsB,OAAO;AACtC;AAEA,IAAM,sBAAsB,CAO1B,YAC4D;AAC5D,SAAO,sBAAsB,OAAO;AACtC;AAKA,IAAM,WAAW;AAKjB,IAAM,gBAAgB;;;AChDf,SAAS,6BAId,SAA0E;AAC1E,QAAM,EAAC,MAAM,QAAQ,UAAS,IAAI;AAClC,SAAO;AAAA,IACL,aAAa;AAAA,IACb,aAAa;AAAA,IACb,GAAG;AAAA,EACL;AACF;AAKO,SAAS,+BAId,MAAa,WAA2B;AACxC,QAAM,UAAU,EAAC,GAAG,KAAI;AAExB,aAAW,gBAAgB,WAAW;AACpC,YAAQ,YAAY,IAAI,IAAI,SAAgB,UAAU,YAAY,EAAE,QAAQ,SAAS,GAAG,IAAI;AAAA,EAC9F;AAEA,SAAO;AAGT;","names":["executeOptions","resolver"]}
|
|
1
|
+
{"version":3,"sources":["../src/createResolverMiddleware.ts","../src/resolver/getArgs.ts","../src/resolver/getExecute/index.ts","../src/resolver/getExecute/getResultWithMiddlewares.ts","../src/resolver/getExecute/getResult.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","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 {clean, cleanAndValidate} from '@orion-js/schema'\nimport {getOrionAsyncContext, runWithOrionAsyncContext} from '@orion-js/logger'\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 executeContext: ExecuteOptions = {\n params: options.params\n ? await cleanAndValidate(options.params, executeParams.params ?? {})\n : (executeParams.params ?? {}),\n viewer: executeParams.viewer || {},\n info: executeParams.info || {},\n parent: executeParams.parent,\n options: options,\n }\n\n const currentContext = getOrionAsyncContext()\n\n const context = currentContext\n ? {\n ...currentContext,\n viewer: executeContext.viewer,\n params: executeContext.params,\n parentData: executeContext.parent,\n modelResolverName: executeContext.parent\n ? executeContext.options.resolverId\n : currentContext.controllerType === 'modelResolver'\n ? currentContext.modelResolverName\n : undefined,\n resolverName:\n !executeContext.parent && currentContext.controllerType === 'resolver'\n ? executeContext.options.resolverId\n : currentContext.controllerType === 'resolver'\n ? currentContext.resolverName\n : undefined,\n }\n : {\n controllerType: executeContext.parent ? 'modelResolver' : 'resolver',\n viewer: executeContext.viewer,\n params: executeContext.params,\n parentData: executeContext.parent,\n modelResolverName: executeContext.parent ? executeContext.options.resolverId : undefined,\n resolverName: !executeContext.parent ? executeContext.options.resolverId : undefined,\n }\n\n const result = await runWithOrionAsyncContext(context, async () => {\n return await getResultWithMiddlewares(executeContext)\n })\n\n if (options.returns) {\n return await clean(options.returns, result)\n }\n\n return result\n }\n\n return execute\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 {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 return await executeResolver()\n}\n","import getExecute from './getExecute'\nimport {generateId} from '@orion-js/helpers'\nimport {GlobalResolverOptions, ModelResolver, ModelResolverOptions, GlobalResolver} from './types'\nimport {getResolverArgs} from './getArgs'\nimport {getSchemaFromAnyOrionForm, SchemaFieldType} from '@orion-js/schema'\n\nfunction dynamicCreateResolver(options: any) {\n options.params = getSchemaFromAnyOrionForm(options.params)\n options.returns = getSchemaFromAnyOrionForm(options.returns)\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 = any,\n TReturns extends SchemaFieldType = any,\n TViewer = any,\n TInfo = any,\n>(\n options: GlobalResolverOptions<TParams, TReturns, TViewer, TInfo>,\n): GlobalResolver<TParams, TReturns, TViewer, TInfo> => {\n return dynamicCreateResolver(options)\n}\n\nconst createModelResolver = <\n TItem = any,\n TParams extends SchemaFieldType = any,\n TReturns extends SchemaFieldType = any,\n TViewer = any,\n TInfo = any,\n>(\n options: ModelResolverOptions<TItem, TParams, TReturns, TViewer, TInfo>,\n): ModelResolver<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":["executeOptions","resolver"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orion-js/resolvers",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.14",
|
|
4
4
|
"main": "./dist/index.cjs",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"author": "nicolaslopezj",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@orion-js/helpers": "4.0.
|
|
13
|
-
"@orion-js/schema": "4.0.
|
|
12
|
+
"@orion-js/helpers": "4.0.3",
|
|
13
|
+
"@orion-js/schema": "4.0.14"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@orion-js/logger": "4.0.
|
|
16
|
+
"@orion-js/logger": "4.0.6"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@types/node": "^18.0.0",
|