UNPKG

@dossierhq/graphql

Version:

A library for creating GraphQL servers with Dossier.

57 lines (56 loc) 4.94 kB
import { type Component, type ComponentTypeSpecification, type DossierClient, type Entity, type EntityCreate, type EntityTypeSpecification, type EntityUpdate, type ErrorType, type PublishedComponentTypeSpecification, type PublishedDossierClient, type PublishedEntity, type PublishedEntityTypeSpecification, type PublishedSchema, type Result, type Schema } from '@dossierhq/core'; import { GraphQLObjectType, GraphQLSchema, type GraphQLFieldConfig, type GraphQLFieldConfigMap, type GraphQLInputFieldConfigMap, type GraphQLSchemaConfig } from 'graphql'; import { TypeRepository } from './TypeRepository.js'; export interface SessionGraphQLContext { client: Result<DossierClient<Entity> | DossierClient<Entity<string, object>, Component<string, object>>, typeof ErrorType.NotAuthenticated>; publishedClient: Result<PublishedDossierClient<PublishedEntity> | PublishedDossierClient<PublishedEntity<string, object>, Component<string, object>>, typeof ErrorType.NotAuthenticated>; } export declare class GraphQLSchemaGenerator<TContext extends SessionGraphQLContext> extends TypeRepository { private readonly schema; private readonly publishedSchema; constructor({ schema, publishedSchema, }: { schema: Schema | null; publishedSchema: PublishedSchema | null; }); addSharedSupportingTypes(): void; addPublishedSupportingTypes(publishedSchema: PublishedSchema): void; addPublishedEntityTypes(publishedSchema: PublishedSchema): void; addPublishedEntityType(entitySpec: PublishedEntityTypeSpecification): void; addPublishedComponentTypes(publishedSchema: PublishedSchema): void; addPublishedComponentType(componentSpec: PublishedComponentTypeSpecification): void; addAdminSupportingTypes(schema: Schema): void; addChangelogSupportingTypes(): void; addEntityTypes(schema: Schema): void; addEntityType(entitySpec: EntityTypeSpecification): void; addAdminComponentTypes(schema: Schema): void; addAdminComponentType(componentSpec: ComponentTypeSpecification): void; addTypeSpecificationOutputFields<TSource>(typeSpec: PublishedEntityTypeSpecification | PublishedComponentTypeSpecification | EntityTypeSpecification | ComponentTypeSpecification, fields: GraphQLFieldConfigMap<TSource, TContext>, isAdmin: boolean): void; addTypeSpecificationInputFields(typeSpec: EntityTypeSpecification | ComponentTypeSpecification, fields: GraphQLInputFieldConfigMap): void; buildQueryFieldNode<TSource>(publishedSchema: PublishedSchema): GraphQLFieldConfig<TSource, TContext>; buildQueryFieldNodes<TSource>(publishedSchema: PublishedSchema): GraphQLFieldConfig<TSource, TContext>; buildQueryFieldPublishedEntity<TSource>(publishedSchema: PublishedSchema): GraphQLFieldConfig<TSource, TContext>; buildQueryFieldAdminEntity<TSource>(schema: Schema): GraphQLFieldConfig<TSource, TContext>; buildQueryFieldAdminEntityList<TSource>(schema: Schema): GraphQLFieldConfig<TSource, TContext>; buildQueryFieldAdminEntitiesSample<TSource>(schema: Schema): GraphQLFieldConfig<TSource, TContext>; buildQueryFieldAdminEntities<TSource>(schema: Schema): GraphQLFieldConfig<TSource, TContext>; buildQueryFieldPublishedSampleEntities<TSource>(publishedSchema: PublishedSchema): GraphQLFieldConfig<TSource, TContext>; buildQueryFieldPublishedEntities<TSource>(publishedSchema: PublishedSchema): GraphQLFieldConfig<TSource, TContext>; buildQueryFieldChangelogEvents<TSource>(): GraphQLFieldConfig<TSource, TContext>; buildQueryType<TSource>(): GraphQLObjectType; buildMutationCreateEntity<TSource>(schema: Schema, entityName: string): GraphQLFieldConfig<TSource, TContext>; buildMutationUpdateEntity<TSource>(schema: Schema, entityName: string): GraphQLFieldConfig<TSource, TContext>; buildMutationUpsertEntity<TSource>(schema: Schema, entityName: string): GraphQLFieldConfig<TSource, TContext>; buildMutationAcquireAdvisoryLock<TSource>(): GraphQLFieldConfig<TSource, TContext>; buildMutationRenewAdvisoryLock<TSource>(): GraphQLFieldConfig<TSource, TContext>; buildMutationReleaseAdvisoryLock<TSource>(): GraphQLFieldConfig<TSource, TContext>; resolveJsonInputFields(schema: Schema, entity: EntityCreate | EntityUpdate, entityTypeName: string): void; decodeJsonInputField(fieldPrefix: string, fieldValue: unknown): unknown; buildMutationPublishEntities<TSource>(): GraphQLFieldConfig<TSource, TContext>; buildMutationUnpublishEntities<TSource>(): GraphQLFieldConfig<TSource, TContext>; buildMutationArchiveEntity<TSource>(): GraphQLFieldConfig<TSource, TContext>; buildMutationUnarchiveEntity<TSource>(): GraphQLFieldConfig<TSource, TContext>; buildMutationDeleteEntities<TSource>(): GraphQLFieldConfig<TSource, TContext>; buildMutationType<TSource>(schema: Schema): GraphQLObjectType | null; buildSchemaConfig<TSource>(): GraphQLSchemaConfig; buildSchema<TSource>(): GraphQLSchema; }