MCPcopy Create free account
hub / github.com/chainjet/platform / BaseResolver

Function BaseResolver

libs/common/src/base/base.resolver.ts:68–112  ·  view source on GitHub ↗
(
  DTOClass: Class<DTO>,
  opts: CRUDResolverOpts<DTO, C, U, R, PS> = {},
)

Source from the content-addressed store, hash-verified

66}
67
68export const BaseResolver = <
69 DTO,
70 C extends DeepPartial<DTO> = DeepPartial<DTO>,
71 U extends DeepPartial<DTO> = DeepPartial<DTO>,
72 R extends ReadResolverOpts<DTO> = ReadResolverOpts<DTO>,
73 PS extends PagingStrategies = PagingStrategies.CURSOR,
74>(
75 DTOClass: Class<DTO>,
76 opts: CRUDResolverOpts<DTO, C, U, R, PS> = {},
77): ResolverClass<DTO, QueryService<DTO>, CRUDResolver<DTO, C, U, MergePagingStrategyOpts<DTO, R, PS>>> => {
78 // const { baseNameLower, pluralBaseNameLower, baseName } = getDTONames(DTOClass, opts.read);
79
80 // disable all many mutations by default
81 opts.create = opts.create ?? {}
82 if (opts.create.many?.disabled !== false) {
83 opts.create.many = { disabled: true }
84 }
85 opts.update = opts.update ?? {}
86 if (opts.update.many?.disabled !== false) {
87 opts.update.many = { disabled: true }
88 }
89 opts.delete = opts.delete ?? {}
90 if (opts.delete.many?.disabled !== false) {
91 opts.delete.many = { disabled: true }
92 }
93
94 // create default assembler service
95 class Service extends AssemblerQueryService<DTO, DTO> {
96 constructor(service: QueryService<DTO>) {
97 const assembler = getEntityAssembler(DTOClass, DTOClass)
98 super(assembler, service)
99 }
100 }
101
102 class CustomResolver extends CRUDResolver(DTOClass, opts) {
103 constructor(service: QueryService<DTO>) {
104 super(new Service(service))
105 }
106 }
107
108 // need to set class name so DI works properly
109 Object.defineProperty(CustomResolver, 'name', { value: getResolverToken(DTOClass), writable: false })
110
111 return CustomResolver
112}

Callers 15

UserResolverClass · 0.90
WorkflowRunResolverClass · 0.90
WorkflowResolverClass · 0.90
OrderResolverClass · 0.90
MenuResolverClass · 0.90
CampaignResolverClass · 0.90
AssistantResolverClass · 0.90
ContactResolverClass · 0.90

Calls 1

getResolverTokenFunction · 0.85

Tested by

no test coverage detected