Files
twenty/server/src/tenant/resolver-builder/interfaces/resolvers-builder.interface.ts
Jérémy M 1ed4965a95 feat: refactor schema builder and resolver builder (#2215)
* feat: wip refactor schema builder

* feat: wip store types and first queries generation

* feat: refactor schema-builder and resolver-builder

* fix: clean & small type fix

* fix: avoid breaking change

* fix: remove util from pg-graphql classes

* fix: required default fields

* Refactor frontend accordingly

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2023-11-03 17:16:37 +01:00

56 lines
1.4 KiB
TypeScript

import { GraphQLFieldResolver } from 'graphql';
import { resolverBuilderMethodNames } from 'src/tenant/resolver-builder/factories/factories';
import { Record, RecordFilter, RecordOrderBy } from './record.interface';
export type Resolver<Args = any> = GraphQLFieldResolver<any, any, Args>;
export interface FindManyResolverArgs<
Filter extends RecordFilter = RecordFilter,
OrderBy extends RecordOrderBy = RecordOrderBy,
> {
first?: number;
last?: number;
before?: string;
after?: string;
filter?: Filter;
orderBy?: OrderBy;
}
export interface FindOneResolverArgs<Filter = any> {
filter?: Filter;
}
export interface CreateOneResolverArgs<Data extends Record = Record> {
data: Data;
}
export interface CreateManyResolverArgs<Data extends Record = Record> {
data: Data[];
}
export interface UpdateOneResolverArgs<Data extends Record = Record> {
id: string;
data: Data;
}
export interface DeleteOneResolverArgs {
id: string;
}
export type ResolverBuilderQueryMethodNames =
(typeof resolverBuilderMethodNames.queries)[number];
export type ResolverBuilderMutationMethodNames =
(typeof resolverBuilderMethodNames.mutations)[number];
export type ResolverBuilderMethodNames =
| ResolverBuilderQueryMethodNames
| ResolverBuilderMutationMethodNames;
export interface ResolverBuilderMethods {
readonly queries: readonly ResolverBuilderQueryMethodNames[];
readonly mutations: readonly ResolverBuilderMutationMethodNames[];
}