@aws-amplify/graphql-transformer-core
Version:
A framework to transform from GraphQL SDL to AWS CloudFormation.
59 lines • 2.69 kB
JavaScript
;
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