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>
This commit is contained in:
@ -0,0 +1,55 @@
|
||||
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[];
|
||||
}
|
||||
Reference in New Issue
Block a user