{"version":3,"file":"defaultResolver.cjs","names":[],"sources":["../src/defaultResolver.ts"],"sourcesContent":["import { parseType, type GraphQLResolveInfo } from 'graphql'\nimport {\n  isListType,\n  type GeneDefaultResolverArgs,\n  type GeneTypeConfig,\n  type GraphqlToTypescript,\n} from 'graphql-gene'\nimport type { GeneContext } from 'graphql-gene/context'\nimport type { ModelStatic } from 'sequelize'\nimport { Model } from 'sequelize-typescript'\nimport { getQueryInclude, getFieldFindOptions } from './utils'\n\nexport async function defaultResolver<\n  M,\n  ModelKey extends string,\n  TSource = Record<string, unknown> | undefined,\n  TContext = GeneContext,\n  TArgDefs extends Record<string, string> = Record<string, string>,\n>(options: {\n  model: M\n  modelKey: ModelKey\n  config: GeneTypeConfig<TSource, TContext, TArgDefs>\n  args: GeneDefaultResolverArgs<M>\n  info: GraphQLResolveInfo\n}) {\n  const model = options.model as ModelStatic<Model>\n\n  const isList = isListType(parseType(options.config.returnType))\n  const findFn = isList ? 'findAll' : 'findOne'\n\n  const topLevelFindOptions = getFieldFindOptions({ args: options.args, isList })\n  const includeOptions = getQueryInclude(options.info)\n\n  return (await model[findFn]({\n    ...topLevelFindOptions,\n    ...includeOptions,\n  })) as GraphqlToTypescript<ModelKey>\n}\n"],"mappings":"yNAYA,eAAsB,EAMpB,EAMC,CACD,IAAM,EAAQ,EAAQ,MAEhB,GAAA,EAAA,EAAA,aAAA,EAAA,EAAA,WAA8B,EAAQ,OAAO,WAAW,CAAC,CACzD,EAAS,EAAS,UAAY,UAE9B,EAAsB,EAAA,oBAAoB,CAAE,KAAM,EAAQ,KAAM,SAAQ,CAAC,CACzE,EAAiB,EAAA,gBAAgB,EAAQ,KAAK,CAEpD,OAAQ,MAAM,EAAM,GAAQ,CAC1B,GAAG,EACH,GAAG,EACJ,CAAC"}