UNPKG

@aws-amplify/graphql-transformer-core

Version:

A framework to transform from GraphQL SDL to AWS CloudFormation.

59 lines 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TransformerAuthBase = exports.TransformerModelEnhancerBase = exports.TransformerModelBase = exports.TransformerPluginBase = void 0; const graphql_transformer_interfaces_1 = require("@aws-amplify/graphql-transformer-interfaces"); const graphql_1 = require("graphql"); const errors_1 = require("../errors"); class TransformerPluginBase { constructor(name, document, pluginType = graphql_transformer_interfaces_1.TransformerPluginType.GENERIC) { this.pluginType = pluginType; const doc = typeof document === 'string' ? (0, graphql_1.parse)(document) : document; this.name = name; const directives = doc.definitions.filter((d) => d.kind === graphql_1.Kind.DIRECTIVE_DEFINITION); const extraDefinitions = doc.definitions.filter((d) => d.kind !== graphql_1.Kind.DIRECTIVE_DEFINITION); if (directives.length !== 1) { throw new errors_1.InvalidTransformerError('Transformers must specify exactly one directive definition.'); } [this.directive] = directives; this.typeDefinitions = extraDefinitions; this.logs = []; } log(level, message) { this.logs.push({ level, message }); } error(message) { this.log(graphql_transformer_interfaces_1.TransformerLogLevel.ERROR, message); } warn(message) { this.log(graphql_transformer_interfaces_1.TransformerLogLevel.WARN, message); } info(message) { this.log(graphql_transformer_interfaces_1.TransformerLogLevel.INFO, message); } debug(message) { this.log(graphql_transformer_interfaces_1.TransformerLogLevel.DEBUG, message); } getLogs() { return this.logs; } } exports.TransformerPluginBase = TransformerPluginBase; class TransformerModelBase extends TransformerPluginBase { constructor(name, document, type = graphql_transformer_interfaces_1.TransformerPluginType.DATA_SOURCE_PROVIDER) { super(name, document, type); } } exports.TransformerModelBase = TransformerModelBase; class TransformerModelEnhancerBase extends TransformerModelBase { constructor(name, doc, type = graphql_transformer_interfaces_1.TransformerPluginType.DATA_SOURCE_ENHANCER) { super(name, doc, type); } } exports.TransformerModelEnhancerBase = TransformerModelEnhancerBase; class TransformerAuthBase extends TransformerPluginBase { constructor(name, doc, type = graphql_transformer_interfaces_1.TransformerPluginType.AUTH) { super(name, doc, type); } } exports.TransformerAuthBase = TransformerAuthBase; //# sourceMappingURL=transformer-plugin-base.js.map