UNPKG

@kentico/kontent-schema-generator-graphql

Version:

GraphQL schema generator used to generate schema based on specified project.

145 lines 6.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var kontent_delivery_1 = require("@kentico/kontent-delivery"); var GraphQLSchemaModel = /** @class */ (function () { function GraphQLSchemaModel() { } /** * Create all field definition including depending types. * @returns {string[]} */ GraphQLSchemaModel.prototype.getFieldDefinitions = function () { return [GraphQLSchemaModel.systemType] .concat(Array.from(GraphQLSchemaModel.interfaces.values())) .concat(Array.from(GraphQLSchemaModel.helperTypes.values())) .concat(Array.from(GraphQLSchemaModel.elementTypes.values())); }; GraphQLSchemaModel.systemTypeName = 'SystemInfo'; GraphQLSchemaModel.contentItemInterfaceName = 'ContentItem'; GraphQLSchemaModel.textElementTypeName = 'TextElement'; GraphQLSchemaModel.numberElementTypeName = 'NumberElement'; GraphQLSchemaModel.dateTimeElementTypeName = 'DateTimeElement'; GraphQLSchemaModel.multipleChoiceElementTypeName = 'MultipleChoiceElement'; GraphQLSchemaModel.urlSlugElementTypeName = 'UrlSlugElement'; GraphQLSchemaModel.taxonomyElementTypeName = 'TaxonomyElement'; GraphQLSchemaModel.assetElementTypeName = 'AssetElement'; GraphQLSchemaModel.richTextElementTypeName = 'RichTextElement'; GraphQLSchemaModel.customElementTypeName = 'CustomElement'; GraphQLSchemaModel.linkedItemsElement = 'LinkedItemsElement'; GraphQLSchemaModel.elementTypeMapping = new Map([ [ kontent_delivery_1.ElementType.Text.toString(), GraphQLSchemaModel.textElementTypeName, ], [ kontent_delivery_1.ElementType.Number.toString(), GraphQLSchemaModel.numberElementTypeName, ], [ kontent_delivery_1.ElementType.DateTime.toString(), GraphQLSchemaModel.dateTimeElementTypeName, ], [ kontent_delivery_1.ElementType.MultipleChoice.toString(), GraphQLSchemaModel.multipleChoiceElementTypeName, ], [ kontent_delivery_1.ElementType.UrlSlug.toString(), GraphQLSchemaModel.urlSlugElementTypeName, ], [ kontent_delivery_1.ElementType.Taxonomy.toString(), GraphQLSchemaModel.taxonomyElementTypeName, ], [ kontent_delivery_1.ElementType.Asset.toString(), GraphQLSchemaModel.assetElementTypeName, ], [ kontent_delivery_1.ElementType.ModularContent.toString(), GraphQLSchemaModel.linkedItemsElement, ], [ kontent_delivery_1.ElementType.RichText.toString(), GraphQLSchemaModel.richTextElementTypeName, ], [ kontent_delivery_1.ElementType.Custom.toString(), GraphQLSchemaModel.customElementTypeName, ], ]); GraphQLSchemaModel.systemType = "type " + GraphQLSchemaModel.systemTypeName + " {\n id: String!\n name: String!\n codename: String!\n language: String!\n type: String!\n lastModified: String!\n}"; GraphQLSchemaModel.interfaces = new Map([ [ '', "interface " + GraphQLSchemaModel.contentItemInterfaceName + " {\n system: SystemInfo!\n}", ], ]); GraphQLSchemaModel.helperTypes = new Map([ [ 'multiple_choice_option', "type MultipleChoiceElementOption {\n name: String!\n codename: String\n}", ], [ 'taxonomy_term', "type TaxonomyTerm {\n name: String!\n codename: String\n}", ], [ 'asset', "type Asset {\n name: String\n type: String\n size: Int\n description: String\n url: String\n width: Int\n height: Int\n}", ], [ 'link', "type Link {\n codename: String\n itemID: String\n urlSlug: String\n type: String\n}", ], [ 'richtext_image', "type RichTextImage {\n imageId: String!\n url: String!\n description: String\n width: Int\n height: Int\n}", ], ]); GraphQLSchemaModel.elementTypes = new Map([ [ kontent_delivery_1.ElementType.Text.toString(), "type " + GraphQLSchemaModel.textElementTypeName + " {\n type: String!\n name: String!\n value: String\n}", ], [ kontent_delivery_1.ElementType.Number.toString(), "type " + GraphQLSchemaModel.numberElementTypeName + " {\n type: String!\n name: String!\n value: Int\n}", ], [ kontent_delivery_1.ElementType.DateTime.toString(), "type " + GraphQLSchemaModel.dateTimeElementTypeName + " {\n type: String!\n name: String!\n value: String\n}", ], [ kontent_delivery_1.ElementType.MultipleChoice.toString(), "type " + GraphQLSchemaModel.multipleChoiceElementTypeName + " {\n type: String!\n name: String!\n value: [MultipleChoiceElementOption]\n}", ], [ kontent_delivery_1.ElementType.UrlSlug.toString(), "type " + GraphQLSchemaModel.urlSlugElementTypeName + " {\n type: String!\n name: String!\n value: String\n}", ], [ kontent_delivery_1.ElementType.Taxonomy.toString(), "type " + GraphQLSchemaModel.taxonomyElementTypeName + " {\n type: String!\n name: String!\n value: [TaxonomyTerm]\n taxonomyGroup: String\n}", ], [ kontent_delivery_1.ElementType.Asset.toString(), "type " + GraphQLSchemaModel.assetElementTypeName + " {\n type: String!\n name: String!\n value: [Asset]\n}", ], [ kontent_delivery_1.ElementType.RichText.toString(), "type " + GraphQLSchemaModel.richTextElementTypeName + " {\n type: String!\n name: String!\n value: String\n linkedItemCodenames: [String]\n links: [Link]\n images: [RichTextImage]\n resolvedHtml: String\n}", ], [ kontent_delivery_1.ElementType.ModularContent.toString(), "type " + GraphQLSchemaModel.linkedItemsElement + " {\n type: String!\n name: String!\n value: [ContentItem]\n itemCodenames: [String]\n}", ], [ kontent_delivery_1.ElementType.Custom.toString(), "type " + GraphQLSchemaModel.customElementTypeName + " {\n type: String!\n name: String!\n value: String\n}", ], ]); return GraphQLSchemaModel; }()); exports.GraphQLSchemaModel = GraphQLSchemaModel; //# sourceMappingURL=graphql-schema-model.js.map