@zuu/owl
Version:
Zuu's Experimental GraphQL Implementation
39 lines (38 loc) • 1.31 kB
TypeScript
import { TypeValueThunk, TypeOptions, ClassTypeResolver, SubscriptionFilterFunc } from "../../decorators/types";
import { ParamMetadata } from "./param-metadata";
import { Middleware } from "../../interfaces/Middleware";
export interface BaseResolverMetadata {
methodName: string;
schemaName: string;
target: Function;
handler: Function | undefined;
resolverClassMetadata?: ResolverClassMetadata;
params?: ParamMetadata[];
roles?: any[];
middlewares?: Array<Middleware<any>>;
}
export interface ResolverMetadata extends BaseResolverMetadata {
getReturnType: TypeValueThunk;
handler: Function;
returnTypeOptions: TypeOptions;
description?: string;
deprecationReason?: string;
}
export interface FieldResolverMetadata extends BaseResolverMetadata {
kind: "internal" | "external";
description?: string;
deprecationReason?: string;
getType?: TypeValueThunk;
typeOptions?: TypeOptions;
getObjectType?: ClassTypeResolver;
}
export interface SubscriptionResolverMetadata extends ResolverMetadata {
topics: string[];
filter: SubscriptionFilterFunc | undefined;
}
export interface ResolverClassMetadata {
target: Function;
getObjectType: ClassTypeResolver;
isAbstract?: boolean;
superResolver?: ResolverClassMetadata;
}