graphql-transformer-core
Advanced tools
Comparing version 1.1.0-alpha.2631c6c8 to 1.1.0-alpha.31da634f
@@ -6,2 +6,21 @@ # Change Log | ||
<a name="1.0.28"></a> | ||
## [1.0.28](https://github.com/aws-amplify/amplify-cli/compare/graphql-transformer-core@1.0.28-beta.0...graphql-transformer-core@1.0.28) (2018-10-18) | ||
**Note:** Version bump only for package graphql-transformer-core | ||
<a name="1.0.28-beta.0"></a> | ||
## [1.0.28-beta.0](https://github.com/aws-amplify/amplify-cli/compare/graphql-transformer-core@1.0.12...graphql-transformer-core@1.0.28-beta.0) (2018-10-12) | ||
### Bug Fixes | ||
* **graphql-transformer-core:** Fix Readme.md docs for the `[@auth](https://github.com/auth)` directive ([db6ff7a](https://github.com/aws-amplify/amplify-cli/commit/db6ff7a)) | ||
<a name="1.0.12"></a> | ||
@@ -8,0 +27,0 @@ ## [1.0.12](https://github.com/aws-amplify/amplify-cli/compare/graphql-transformer-core@1.0.11...graphql-transformer-core@1.0.12) (2018-08-23) |
@@ -37,2 +37,5 @@ "use strict"; | ||
function matchDirective(definition, directive, node) { | ||
if (!directive) { | ||
return false; | ||
} | ||
if (definition.name.value !== directive.name.value) { | ||
@@ -194,31 +197,25 @@ // The definition is for the wrong directive. Do not match. | ||
var def = _e[_d]; | ||
for (var _f = 0, _g = def.directives; _f < _g.length; _f++) { | ||
var dir = _g[_f]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
switch (def.kind) { | ||
case 'ObjectTypeDefinition': | ||
this.transformObject(transformer, def, dir, context); | ||
// Walk the fields and call field transformers. | ||
break; | ||
case 'InterfaceTypeDefinition': | ||
this.transformInterface(transformer, def, dir, context); | ||
// Walk the fields and call field transformers. | ||
break; | ||
case 'ScalarTypeDefinition': | ||
this.transformScalar(transformer, def, dir, context); | ||
break; | ||
case 'UnionTypeDefinition': | ||
this.transformUnion(transformer, def, dir, context); | ||
break; | ||
case 'EnumTypeDefinition': | ||
this.transformEnum(transformer, def, dir, context); | ||
break; | ||
case 'InputObjectTypeDefinition': | ||
this.transformInputObject(transformer, def, dir, context); | ||
break; | ||
default: | ||
continue; | ||
} | ||
switch (def.kind) { | ||
case 'ObjectTypeDefinition': | ||
this.transformObject(transformer, def, validDirectiveNameMap, context); | ||
// Walk the fields and call field transformers. | ||
break; | ||
case 'InterfaceTypeDefinition': | ||
this.transformInterface(transformer, def, validDirectiveNameMap, context); | ||
// Walk the fields and call field transformers. | ||
break; | ||
case 'ScalarTypeDefinition': | ||
this.transformScalar(transformer, def, validDirectiveNameMap, context); | ||
break; | ||
case 'UnionTypeDefinition': | ||
this.transformUnion(transformer, def, validDirectiveNameMap, context); | ||
break; | ||
case 'EnumTypeDefinition': | ||
this.transformEnum(transformer, def, validDirectiveNameMap, context); | ||
break; | ||
case 'InputObjectTypeDefinition': | ||
this.transformInputObject(transformer, def, validDirectiveNameMap, context); | ||
break; | ||
default: | ||
continue; | ||
} | ||
@@ -244,175 +241,220 @@ } | ||
}; | ||
GraphQLTransform.prototype.transformObject = function (transformer, def, dir, context) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.object)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.object(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformObject = function (transformer, def, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = def.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.object)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.object(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'object()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'object()' method"); | ||
} | ||
} | ||
for (var _i = 0, _a = def.fields; _i < _a.length; _i++) { | ||
var field = _a[_i]; | ||
for (var _b = 0, _c = field.directives; _b < _c.length; _b++) { | ||
var fDir = _c[_b]; | ||
this.transformField(transformer, def, field, fDir, context); | ||
} | ||
for (var _b = 0, _c = def.fields; _b < _c.length; _b++) { | ||
var field = _c[_b]; | ||
this.transformField(transformer, def, field, validDirectiveNameMap, context); | ||
} | ||
}; | ||
GraphQLTransform.prototype.transformField = function (transformer, parent, def, dir, context) { | ||
if (matchFieldDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.field)) { | ||
var transformKey = makeSeenTransformationKey(dir, parent, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.field(parent, def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformField = function (transformer, parent, def, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = def.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchFieldDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.field)) { | ||
var transformKey = makeSeenTransformationKey(dir, parent, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.field(parent, def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'field()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'field()' method"); | ||
} | ||
} | ||
for (var _i = 0, _a = def.arguments; _i < _a.length; _i++) { | ||
var arg = _a[_i]; | ||
for (var _b = 0, _c = arg.directives; _b < _c.length; _b++) { | ||
var aDir = _c[_b]; | ||
this.transformArgument(transformer, parent, def, arg, aDir, context); | ||
} | ||
for (var _b = 0, _c = def.arguments; _b < _c.length; _b++) { | ||
var arg = _c[_b]; | ||
this.transformArgument(transformer, parent, def, arg, validDirectiveNameMap, context); | ||
} | ||
}; | ||
GraphQLTransform.prototype.transformArgument = function (transformer, parent, field, arg, dir, context) { | ||
if (matchArgumentDirective(transformer.directive, dir, arg)) { | ||
if (isFunction(transformer.argument)) { | ||
var transformKey = makeSeenTransformationKey(dir, parent, field, arg); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.argument(arg, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformArgument = function (transformer, parent, field, arg, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = arg.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchArgumentDirective(transformer.directive, dir, arg)) { | ||
if (isFunction(transformer.argument)) { | ||
var transformKey = makeSeenTransformationKey(dir, parent, field, arg); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.argument(arg, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'argument()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'argument()' method"); | ||
} | ||
} | ||
}; | ||
GraphQLTransform.prototype.transformInterface = function (transformer, def, dir, context) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.interface)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.interface(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformInterface = function (transformer, def, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = def.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.interface)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.interface(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'interface()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'interface()' method"); | ||
} | ||
} | ||
for (var _i = 0, _a = def.fields; _i < _a.length; _i++) { | ||
var field = _a[_i]; | ||
for (var _b = 0, _c = field.directives; _b < _c.length; _b++) { | ||
var fDir = _c[_b]; | ||
this.transformField(transformer, def, field, fDir, context); | ||
} | ||
for (var _b = 0, _c = def.fields; _b < _c.length; _b++) { | ||
var field = _c[_b]; | ||
this.transformField(transformer, def, field, validDirectiveNameMap, context); | ||
} | ||
}; | ||
GraphQLTransform.prototype.transformScalar = function (transformer, def, dir, context) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.scalar)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.scalar(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformScalar = function (transformer, def, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = def.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.scalar)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.scalar(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'scalar()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'scalar()' method"); | ||
} | ||
} | ||
}; | ||
GraphQLTransform.prototype.transformUnion = function (transformer, def, dir, context) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.union)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.union(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformUnion = function (transformer, def, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = def.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.union)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.union(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'union()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'union()' method"); | ||
} | ||
} | ||
}; | ||
GraphQLTransform.prototype.transformEnum = function (transformer, def, dir, context) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.enum)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.enum(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformEnum = function (transformer, def, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = def.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.enum)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.enum(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'enum()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'enum()' method"); | ||
} | ||
} | ||
for (var _i = 0, _a = def.values; _i < _a.length; _i++) { | ||
var value = _a[_i]; | ||
for (var _b = 0, _c = value.directives; _b < _c.length; _b++) { | ||
var vDir = _c[_b]; | ||
this.transformEnumValue(transformer, def, value, vDir, context); | ||
} | ||
for (var _b = 0, _c = def.values; _b < _c.length; _b++) { | ||
var value = _c[_b]; | ||
this.transformEnumValue(transformer, def, value, validDirectiveNameMap, context); | ||
} | ||
}; | ||
GraphQLTransform.prototype.transformEnumValue = function (transformer, enm, def, dir, context) { | ||
if (matchEnumValueDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.enumValue)) { | ||
var transformKey = makeSeenTransformationKey(dir, enm, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.enumValue(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformEnumValue = function (transformer, enm, def, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = def.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchEnumValueDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.enumValue)) { | ||
var transformKey = makeSeenTransformationKey(dir, enm, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.enumValue(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'enumValue()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'enumValue()' method"); | ||
} | ||
} | ||
}; | ||
GraphQLTransform.prototype.transformInputObject = function (transformer, def, dir, context) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.input)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.input(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformInputObject = function (transformer, def, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = def.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.input)) { | ||
var transformKey = makeSeenTransformationKey(dir, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.input(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'input()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'input()' method"); | ||
} | ||
} | ||
for (var _i = 0, _a = def.fields; _i < _a.length; _i++) { | ||
var field = _a[_i]; | ||
for (var _b = 0, _c = field.directives; _b < _c.length; _b++) { | ||
var fDir = _c[_b]; | ||
this.transformInputField(transformer, def, field, fDir, context); | ||
} | ||
for (var _b = 0, _c = def.fields; _b < _c.length; _b++) { | ||
var field = _c[_b]; | ||
this.transformInputField(transformer, def, field, validDirectiveNameMap, context); | ||
} | ||
}; | ||
GraphQLTransform.prototype.transformInputField = function (transformer, input, def, dir, context) { | ||
if (matchInputFieldDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.inputValue)) { | ||
var transformKey = makeSeenTransformationKey(dir, input, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.inputValue(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
GraphQLTransform.prototype.transformInputField = function (transformer, input, def, validDirectiveNameMap, context) { | ||
for (var _i = 0, _a = def.directives; _i < _a.length; _i++) { | ||
var dir = _a[_i]; | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new errors_1.UnknownDirectiveError("Unknown directive '" + dir.name.value + "'. Either remove the directive from the schema or add a transformer to handle it."); | ||
} | ||
if (matchInputFieldDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.inputValue)) { | ||
var transformKey = makeSeenTransformationKey(dir, input, def); | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.inputValue(def, dir, context); | ||
this.seenTransformations[transformKey] = true; | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'inputValue()' method"); | ||
} | ||
} | ||
else { | ||
throw new errors_1.InvalidTransformerError("The transformer '" + transformer.name + "' must implement the 'inputValue()' method"); | ||
} | ||
} | ||
@@ -419,0 +461,0 @@ }; |
{ | ||
"name": "graphql-transformer-core", | ||
"version": "1.1.0-alpha.2631c6c8", | ||
"version": "1.1.0-alpha.31da634f", | ||
"description": "A framework to transform from GraphQL SDL to AWS CloudFormation.", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -41,2 +41,5 @@ import Template from 'cloudform/types/template' | ||
function matchDirective(definition: DirectiveDefinitionNode, directive: DirectiveNode, node: TypeSystemDefinitionNode) { | ||
if (!directive) { | ||
return false; | ||
} | ||
if (definition.name.value !== directive.name.value) { | ||
@@ -213,32 +216,25 @@ // The definition is for the wrong directive. Do not match. | ||
for (const def of context.inputDocument.definitions as TypeDefinitionNode[]) { | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
switch (def.kind) { | ||
case 'ObjectTypeDefinition': | ||
this.transformObject(transformer, def, dir, context) | ||
// Walk the fields and call field transformers. | ||
break | ||
case 'InterfaceTypeDefinition': | ||
this.transformInterface(transformer, def, dir, context) | ||
// Walk the fields and call field transformers. | ||
break; | ||
case 'ScalarTypeDefinition': | ||
this.transformScalar(transformer, def, dir, context) | ||
break; | ||
case 'UnionTypeDefinition': | ||
this.transformUnion(transformer, def, dir, context) | ||
break; | ||
case 'EnumTypeDefinition': | ||
this.transformEnum(transformer, def, dir, context) | ||
break; | ||
case 'InputObjectTypeDefinition': | ||
this.transformInputObject(transformer, def, dir, context) | ||
break; | ||
default: | ||
continue | ||
} | ||
switch (def.kind) { | ||
case 'ObjectTypeDefinition': | ||
this.transformObject(transformer, def, validDirectiveNameMap, context) | ||
// Walk the fields and call field transformers. | ||
break | ||
case 'InterfaceTypeDefinition': | ||
this.transformInterface(transformer, def, validDirectiveNameMap, context) | ||
// Walk the fields and call field transformers. | ||
break; | ||
case 'ScalarTypeDefinition': | ||
this.transformScalar(transformer, def, validDirectiveNameMap, context) | ||
break; | ||
case 'UnionTypeDefinition': | ||
this.transformUnion(transformer, def, validDirectiveNameMap, context) | ||
break; | ||
case 'EnumTypeDefinition': | ||
this.transformEnum(transformer, def, validDirectiveNameMap, context) | ||
break; | ||
case 'InputObjectTypeDefinition': | ||
this.transformInputObject(transformer, def, validDirectiveNameMap, context) | ||
break; | ||
default: | ||
continue | ||
} | ||
@@ -265,18 +261,28 @@ } | ||
private transformObject(transformer: Transformer, def: ObjectTypeDefinitionNode, dir: DirectiveNode, context: TransformerContext) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.object)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.object(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
private transformObject( | ||
transformer: Transformer, | ||
def: ObjectTypeDefinitionNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext | ||
) { | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.object)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.object(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'object()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'object()' method`) | ||
} | ||
} | ||
for (const field of def.fields) { | ||
for (const fDir of field.directives) { | ||
this.transformField(transformer, def, field, fDir, context) | ||
} | ||
this.transformField(transformer, def, field, validDirectiveNameMap, context) | ||
} | ||
@@ -289,20 +295,25 @@ } | ||
def: FieldDefinitionNode, | ||
dir: DirectiveNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext | ||
) { | ||
if (matchFieldDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.field)) { | ||
const transformKey = makeSeenTransformationKey(dir, parent, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.field(parent, def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchFieldDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.field)) { | ||
const transformKey = makeSeenTransformationKey(dir, parent, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.field(parent, def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'field()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'field()' method`) | ||
} | ||
} | ||
for (const arg of def.arguments) { | ||
for (const aDir of arg.directives) { | ||
this.transformArgument(transformer, parent, def, arg, aDir, context) | ||
} | ||
this.transformArgument(transformer, parent, def, arg, validDirectiveNameMap, context) | ||
} | ||
@@ -316,14 +327,21 @@ } | ||
arg: InputValueDefinitionNode, | ||
dir: DirectiveNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext | ||
) { | ||
if (matchArgumentDirective(transformer.directive, dir, arg)) { | ||
if (isFunction(transformer.argument)) { | ||
const transformKey = makeSeenTransformationKey(dir, parent, field, arg) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.argument(arg, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
for (const dir of arg.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchArgumentDirective(transformer.directive, dir, arg)) { | ||
if (isFunction(transformer.argument)) { | ||
const transformKey = makeSeenTransformationKey(dir, parent, field, arg) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.argument(arg, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'argument()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'argument()' method`) | ||
} | ||
@@ -333,31 +351,52 @@ } | ||
private transformInterface(transformer: Transformer, def: InterfaceTypeDefinitionNode, dir: DirectiveNode, context: TransformerContext) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.interface)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.interface(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
private transformInterface( | ||
transformer: Transformer, | ||
def: InterfaceTypeDefinitionNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext) { | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.interface)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.interface(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'interface()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'interface()' method`) | ||
} | ||
} | ||
for (const field of def.fields) { | ||
for (const fDir of field.directives) { | ||
this.transformField(transformer, def, field, fDir, context) | ||
} | ||
this.transformField(transformer, def, field, validDirectiveNameMap, context) | ||
} | ||
} | ||
private transformScalar(transformer: Transformer, def: ScalarTypeDefinitionNode, dir: DirectiveNode, context: TransformerContext) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.scalar)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.scalar(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
private transformScalar( | ||
transformer: Transformer, | ||
def: ScalarTypeDefinitionNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext | ||
) { | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.scalar)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.scalar(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'scalar()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'scalar()' method`) | ||
} | ||
@@ -367,12 +406,24 @@ } | ||
private transformUnion(transformer: Transformer, def: UnionTypeDefinitionNode, dir: DirectiveNode, context: TransformerContext) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.union)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.union(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
private transformUnion( | ||
transformer: Transformer, | ||
def: UnionTypeDefinitionNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext | ||
) { | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.union)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.union(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'union()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'union()' method`) | ||
} | ||
@@ -382,18 +433,28 @@ } | ||
private transformEnum(transformer: Transformer, def: EnumTypeDefinitionNode, dir: DirectiveNode, context: TransformerContext) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.enum)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.enum(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
private transformEnum( | ||
transformer: Transformer, | ||
def: EnumTypeDefinitionNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext | ||
) { | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.enum)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.enum(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'enum()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'enum()' method`) | ||
} | ||
} | ||
for (const value of def.values) { | ||
for (const vDir of value.directives) { | ||
this.transformEnumValue(transformer, def, value, vDir, context) | ||
} | ||
this.transformEnumValue(transformer, def, value, validDirectiveNameMap, context) | ||
} | ||
@@ -403,13 +464,24 @@ } | ||
private transformEnumValue( | ||
transformer: Transformer, enm: EnumTypeDefinitionNode, def: EnumValueDefinitionNode, dir: DirectiveNode, context: TransformerContext | ||
transformer: Transformer, | ||
enm: EnumTypeDefinitionNode, | ||
def: EnumValueDefinitionNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext | ||
) { | ||
if (matchEnumValueDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.enumValue)) { | ||
const transformKey = makeSeenTransformationKey(dir, enm, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.enumValue(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchEnumValueDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.enumValue)) { | ||
const transformKey = makeSeenTransformationKey(dir, enm, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.enumValue(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'enumValue()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'enumValue()' method`) | ||
} | ||
@@ -419,18 +491,28 @@ } | ||
private transformInputObject(transformer: Transformer, def: InputObjectTypeDefinitionNode, dir: DirectiveNode, context: TransformerContext) { | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.input)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.input(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
private transformInputObject( | ||
transformer: Transformer, | ||
def: InputObjectTypeDefinitionNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext | ||
) { | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.input)) { | ||
const transformKey = makeSeenTransformationKey(dir, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.input(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'input()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'input()' method`) | ||
} | ||
} | ||
for (const field of def.fields) { | ||
for (const fDir of field.directives) { | ||
this.transformInputField(transformer, def, field, fDir, context) | ||
} | ||
this.transformInputField(transformer, def, field, validDirectiveNameMap, context) | ||
} | ||
@@ -440,14 +522,24 @@ } | ||
private transformInputField( | ||
transformer: Transformer, input: InputObjectTypeDefinitionNode, def: InputValueDefinitionNode, | ||
dir: DirectiveNode, context: TransformerContext | ||
transformer: Transformer, | ||
input: InputObjectTypeDefinitionNode, | ||
def: InputValueDefinitionNode, | ||
validDirectiveNameMap: { [k: string]: boolean}, | ||
context: TransformerContext | ||
) { | ||
if (matchInputFieldDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.inputValue)) { | ||
const transformKey = makeSeenTransformationKey(dir, input, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.inputValue(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
for (const dir of def.directives) { | ||
if (!validDirectiveNameMap[dir.name.value]) { | ||
throw new UnknownDirectiveError( | ||
`Unknown directive '${dir.name.value}'. Either remove the directive from the schema or add a transformer to handle it.` | ||
) | ||
} | ||
if (matchInputFieldDirective(transformer.directive, dir, def)) { | ||
if (isFunction(transformer.inputValue)) { | ||
const transformKey = makeSeenTransformationKey(dir, input, def) | ||
if (!this.seenTransformations[transformKey]) { | ||
transformer.inputValue(def, dir, context) | ||
this.seenTransformations[transformKey] = true | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'inputValue()' method`) | ||
} | ||
} else { | ||
throw new InvalidTransformerError(`The transformer '${transformer.name}' must implement the 'inputValue()' method`) | ||
} | ||
@@ -454,0 +546,0 @@ } |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
214165
3541
7