@neo4j/graphql
Version:
A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations
69 lines • 3.15 kB
TypeScript
import type { DirectiveNode } from "graphql";
import type { AuthenticationAnnotation } from "./AuthenticationAnnotation";
import type { AuthorizationAnnotation } from "./AuthorizationAnnotation";
import type { CoalesceAnnotation } from "./CoalesceAnnotation";
import type { CustomResolverAnnotation } from "./CustomResolverAnnotation";
import type { CypherAnnotation } from "./CypherAnnotation";
import type { DefaultAnnotation } from "./DefaultAnnotation";
import type { FilterableAnnotation } from "./FilterableAnnotation";
import type { FulltextAnnotation } from "./FulltextAnnotation";
import { IDAnnotation } from "./IDAnnotation";
import type { JWTClaimAnnotation } from "./JWTClaimAnnotation";
import { JWTPayloadAnnotation } from "./JWTPayloadAnnotation";
import type { KeyAnnotation } from "./KeyAnnotation";
import type { LimitAnnotation } from "./LimitAnnotation";
import type { MutationAnnotation } from "./MutationAnnotation";
import type { PluralAnnotation } from "./PluralAnnotation";
import type { PopulatedByAnnotation } from "./PopulatedByAnnotation";
import { PrivateAnnotation } from "./PrivateAnnotation";
import type { QueryAnnotation } from "./QueryAnnotation";
import { RelayIDAnnotation } from "./RelayIDAnnotation";
import type { SelectableAnnotation } from "./SelectableAnnotation";
import type { SettableAnnotation } from "./SettableAnnotation";
import type { SortableAnnotation } from "./SortableAnnotation";
import type { SubscriptionAnnotation } from "./SubscriptionAnnotation";
import type { SubscriptionsAuthorizationAnnotation } from "./SubscriptionsAuthorizationAnnotation";
import type { TimestampAnnotation } from "./TimestampAnnotation";
import type { VectorAnnotation } from "./VectorAnnotation";
export interface Annotation {
readonly name: string;
}
type CheckAnnotationName<T> = {
[P in keyof T]: T[P] & {
name: P;
};
};
export type Annotations = CheckAnnotationName<{
authentication: AuthenticationAnnotation;
authorization: AuthorizationAnnotation;
coalesce: CoalesceAnnotation;
customResolver: CustomResolverAnnotation;
cypher: CypherAnnotation;
default: DefaultAnnotation;
filterable: FilterableAnnotation;
fulltext: FulltextAnnotation;
vector: VectorAnnotation;
id: IDAnnotation;
jwt: JWTPayloadAnnotation;
jwtClaim: JWTClaimAnnotation;
key: KeyAnnotation;
limit: LimitAnnotation;
mutation: MutationAnnotation;
plural: PluralAnnotation;
populatedBy: PopulatedByAnnotation;
private: PrivateAnnotation;
query: QueryAnnotation;
relayId: RelayIDAnnotation;
selectable: SelectableAnnotation;
settable: SettableAnnotation;
sortable: SortableAnnotation;
subscription: SubscriptionAnnotation;
subscriptionsAuthorization: SubscriptionsAuthorizationAnnotation;
timestamp: TimestampAnnotation;
}>;
export type AnnotationParser<T extends Annotation> = (firstDirective: DirectiveNode, directives: readonly DirectiveNode[]) => T;
export declare const annotationsParsers: {
[key in keyof Annotations]: AnnotationParser<Annotations[key]>;
};
export {};
//# sourceMappingURL=Annotation.d.ts.map