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:41
Parameters:
Name | Type |
---|---|
pluginConfig? | SchemaCRUDPluginConfig |
Returns: SchemaCRUDPlugin
#
PropertiesPrivate
pluginConfig#
• pluginConfig: SchemaCRUDPluginConfig
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:41
#
MethodsProtected
addCreateMutationResolver#
▸ addCreateMutationResolver(model
: ModelDefinition, mutationObj
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:477
Creates a Create mutation resolver field
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model GraphQL object type |
mutationObj | IFieldResolver‹any, any› | Mutation resolver object |
Returns: void
Protected
addCreateSubscriptionResolver#
▸ addCreateSubscriptionResolver(modelType
: GraphQLObjectType, subscriptionObj
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:603
Creates a Create Subscription resolver field
Parameters:
Name | Type | Description |
---|---|---|
modelType | GraphQLObjectType | Model GraphQL object type |
subscriptionObj | IFieldResolver‹any, any› | - |
Returns: void
Protected
addDeleteMutationResolver#
▸ addDeleteMutationResolver(model
: ModelDefinition, mutationObj
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:528
Creates a Delete Mutation resolver field
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model definition object |
mutationObj | IFieldResolver‹any, any› | Mutation resolver object |
Returns: void
Protected
addDeleteSubscriptionResolver#
▸ addDeleteSubscriptionResolver(modelType
: GraphQLObjectType, subscriptionObj
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:645
Creates a Delete Subscription resolver field
Parameters:
Name | Type | Description |
---|---|---|
modelType | GraphQLObjectType | Model GraphQL object type |
subscriptionObj | IFieldResolver‹any, any› | - |
Returns: void
Protected
addFindOneQueryResolver#
▸ addFindOneQueryResolver(model
: ModelDefinition, queryObj
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:576
Creates a FindOne Query resolver
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model definition object |
queryObj | IFieldResolver‹any, any› | - |
Returns: void
Protected
addFindQueryResolver#
▸ addFindQueryResolver(model
: ModelDefinition, queryObj
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:553
Creates a Find Query resolver field
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model definition object |
queryObj | IFieldResolver‹any, any› | - |
Returns: void
Protected
addMutationResolvers#
▸ addMutationResolvers(model
: ModelDefinition, mutationObj
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:417
Create Mutation resolver fields
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | The model definition with CRUD config and GraphQL typr |
mutationObj | IFieldResolver‹any, any› | Mutation resolver object |
Returns: void
Protected
addOneToManyResolver#
▸ addOneToManyResolver(relationship
: FieldRelationshipMetadata, resolverObj
: IResolvers, modelNameToModelDefinition
: any): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:667
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:700
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
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:402
Create Query resolver fields
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | The model definition with CRUD config and GraphQL typr |
queryObj | IFieldResolver‹any, any› | Query resolver object |
Returns: void
Protected
addRelationshipResolvers#
▸ addRelationshipResolvers(model
: ModelDefinition, resolversObj
: IResolvers, modelNameToModelDefinition
: any): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:456
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
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:435
Create Subscription resolver fields
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | The model definition with CRUD config and GraphQL typr |
subscriptionObj | IFieldResolver‹any, any› | Subscription resolver object |
Returns: void
Protected
addUpdateMutationResolver#
▸ addUpdateMutationResolver(model
: ModelDefinition, mutationObj
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:503
Creates an Update mutation resolver
Parameters:
Name | Type | Description |
---|---|---|
model | ModelDefinition | Model definition object |
mutationObj | IFieldResolver‹any, any› | Mutation resolver object |
Returns: void
Protected
addUpdateSubscriptionResolver#
▸ addUpdateSubscriptionResolver(modelType
: GraphQLObjectType, subscriptionObj
: IFieldResolver‹any, any›): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:624
Creates an Update Subscription resolver field
Parameters:
Name | Type | Description |
---|---|---|
modelType | GraphQLObjectType | Model GraphQL object type |
subscriptionObj | IFieldResolver‹any, any› | - |
Returns: void
Protected
addVersionedMetadataFields#
▸ addVersionedMetadataFields(schemaComposer
: SchemaComposer‹any›, models
: ModelDefinition[]): void
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:352
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:752
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:248
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:310
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:74
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:219
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:721
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:162
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:50
Parameters:
Name | Type |
---|---|
metadata | GraphbackCoreMetadata |
Returns: GraphQLSchema
Protected
transformSchemaToString#
▸ transformSchemaToString(schema
: GraphQLSchema, fileExtension
: string): string
Defined in graphback-codegen-schema/src/SchemaCRUDPlugin.ts:380
Print schema as a string and format in one of the available languages
Parameters:
Name | Type | Description |
---|---|---|
schema | GraphQLSchema | - |
fileExtension | string |
Returns: string