SchemaCRUDPlugin
Graphback CRUD operations plugin
Plugins adds additional Queries, Mutations and Subscriptions into the Schema along with required input types and scalars. Plugin can be used automatically define best patterns for CRUD operations on top of GraphQL Schema Plugin checkes all types annotated with model
Used graphql metadata:
- model: marks type to be processed by CRUD generator
- crud: controls what types of operations can be generated. For example crud.update: false will disable updates for type
#
HierarchyGraphbackPlugin
↳ SchemaCRUDPlugin
#
Index#
Constructors#
Properties#
Methods- addCreateMutationResolver
- addCreateSubscriptionResolver
- addDeleteMutationResolver
- addDeleteSubscriptionResolver
- addFindOneQueryResolver
- addFindQueryResolver
- addMutationResolvers
- addOneToManyResolver
- addOneToOneResolver
- addQueryResolvers
- addRelationshipResolvers
- addSubscriptionResolvers
- addUpdateMutationResolver
- addUpdateSubscriptionResolver
- addVersionedMetadataFields
- buildSchemaForModels
- buildSchemaModelRelationships
- createMutations
- createQueries
- createResolvers
- createResources
- createSchema
- createSchemaCRUDTypes
- createSubscriptions
- getPluginName
- logError
- logWarning
- transformSchema
- transformSchemaToString
#
Constructors#
constructor+ new SchemaCRUDPlugin(pluginConfig?
: SchemaCRUDPluginConfig): SchemaCRUDPlugin
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:42
Parameters:
Name | Type |
---|---|
pluginConfig? | SchemaCRUDPluginConfig |
Returns: SchemaCRUDPlugin
#
PropertiesPrivate
pluginConfig#
• pluginConfig: SchemaCRUDPluginConfig
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:42
#
MethodsProtected
addCreateMutationResolver#
▸ addCreateMutationResolver(model
: ModelDefinition, mutationObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:501
Creates a Create mutation resolver field
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model GraphQL object type |
mutationObj | IObjectTypeResolver | Mutation resolver object |
Returns: void
Protected
addCreateSubscriptionResolver#
▸ addCreateSubscriptionResolver(modelType
: GraphQLObjectType, subscriptionObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:596
Creates a Create Subscription resolver field
Parameters:
Name | Type | Description |
---|---|---|
modelType | GraphQLObjectType | Model GraphQL object type |
subscriptionObj | IObjectTypeResolver | - |
Returns: void
Protected
addDeleteMutationResolver#
▸ addDeleteMutationResolver(model
: ModelDefinition, mutationObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:540
Creates a Delete Mutation resolver field
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model definition object |
mutationObj | IObjectTypeResolver | Mutation resolver object |
Returns: void
Protected
addDeleteSubscriptionResolver#
▸ addDeleteSubscriptionResolver(modelType
: GraphQLObjectType, subscriptionObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:638
Creates a Delete Subscription resolver field
Parameters:
Name | Type | Description |
---|---|---|
modelType | GraphQLObjectType | Model GraphQL object type |
subscriptionObj | IObjectTypeResolver | - |
Returns: void
Protected
addFindOneQueryResolver#
▸ addFindOneQueryResolver(model
: ModelDefinition, queryObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:575
Creates a FindOne Query resolver
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model definition object |
queryObj | IObjectTypeResolver | - |
Returns: void
Protected
addFindQueryResolver#
▸ addFindQueryResolver(model
: ModelDefinition, queryObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:559
Creates a Find Query resolver field
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model definition object |
queryObj | IObjectTypeResolver | - |
Returns: void
Protected
addMutationResolvers#
▸ addMutationResolvers(model
: ModelDefinition, mutationObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:441
Create Mutation resolver fields
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | The model definition with CRUD config and GraphQL typr |
mutationObj | IObjectTypeResolver | Mutation resolver object |
Returns: void
Protected
addOneToManyResolver#
▸ addOneToManyResolver(relationship
: FieldRelationshipMetadata, resolverObj
: IResolvers, modelNameToModelDefinition
: any): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:660
Creates a OneToMany Relationship resolver field
Parameters:
Name | Type | Description |
---|---|---|
relationship | FieldRelationshipMetadata | - |
resolverObj | IResolvers | Resolvers object |
modelNameToModelDefinition | any | model type name to its definition for quick search |
Returns: void
Protected
addOneToOneResolver#
▸ addOneToOneResolver(relationship
: FieldRelationshipMetadata, resolverObj
: IResolvers, modelNameToModelDefinition
: any): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:691
Creates a OneToOne/ManyToOne Relationship resolver field
Parameters:
Name | Type | Description |
---|---|---|
relationship | FieldRelationshipMetadata | - |
resolverObj | IResolvers | Resolvers object |
modelNameToModelDefinition | any | model type name to its definition for quick search |
Returns: void
Protected
addQueryResolvers#
▸ addQueryResolvers(model
: ModelDefinition, queryObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:426
Create Query resolver fields
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | The model definition with CRUD config and GraphQL typr |
queryObj | IObjectTypeResolver | Query resolver object |
Returns: void
Protected
addRelationshipResolvers#
▸ addRelationshipResolvers(model
: ModelDefinition, resolversObj
: IResolvers, modelNameToModelDefinition
: any): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:480
Create relationship resolver fields
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model definition with relationship metadata |
resolversObj | IResolvers | Resolvers object |
modelNameToModelDefinition | any | model type name to its definition for quick search |
Returns: void
Protected
addSubscriptionResolvers#
▸ addSubscriptionResolvers(model
: ModelDefinition, subscriptionObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:459
Create Subscription resolver fields
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | The model definition with CRUD config and GraphQL typr |
subscriptionObj | IObjectTypeResolver | Subscription resolver object |
Returns: void
Protected
addUpdateMutationResolver#
▸ addUpdateMutationResolver(model
: ModelDefinition, mutationObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:521
Creates an Update mutation resolver
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model definition object |
mutationObj | IObjectTypeResolver | Mutation resolver object |
Returns: void
Protected
addUpdateSubscriptionResolver#
▸ addUpdateSubscriptionResolver(modelType
: GraphQLObjectType, subscriptionObj
: IObjectTypeResolver): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:617
Creates an Update Subscription resolver field
Parameters:
Name | Type | Description |
---|---|---|
modelType | GraphQLObjectType | Model GraphQL object type |
subscriptionObj | IObjectTypeResolver | - |
Returns: void
Protected
addVersionedMetadataFields#
▸ addVersionedMetadataFields(schemaComposer
: SchemaComposer‹any›, models
: ModelDefinition[]): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:350
Parameters:
Name | Type |
---|---|
schemaComposer | SchemaComposer‹any› |
models | ModelDefinition[] |
Returns: void
Protected
buildSchemaForModels#
▸ buildSchemaForModels(schemaComposer
: SchemaComposer‹any›, models
: ModelDefinition[]): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:145
Parameters:
Name | Type |
---|---|
schemaComposer | SchemaComposer‹any› |
models | ModelDefinition[] |
Returns: void
Private
buildSchemaModelRelationships#
▸ buildSchemaModelRelationships(schemaComposer
: SchemaComposer‹any›, models
: ModelDefinition[]): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:769
Add relationship fields to GraphQL model types
Parameters:
Name | Type | Description |
---|---|---|
schemaComposer | SchemaComposer‹any› | - |
models | ModelDefinition[] |
Returns: void
Protected
createMutations#
▸ createMutations(model
: ModelDefinition, schemaComposer
: SchemaComposer‹any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:246
Parameters:
Name | Type |
---|---|
model | ModelDefinition |
schemaComposer | SchemaComposer‹any› |
Returns: void
Protected
createQueries#
▸ createQueries(model
: ModelDefinition, schemaComposer
: SchemaComposer‹any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:308
Parameters:
Name | Type |
---|---|
model | ModelDefinition |
schemaComposer | SchemaComposer‹any› |
Returns: void
#
createResolvers▸ createResolvers(metadata
: GraphbackCoreMetadata): IResolvers
Overrides void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:75
Creates CRUD resolvers
Parameters:
Name | Type | Description |
---|---|---|
metadata | GraphbackCoreMetadata | Core metatata containing all model information |
Returns: IResolvers
#
createResources▸ createResources(metadata
: GraphbackCoreMetadata): void
Overrides void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:114
Parameters:
Name | Type |
---|---|
metadata | GraphbackCoreMetadata |
Returns: void
Protected
createSchema#
▸ createSchema(queryTypes
: any, mutationTypes
: any, subscriptionTypes
: any): GraphQLSchema‹›
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:217
Parameters:
Name | Type |
---|---|
queryTypes | any |
mutationTypes | any |
subscriptionTypes | any |
Returns: GraphQLSchema‹›
Private
createSchemaCRUDTypes#
▸ createSchemaCRUDTypes(schemaComposer
: SchemaComposer‹any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:738
Parameters:
Name | Type |
---|---|
schemaComposer | SchemaComposer‹any› |
Returns: void
Protected
createSubscriptions#
▸ createSubscriptions(model
: ModelDefinition, schemaComposer
: SchemaComposer‹any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:160
Parameters:
Name | Type |
---|---|
model | ModelDefinition |
schemaComposer | SchemaComposer‹any› |
Returns: void
#
getPluginName▸ getPluginName(): string
Overrides void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:141
Returns: string
Protected
logError#
▸ logError(message
: string): void
Inherited from SchemaCRUDPlugin.logError
Defined in graphback-core/types/plugin/GraphbackPlugin.d.ts:37
Parameters:
Name | Type |
---|---|
message | string |
Returns: void
Protected
logWarning#
▸ logWarning(message
: string): void
Inherited from SchemaCRUDPlugin.logWarning
Defined in graphback-core/types/plugin/GraphbackPlugin.d.ts:36
Parameters:
Name | Type |
---|---|
message | string |
Returns: void
#
transformSchema▸ transformSchema(metadata
: GraphbackCoreMetadata): GraphQLSchema
Overrides void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:51
Parameters:
Name | Type |
---|---|
metadata | GraphbackCoreMetadata |
Returns: GraphQLSchema
Protected
transformSchemaToString#
▸ transformSchemaToString(schema
: GraphQLSchema, fileExtension
: string): string
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:404
Print schema as a string and format in one of the available languages
Parameters:
Name | Type | Description |
---|---|---|
schema | GraphQLSchema | - |
fileExtension | string |
Returns: string