@graphql-codegen/plugin-helpers 1.17.9 → 1.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.js CHANGED
@@ -154,8 +154,13 @@ function isUsingTypes(document, externalFragments, schema) {
154
154
  return schema.getSubscriptionType().name;
155
155
  }
156
156
  }
157
- else if (parent.kind === graphql.Kind.INLINE_FRAGMENT && parent.typeCondition) {
158
- return parent.typeCondition.name.value;
157
+ else if (parent.kind === graphql.Kind.INLINE_FRAGMENT) {
158
+ if (parent.typeCondition) {
159
+ return parent.typeCondition.name.value;
160
+ }
161
+ else {
162
+ return typesStack[typesStack.length - 1].name;
163
+ }
159
164
  }
160
165
  return null;
161
166
  })();
package/index.cjs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../dist/utils/plugins-helpers/src/resolve-external-module-and-fn.js","../../../dist/utils/plugins-helpers/src/types.js","../../../dist/utils/plugins-helpers/src/utils.js","../../../dist/utils/plugins-helpers/src/helpers.js","../../../dist/utils/plugins-helpers/src/federation.js","../../../dist/utils/plugins-helpers/src/errors.js"],"sourcesContent":["import { paramCase } from 'param-case';\nexport function resolveExternalModuleAndFn(pointer) {\n // eslint-disable-next-line no-eval\n const importExternally = (moduleName) => eval(`require('${moduleName}')`);\n if (typeof pointer === 'function') {\n return pointer;\n }\n // eslint-disable-next-line prefer-const\n let [moduleName, functionName] = pointer.split('#');\n // Temp workaround until v2\n if (moduleName === 'change-case') {\n moduleName = paramCase(functionName);\n }\n const { resolve } = importExternally('path');\n const localFilePath = resolve(process.cwd(), moduleName);\n const { existsSync } = importExternally('fs');\n const localFileExists = existsSync(localFilePath);\n const importFrom = importExternally('import-from');\n const loadedModule = localFileExists ? importExternally(localFilePath) : importFrom(process.cwd(), moduleName);\n if (!(functionName in loadedModule) && typeof loadedModule !== 'function') {\n throw new Error(`${functionName} couldn't be found in module ${moduleName}!`);\n }\n return loadedModule[functionName] || loadedModule;\n}\n//# sourceMappingURL=resolve-external-module-and-fn.js.map","export function isComplexPluginOutput(obj) {\n return typeof obj === 'object' && obj.hasOwnProperty('content');\n}\n//# sourceMappingURL=types.js.map","import { isListType, isNonNullType } from 'graphql';\nexport function mergeOutputs(content) {\n const result = { content: '', prepend: [], append: [] };\n if (Array.isArray(content)) {\n content.forEach(item => {\n if (typeof item === 'string') {\n result.content += item;\n }\n else {\n result.content += item.content;\n result.prepend.push(...(item.prepend || []));\n result.append.push(...(item.append || []));\n }\n });\n }\n return [...result.prepend, result.content, ...result.append].join('\\n');\n}\nexport function isWrapperType(t) {\n return isListType(t) || isNonNullType(t);\n}\nexport function getBaseType(type) {\n if (isWrapperType(type)) {\n return getBaseType(type.ofType);\n }\n else {\n return type;\n }\n}\n//# sourceMappingURL=utils.js.map","import { visit, isListType, isObjectType, Kind, isNonNullType, } from 'graphql';\nimport { getBaseType } from './utils';\nexport function isOutputConfigArray(type) {\n return Array.isArray(type);\n}\nexport function isConfiguredOutput(type) {\n return typeof type === 'object' && type.plugins;\n}\nexport function normalizeOutputParam(config) {\n // In case of direct array with a list of plugins\n if (isOutputConfigArray(config)) {\n return {\n documents: [],\n schema: [],\n plugins: isConfiguredOutput(config) ? config.plugins : config,\n };\n }\n else if (isConfiguredOutput(config)) {\n return config;\n }\n else {\n throw new Error(`Invalid \"generates\" config!`);\n }\n}\nexport function normalizeInstanceOrArray(type) {\n if (Array.isArray(type)) {\n return type;\n }\n else if (!type) {\n return [];\n }\n return [type];\n}\nexport function normalizeConfig(config) {\n if (typeof config === 'string') {\n return [{ [config]: {} }];\n }\n else if (Array.isArray(config)) {\n return config.map(plugin => (typeof plugin === 'string' ? { [plugin]: {} } : plugin));\n }\n else if (typeof config === 'object') {\n return Object.keys(config).reduce((prev, pluginName) => [...prev, { [pluginName]: config[pluginName] }], []);\n }\n else {\n return [];\n }\n}\nexport function hasNullableTypeRecursively(type) {\n if (!isNonNullType(type)) {\n return true;\n }\n if (isListType(type) || isNonNullType(type)) {\n return hasNullableTypeRecursively(type.ofType);\n }\n return false;\n}\nexport function isUsingTypes(document, externalFragments, schema) {\n let foundFields = 0;\n const typesStack = [];\n visit(document, {\n SelectionSet: {\n enter(node, key, parent, anscestors) {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n const selections = node.selections || [];\n if (schema && selections.length > 0) {\n const nextTypeName = (() => {\n if (parent.kind === Kind.FRAGMENT_DEFINITION) {\n return parent.typeCondition.name.value;\n }\n else if (parent.kind === Kind.FIELD) {\n const lastType = typesStack[typesStack.length - 1];\n if (!lastType) {\n throw new Error(`Unable to find parent type! Please make sure you operation passes validation`);\n }\n const field = lastType.getFields()[parent.name.value];\n if (!field) {\n throw new Error(`Unable to find field \"${parent.name.value}\" on type \"${lastType}\"!`);\n }\n return getBaseType(field.type).name;\n }\n else if (parent.kind === Kind.OPERATION_DEFINITION) {\n if (parent.operation === 'query') {\n return schema.getQueryType().name;\n }\n else if (parent.operation === 'mutation') {\n return schema.getMutationType().name;\n }\n else if (parent.operation === 'subscription') {\n return schema.getSubscriptionType().name;\n }\n }\n else if (parent.kind === Kind.INLINE_FRAGMENT && parent.typeCondition) {\n return parent.typeCondition.name.value;\n }\n return null;\n })();\n typesStack.push(schema.getType(nextTypeName));\n }\n },\n leave(node) {\n const selections = node.selections || [];\n if (schema && selections.length > 0) {\n typesStack.pop();\n }\n },\n },\n Field: {\n enter: (node, key, parent, path, anscestors) => {\n if (node.name.value.startsWith('__')) {\n return;\n }\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n const selections = node.selectionSet ? node.selectionSet.selections || [] : [];\n const relevantFragmentSpreads = selections.filter(s => s.kind === Kind.FRAGMENT_SPREAD && !externalFragments.includes(s.name.value));\n if (selections.length === 0 || relevantFragmentSpreads.length > 0) {\n foundFields++;\n }\n if (schema) {\n const lastType = typesStack[typesStack.length - 1];\n if (lastType) {\n if (isObjectType(lastType)) {\n const field = lastType.getFields()[node.name.value];\n if (!field) {\n throw new Error(`Unable to find field \"${node.name.value}\" on type \"${lastType}\"!`);\n }\n const currentType = field.type;\n // To handle `Maybe` usage\n if (hasNullableTypeRecursively(currentType)) {\n foundFields++;\n }\n }\n }\n }\n },\n },\n enter: {\n VariableDefinition: (node, key, parent, path, anscestors) => {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n foundFields++;\n },\n InputValueDefinition: (node, key, parent, path, anscestors) => {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n foundFields++;\n },\n },\n });\n return foundFields > 0;\n}\n//# sourceMappingURL=helpers.js.map","import { parse, GraphQLObjectType, isObjectType, printType, Kind, visit, } from 'graphql';\nimport { merge } from 'lodash';\nimport { getBaseType } from './utils';\n/**\n * Federation Spec\n */\nexport const federationSpec = parse(/* GraphQL */ `\n scalar _FieldSet\n\n directive @external on FIELD_DEFINITION\n directive @requires(fields: _FieldSet!) on FIELD_DEFINITION\n directive @provides(fields: _FieldSet!) on FIELD_DEFINITION\n directive @key(fields: _FieldSet!) on OBJECT | INTERFACE\n`);\n/**\n * Adds `__resolveReference` in each ObjectType involved in Federation.\n * @param schema\n */\nexport function addFederationReferencesToSchema(schema) {\n const typeMap = schema.getTypeMap();\n for (const typeName in typeMap) {\n const type = schema.getType(typeName);\n if (isObjectType(type) && isFederationObjectType(type)) {\n const typeConfig = type.toConfig();\n typeConfig.fields = {\n [resolveReferenceFieldName]: {\n type,\n },\n ...typeConfig.fields,\n };\n const newType = new GraphQLObjectType(typeConfig);\n newType.astNode = newType.astNode || parse(printType(newType)).definitions[0];\n newType.astNode.fields.unshift({\n kind: Kind.FIELD_DEFINITION,\n name: {\n kind: Kind.NAME,\n value: resolveReferenceFieldName,\n },\n type: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: typeName,\n },\n },\n });\n typeMap[typeName] = newType;\n }\n }\n return schema;\n}\n/**\n * Removes Federation Spec from GraphQL Schema\n * @param schema\n * @param config\n */\nexport function removeFederation(schema) {\n const queryType = schema.getQueryType();\n const queryTypeFields = queryType.getFields();\n delete queryTypeFields._entities;\n delete queryTypeFields._service;\n const typeMap = schema.getTypeMap();\n delete typeMap._Service;\n delete typeMap._Entity;\n delete typeMap._Any;\n return schema;\n}\nconst resolveReferenceFieldName = '__resolveReference';\nexport class ApolloFederation {\n constructor({ enabled, schema }) {\n this.enabled = false;\n this.enabled = enabled;\n this.schema = schema;\n this.providesMap = this.createMapOfProvides();\n }\n /**\n * Excludes types definde by Federation\n * @param typeNames List of type names\n */\n filterTypeNames(typeNames) {\n return this.enabled ? typeNames.filter(t => t !== '_FieldSet') : typeNames;\n }\n /**\n * Excludes `__resolveReference` fields\n * @param fieldNames List of field names\n */\n filterFieldNames(fieldNames) {\n return this.enabled ? fieldNames.filter(t => t !== resolveReferenceFieldName) : fieldNames;\n }\n /**\n * Decides if directive should not be generated\n * @param name directive's name\n */\n skipDirective(name) {\n return this.enabled && ['external', 'requires', 'provides', 'key'].includes(name);\n }\n /**\n * Decides if scalar should not be generated\n * @param name directive's name\n */\n skipScalar(name) {\n return this.enabled && name === '_FieldSet';\n }\n /**\n * Decides if field should not be generated\n * @param data\n */\n skipField({ fieldNode, parentType }) {\n if (!this.enabled || !isObjectType(parentType) || !isFederationObjectType(parentType)) {\n return false;\n }\n return this.isExternalAndNotProvided(fieldNode, parentType);\n }\n isResolveReferenceField(fieldNode) {\n const name = typeof fieldNode.name === 'string' ? fieldNode.name : fieldNode.name.value;\n return this.enabled && name === resolveReferenceFieldName;\n }\n /**\n * Transforms ParentType signature in ObjectTypes involved in Federation\n * @param data\n */\n transformParentType({ fieldNode, parentType, parentTypeSignature, }) {\n if (this.enabled &&\n isObjectType(parentType) &&\n isFederationObjectType(parentType) &&\n (isTypeExtension(parentType) || fieldNode.name.value === resolveReferenceFieldName)) {\n const keys = getDirectivesByName('key', parentType);\n if (keys.length) {\n const outputs = [`{ __typename: '${parentType.name}' } &`];\n // Look for @requires and see what the service needs and gets\n const requires = getDirectivesByName('requires', fieldNode).map(this.extractKeyOrRequiresFieldSet);\n const requiredFields = this.translateFieldSet(merge({}, ...requires), parentTypeSignature);\n // @key() @key() - \"primary keys\" in Federation\n const primaryKeys = keys.map(def => {\n const fields = this.extractKeyOrRequiresFieldSet(def);\n return this.translateFieldSet(fields, parentTypeSignature);\n });\n const [open, close] = primaryKeys.length > 1 ? ['(', ')'] : ['', ''];\n outputs.push([open, primaryKeys.join(' | '), close].join(''));\n // include required fields\n if (requires.length) {\n outputs.push(`& ${requiredFields}`);\n }\n return outputs.join(' ');\n }\n }\n return parentTypeSignature;\n }\n isExternalAndNotProvided(fieldNode, objectType) {\n return this.isExternal(fieldNode) && !this.hasProvides(objectType, fieldNode);\n }\n isExternal(node) {\n return getDirectivesByName('external', node).length > 0;\n }\n hasProvides(objectType, node) {\n const fields = this.providesMap[isObjectType(objectType) ? objectType.name : objectType.name.value];\n if (fields && fields.length) {\n return fields.includes(node.name.value);\n }\n return false;\n }\n translateFieldSet(fields, parentTypeRef) {\n return `GraphQLRecursivePick<${parentTypeRef}, ${JSON.stringify(fields)}>`;\n }\n extractKeyOrRequiresFieldSet(directive) {\n const arg = directive.arguments.find(arg => arg.name.value === 'fields');\n const value = arg.value.value;\n return visit(parse(`{${value}}`), {\n leave: {\n SelectionSet(node) {\n return node.selections.reduce((accum, field) => {\n accum[field.name] = field.selection;\n return accum;\n }, {});\n },\n Field(node) {\n return {\n name: node.name.value,\n selection: node.selectionSet ? node.selectionSet : true,\n };\n },\n Document(node) {\n return node.definitions.find((def) => def.kind === 'OperationDefinition' && def.operation === 'query').selectionSet;\n },\n },\n });\n }\n extractProvidesFieldSet(directive) {\n const arg = directive.arguments.find(arg => arg.name.value === 'fields');\n const value = arg.value.value;\n if (/[{}]/gi.test(value)) {\n throw new Error('Nested fields in _FieldSet is not supported in the @provides directive');\n }\n return value.split(/\\s+/g);\n }\n createMapOfProvides() {\n const providesMap = {};\n Object.keys(this.schema.getTypeMap()).forEach(typename => {\n const objectType = this.schema.getType(typename);\n if (isObjectType(objectType)) {\n Object.values(objectType.getFields()).forEach(field => {\n const provides = getDirectivesByName('provides', field.astNode)\n .map(this.extractProvidesFieldSet)\n .reduce((prev, curr) => [...prev, ...curr], []);\n const ofType = getBaseType(field.type);\n if (!providesMap[ofType.name]) {\n providesMap[ofType.name] = [];\n }\n providesMap[ofType.name].push(...provides);\n });\n }\n });\n return providesMap;\n }\n}\n/**\n * Checks if Object Type is involved in Federation. Based on `@key` directive\n * @param node Type\n */\nfunction isFederationObjectType(node) {\n const definition = isObjectType(node)\n ? node.astNode || parse(printType(node)).definitions[0]\n : node;\n const name = definition.name.value;\n const directives = definition.directives;\n const isNotRoot = !['Query', 'Mutation', 'Subscription'].includes(name);\n const isNotIntrospection = !name.startsWith('__');\n const hasKeyDirective = directives.some(d => d.name.value === 'key');\n return isNotRoot && isNotIntrospection && hasKeyDirective;\n}\n/**\n * Extracts directives from a node based on directive's name\n * @param name directive name\n * @param node ObjectType or Field\n */\nfunction getDirectivesByName(name, node) {\n let astNode;\n if (isObjectType(node)) {\n astNode = node.astNode;\n }\n else {\n astNode = node;\n }\n if (astNode && astNode.directives) {\n return astNode.directives.filter(d => d.name.value === name);\n }\n return [];\n}\n/**\n * Checks if the Object Type extends a federated type from a remote schema.\n * Based on if any of its fields contain the `@external` directive\n * @param node Type\n */\nfunction isTypeExtension(node) {\n var _a;\n const definition = isObjectType(node)\n ? node.astNode || parse(printType(node)).definitions[0]\n : node;\n return (_a = definition.fields) === null || _a === void 0 ? void 0 : _a.some(field => getDirectivesByName('external', field).length);\n}\n//# sourceMappingURL=federation.js.map","export class DetailedError extends Error {\n constructor(message, details, source) {\n super(message);\n this.message = message;\n this.details = details;\n this.source = source;\n Object.setPrototypeOf(this, DetailedError.prototype);\n Error.captureStackTrace(this, DetailedError);\n }\n}\nexport function isDetailedError(error) {\n return error.details;\n}\n//# sourceMappingURL=errors.js.map"],"names":["paramCase","isListType","isNonNullType","visit","Kind","isObjectType","parse","GraphQLObjectType","printType","merge"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../dist/utils/plugins-helpers/src/resolve-external-module-and-fn.js","../../../dist/utils/plugins-helpers/src/types.js","../../../dist/utils/plugins-helpers/src/utils.js","../../../dist/utils/plugins-helpers/src/helpers.js","../../../dist/utils/plugins-helpers/src/federation.js","../../../dist/utils/plugins-helpers/src/errors.js"],"sourcesContent":["import { paramCase } from 'param-case';\nexport function resolveExternalModuleAndFn(pointer) {\n // eslint-disable-next-line no-eval\n const importExternally = (moduleName) => eval(`require('${moduleName}')`);\n if (typeof pointer === 'function') {\n return pointer;\n }\n // eslint-disable-next-line prefer-const\n let [moduleName, functionName] = pointer.split('#');\n // Temp workaround until v2\n if (moduleName === 'change-case') {\n moduleName = paramCase(functionName);\n }\n const { resolve } = importExternally('path');\n const localFilePath = resolve(process.cwd(), moduleName);\n const { existsSync } = importExternally('fs');\n const localFileExists = existsSync(localFilePath);\n const importFrom = importExternally('import-from');\n const loadedModule = localFileExists ? importExternally(localFilePath) : importFrom(process.cwd(), moduleName);\n if (!(functionName in loadedModule) && typeof loadedModule !== 'function') {\n throw new Error(`${functionName} couldn't be found in module ${moduleName}!`);\n }\n return loadedModule[functionName] || loadedModule;\n}\n//# sourceMappingURL=resolve-external-module-and-fn.js.map","export function isComplexPluginOutput(obj) {\n return typeof obj === 'object' && obj.hasOwnProperty('content');\n}\n//# sourceMappingURL=types.js.map","import { isListType, isNonNullType } from 'graphql';\nexport function mergeOutputs(content) {\n const result = { content: '', prepend: [], append: [] };\n if (Array.isArray(content)) {\n content.forEach(item => {\n if (typeof item === 'string') {\n result.content += item;\n }\n else {\n result.content += item.content;\n result.prepend.push(...(item.prepend || []));\n result.append.push(...(item.append || []));\n }\n });\n }\n return [...result.prepend, result.content, ...result.append].join('\\n');\n}\nexport function isWrapperType(t) {\n return isListType(t) || isNonNullType(t);\n}\nexport function getBaseType(type) {\n if (isWrapperType(type)) {\n return getBaseType(type.ofType);\n }\n else {\n return type;\n }\n}\n//# sourceMappingURL=utils.js.map","import { visit, isListType, isObjectType, Kind, isNonNullType, } from 'graphql';\nimport { getBaseType } from './utils';\nexport function isOutputConfigArray(type) {\n return Array.isArray(type);\n}\nexport function isConfiguredOutput(type) {\n return typeof type === 'object' && type.plugins;\n}\nexport function normalizeOutputParam(config) {\n // In case of direct array with a list of plugins\n if (isOutputConfigArray(config)) {\n return {\n documents: [],\n schema: [],\n plugins: isConfiguredOutput(config) ? config.plugins : config,\n };\n }\n else if (isConfiguredOutput(config)) {\n return config;\n }\n else {\n throw new Error(`Invalid \"generates\" config!`);\n }\n}\nexport function normalizeInstanceOrArray(type) {\n if (Array.isArray(type)) {\n return type;\n }\n else if (!type) {\n return [];\n }\n return [type];\n}\nexport function normalizeConfig(config) {\n if (typeof config === 'string') {\n return [{ [config]: {} }];\n }\n else if (Array.isArray(config)) {\n return config.map(plugin => (typeof plugin === 'string' ? { [plugin]: {} } : plugin));\n }\n else if (typeof config === 'object') {\n return Object.keys(config).reduce((prev, pluginName) => [...prev, { [pluginName]: config[pluginName] }], []);\n }\n else {\n return [];\n }\n}\nexport function hasNullableTypeRecursively(type) {\n if (!isNonNullType(type)) {\n return true;\n }\n if (isListType(type) || isNonNullType(type)) {\n return hasNullableTypeRecursively(type.ofType);\n }\n return false;\n}\nexport function isUsingTypes(document, externalFragments, schema) {\n let foundFields = 0;\n const typesStack = [];\n visit(document, {\n SelectionSet: {\n enter(node, key, parent, anscestors) {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n const selections = node.selections || [];\n if (schema && selections.length > 0) {\n const nextTypeName = (() => {\n if (parent.kind === Kind.FRAGMENT_DEFINITION) {\n return parent.typeCondition.name.value;\n }\n else if (parent.kind === Kind.FIELD) {\n const lastType = typesStack[typesStack.length - 1];\n if (!lastType) {\n throw new Error(`Unable to find parent type! Please make sure you operation passes validation`);\n }\n const field = lastType.getFields()[parent.name.value];\n if (!field) {\n throw new Error(`Unable to find field \"${parent.name.value}\" on type \"${lastType}\"!`);\n }\n return getBaseType(field.type).name;\n }\n else if (parent.kind === Kind.OPERATION_DEFINITION) {\n if (parent.operation === 'query') {\n return schema.getQueryType().name;\n }\n else if (parent.operation === 'mutation') {\n return schema.getMutationType().name;\n }\n else if (parent.operation === 'subscription') {\n return schema.getSubscriptionType().name;\n }\n }\n else if (parent.kind === Kind.INLINE_FRAGMENT) {\n if (parent.typeCondition) {\n return parent.typeCondition.name.value;\n }\n else {\n return typesStack[typesStack.length - 1].name;\n }\n }\n return null;\n })();\n typesStack.push(schema.getType(nextTypeName));\n }\n },\n leave(node) {\n const selections = node.selections || [];\n if (schema && selections.length > 0) {\n typesStack.pop();\n }\n },\n },\n Field: {\n enter: (node, key, parent, path, anscestors) => {\n if (node.name.value.startsWith('__')) {\n return;\n }\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n const selections = node.selectionSet ? node.selectionSet.selections || [] : [];\n const relevantFragmentSpreads = selections.filter(s => s.kind === Kind.FRAGMENT_SPREAD && !externalFragments.includes(s.name.value));\n if (selections.length === 0 || relevantFragmentSpreads.length > 0) {\n foundFields++;\n }\n if (schema) {\n const lastType = typesStack[typesStack.length - 1];\n if (lastType) {\n if (isObjectType(lastType)) {\n const field = lastType.getFields()[node.name.value];\n if (!field) {\n throw new Error(`Unable to find field \"${node.name.value}\" on type \"${lastType}\"!`);\n }\n const currentType = field.type;\n // To handle `Maybe` usage\n if (hasNullableTypeRecursively(currentType)) {\n foundFields++;\n }\n }\n }\n }\n },\n },\n enter: {\n VariableDefinition: (node, key, parent, path, anscestors) => {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n foundFields++;\n },\n InputValueDefinition: (node, key, parent, path, anscestors) => {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n foundFields++;\n },\n },\n });\n return foundFields > 0;\n}\n//# sourceMappingURL=helpers.js.map","import { parse, GraphQLObjectType, isObjectType, printType, Kind, visit, } from 'graphql';\nimport { merge } from 'lodash';\nimport { getBaseType } from './utils';\n/**\n * Federation Spec\n */\nexport const federationSpec = parse(/* GraphQL */ `\n scalar _FieldSet\n\n directive @external on FIELD_DEFINITION\n directive @requires(fields: _FieldSet!) on FIELD_DEFINITION\n directive @provides(fields: _FieldSet!) on FIELD_DEFINITION\n directive @key(fields: _FieldSet!) on OBJECT | INTERFACE\n`);\n/**\n * Adds `__resolveReference` in each ObjectType involved in Federation.\n * @param schema\n */\nexport function addFederationReferencesToSchema(schema) {\n const typeMap = schema.getTypeMap();\n for (const typeName in typeMap) {\n const type = schema.getType(typeName);\n if (isObjectType(type) && isFederationObjectType(type)) {\n const typeConfig = type.toConfig();\n typeConfig.fields = {\n [resolveReferenceFieldName]: {\n type,\n },\n ...typeConfig.fields,\n };\n const newType = new GraphQLObjectType(typeConfig);\n newType.astNode = newType.astNode || parse(printType(newType)).definitions[0];\n newType.astNode.fields.unshift({\n kind: Kind.FIELD_DEFINITION,\n name: {\n kind: Kind.NAME,\n value: resolveReferenceFieldName,\n },\n type: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: typeName,\n },\n },\n });\n typeMap[typeName] = newType;\n }\n }\n return schema;\n}\n/**\n * Removes Federation Spec from GraphQL Schema\n * @param schema\n * @param config\n */\nexport function removeFederation(schema) {\n const queryType = schema.getQueryType();\n const queryTypeFields = queryType.getFields();\n delete queryTypeFields._entities;\n delete queryTypeFields._service;\n const typeMap = schema.getTypeMap();\n delete typeMap._Service;\n delete typeMap._Entity;\n delete typeMap._Any;\n return schema;\n}\nconst resolveReferenceFieldName = '__resolveReference';\nexport class ApolloFederation {\n constructor({ enabled, schema }) {\n this.enabled = false;\n this.enabled = enabled;\n this.schema = schema;\n this.providesMap = this.createMapOfProvides();\n }\n /**\n * Excludes types definde by Federation\n * @param typeNames List of type names\n */\n filterTypeNames(typeNames) {\n return this.enabled ? typeNames.filter(t => t !== '_FieldSet') : typeNames;\n }\n /**\n * Excludes `__resolveReference` fields\n * @param fieldNames List of field names\n */\n filterFieldNames(fieldNames) {\n return this.enabled ? fieldNames.filter(t => t !== resolveReferenceFieldName) : fieldNames;\n }\n /**\n * Decides if directive should not be generated\n * @param name directive's name\n */\n skipDirective(name) {\n return this.enabled && ['external', 'requires', 'provides', 'key'].includes(name);\n }\n /**\n * Decides if scalar should not be generated\n * @param name directive's name\n */\n skipScalar(name) {\n return this.enabled && name === '_FieldSet';\n }\n /**\n * Decides if field should not be generated\n * @param data\n */\n skipField({ fieldNode, parentType }) {\n if (!this.enabled || !isObjectType(parentType) || !isFederationObjectType(parentType)) {\n return false;\n }\n return this.isExternalAndNotProvided(fieldNode, parentType);\n }\n isResolveReferenceField(fieldNode) {\n const name = typeof fieldNode.name === 'string' ? fieldNode.name : fieldNode.name.value;\n return this.enabled && name === resolveReferenceFieldName;\n }\n /**\n * Transforms ParentType signature in ObjectTypes involved in Federation\n * @param data\n */\n transformParentType({ fieldNode, parentType, parentTypeSignature, }) {\n if (this.enabled &&\n isObjectType(parentType) &&\n isFederationObjectType(parentType) &&\n (isTypeExtension(parentType) || fieldNode.name.value === resolveReferenceFieldName)) {\n const keys = getDirectivesByName('key', parentType);\n if (keys.length) {\n const outputs = [`{ __typename: '${parentType.name}' } &`];\n // Look for @requires and see what the service needs and gets\n const requires = getDirectivesByName('requires', fieldNode).map(this.extractKeyOrRequiresFieldSet);\n const requiredFields = this.translateFieldSet(merge({}, ...requires), parentTypeSignature);\n // @key() @key() - \"primary keys\" in Federation\n const primaryKeys = keys.map(def => {\n const fields = this.extractKeyOrRequiresFieldSet(def);\n return this.translateFieldSet(fields, parentTypeSignature);\n });\n const [open, close] = primaryKeys.length > 1 ? ['(', ')'] : ['', ''];\n outputs.push([open, primaryKeys.join(' | '), close].join(''));\n // include required fields\n if (requires.length) {\n outputs.push(`& ${requiredFields}`);\n }\n return outputs.join(' ');\n }\n }\n return parentTypeSignature;\n }\n isExternalAndNotProvided(fieldNode, objectType) {\n return this.isExternal(fieldNode) && !this.hasProvides(objectType, fieldNode);\n }\n isExternal(node) {\n return getDirectivesByName('external', node).length > 0;\n }\n hasProvides(objectType, node) {\n const fields = this.providesMap[isObjectType(objectType) ? objectType.name : objectType.name.value];\n if (fields && fields.length) {\n return fields.includes(node.name.value);\n }\n return false;\n }\n translateFieldSet(fields, parentTypeRef) {\n return `GraphQLRecursivePick<${parentTypeRef}, ${JSON.stringify(fields)}>`;\n }\n extractKeyOrRequiresFieldSet(directive) {\n const arg = directive.arguments.find(arg => arg.name.value === 'fields');\n const value = arg.value.value;\n return visit(parse(`{${value}}`), {\n leave: {\n SelectionSet(node) {\n return node.selections.reduce((accum, field) => {\n accum[field.name] = field.selection;\n return accum;\n }, {});\n },\n Field(node) {\n return {\n name: node.name.value,\n selection: node.selectionSet ? node.selectionSet : true,\n };\n },\n Document(node) {\n return node.definitions.find((def) => def.kind === 'OperationDefinition' && def.operation === 'query').selectionSet;\n },\n },\n });\n }\n extractProvidesFieldSet(directive) {\n const arg = directive.arguments.find(arg => arg.name.value === 'fields');\n const value = arg.value.value;\n if (/[{}]/gi.test(value)) {\n throw new Error('Nested fields in _FieldSet is not supported in the @provides directive');\n }\n return value.split(/\\s+/g);\n }\n createMapOfProvides() {\n const providesMap = {};\n Object.keys(this.schema.getTypeMap()).forEach(typename => {\n const objectType = this.schema.getType(typename);\n if (isObjectType(objectType)) {\n Object.values(objectType.getFields()).forEach(field => {\n const provides = getDirectivesByName('provides', field.astNode)\n .map(this.extractProvidesFieldSet)\n .reduce((prev, curr) => [...prev, ...curr], []);\n const ofType = getBaseType(field.type);\n if (!providesMap[ofType.name]) {\n providesMap[ofType.name] = [];\n }\n providesMap[ofType.name].push(...provides);\n });\n }\n });\n return providesMap;\n }\n}\n/**\n * Checks if Object Type is involved in Federation. Based on `@key` directive\n * @param node Type\n */\nfunction isFederationObjectType(node) {\n const definition = isObjectType(node)\n ? node.astNode || parse(printType(node)).definitions[0]\n : node;\n const name = definition.name.value;\n const directives = definition.directives;\n const isNotRoot = !['Query', 'Mutation', 'Subscription'].includes(name);\n const isNotIntrospection = !name.startsWith('__');\n const hasKeyDirective = directives.some(d => d.name.value === 'key');\n return isNotRoot && isNotIntrospection && hasKeyDirective;\n}\n/**\n * Extracts directives from a node based on directive's name\n * @param name directive name\n * @param node ObjectType or Field\n */\nfunction getDirectivesByName(name, node) {\n let astNode;\n if (isObjectType(node)) {\n astNode = node.astNode;\n }\n else {\n astNode = node;\n }\n if (astNode && astNode.directives) {\n return astNode.directives.filter(d => d.name.value === name);\n }\n return [];\n}\n/**\n * Checks if the Object Type extends a federated type from a remote schema.\n * Based on if any of its fields contain the `@external` directive\n * @param node Type\n */\nfunction isTypeExtension(node) {\n var _a;\n const definition = isObjectType(node)\n ? node.astNode || parse(printType(node)).definitions[0]\n : node;\n return (_a = definition.fields) === null || _a === void 0 ? void 0 : _a.some(field => getDirectivesByName('external', field).length);\n}\n//# sourceMappingURL=federation.js.map","export class DetailedError extends Error {\n constructor(message, details, source) {\n super(message);\n this.message = message;\n this.details = details;\n this.source = source;\n Object.setPrototypeOf(this, DetailedError.prototype);\n Error.captureStackTrace(this, DetailedError);\n }\n}\nexport function isDetailedError(error) {\n return error.details;\n}\n//# sourceMappingURL=errors.js.map"],"names":["paramCase","isListType","isNonNullType","visit","Kind","isObjectType","parse","GraphQLObjectType","printType","merge"],"mappings":"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"}
package/index.esm.js CHANGED
@@ -150,8 +150,13 @@ function isUsingTypes(document, externalFragments, schema) {
150
150
  return schema.getSubscriptionType().name;
151
151
  }
152
152
  }
153
- else if (parent.kind === Kind.INLINE_FRAGMENT && parent.typeCondition) {
154
- return parent.typeCondition.name.value;
153
+ else if (parent.kind === Kind.INLINE_FRAGMENT) {
154
+ if (parent.typeCondition) {
155
+ return parent.typeCondition.name.value;
156
+ }
157
+ else {
158
+ return typesStack[typesStack.length - 1].name;
159
+ }
155
160
  }
156
161
  return null;
157
162
  })();
package/index.esm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../dist/utils/plugins-helpers/src/resolve-external-module-and-fn.js","../../../dist/utils/plugins-helpers/src/types.js","../../../dist/utils/plugins-helpers/src/utils.js","../../../dist/utils/plugins-helpers/src/helpers.js","../../../dist/utils/plugins-helpers/src/federation.js","../../../dist/utils/plugins-helpers/src/errors.js"],"sourcesContent":["import { paramCase } from 'param-case';\nexport function resolveExternalModuleAndFn(pointer) {\n // eslint-disable-next-line no-eval\n const importExternally = (moduleName) => eval(`require('${moduleName}')`);\n if (typeof pointer === 'function') {\n return pointer;\n }\n // eslint-disable-next-line prefer-const\n let [moduleName, functionName] = pointer.split('#');\n // Temp workaround until v2\n if (moduleName === 'change-case') {\n moduleName = paramCase(functionName);\n }\n const { resolve } = importExternally('path');\n const localFilePath = resolve(process.cwd(), moduleName);\n const { existsSync } = importExternally('fs');\n const localFileExists = existsSync(localFilePath);\n const importFrom = importExternally('import-from');\n const loadedModule = localFileExists ? importExternally(localFilePath) : importFrom(process.cwd(), moduleName);\n if (!(functionName in loadedModule) && typeof loadedModule !== 'function') {\n throw new Error(`${functionName} couldn't be found in module ${moduleName}!`);\n }\n return loadedModule[functionName] || loadedModule;\n}\n//# sourceMappingURL=resolve-external-module-and-fn.js.map","export function isComplexPluginOutput(obj) {\n return typeof obj === 'object' && obj.hasOwnProperty('content');\n}\n//# sourceMappingURL=types.js.map","import { isListType, isNonNullType } from 'graphql';\nexport function mergeOutputs(content) {\n const result = { content: '', prepend: [], append: [] };\n if (Array.isArray(content)) {\n content.forEach(item => {\n if (typeof item === 'string') {\n result.content += item;\n }\n else {\n result.content += item.content;\n result.prepend.push(...(item.prepend || []));\n result.append.push(...(item.append || []));\n }\n });\n }\n return [...result.prepend, result.content, ...result.append].join('\\n');\n}\nexport function isWrapperType(t) {\n return isListType(t) || isNonNullType(t);\n}\nexport function getBaseType(type) {\n if (isWrapperType(type)) {\n return getBaseType(type.ofType);\n }\n else {\n return type;\n }\n}\n//# sourceMappingURL=utils.js.map","import { visit, isListType, isObjectType, Kind, isNonNullType, } from 'graphql';\nimport { getBaseType } from './utils';\nexport function isOutputConfigArray(type) {\n return Array.isArray(type);\n}\nexport function isConfiguredOutput(type) {\n return typeof type === 'object' && type.plugins;\n}\nexport function normalizeOutputParam(config) {\n // In case of direct array with a list of plugins\n if (isOutputConfigArray(config)) {\n return {\n documents: [],\n schema: [],\n plugins: isConfiguredOutput(config) ? config.plugins : config,\n };\n }\n else if (isConfiguredOutput(config)) {\n return config;\n }\n else {\n throw new Error(`Invalid \"generates\" config!`);\n }\n}\nexport function normalizeInstanceOrArray(type) {\n if (Array.isArray(type)) {\n return type;\n }\n else if (!type) {\n return [];\n }\n return [type];\n}\nexport function normalizeConfig(config) {\n if (typeof config === 'string') {\n return [{ [config]: {} }];\n }\n else if (Array.isArray(config)) {\n return config.map(plugin => (typeof plugin === 'string' ? { [plugin]: {} } : plugin));\n }\n else if (typeof config === 'object') {\n return Object.keys(config).reduce((prev, pluginName) => [...prev, { [pluginName]: config[pluginName] }], []);\n }\n else {\n return [];\n }\n}\nexport function hasNullableTypeRecursively(type) {\n if (!isNonNullType(type)) {\n return true;\n }\n if (isListType(type) || isNonNullType(type)) {\n return hasNullableTypeRecursively(type.ofType);\n }\n return false;\n}\nexport function isUsingTypes(document, externalFragments, schema) {\n let foundFields = 0;\n const typesStack = [];\n visit(document, {\n SelectionSet: {\n enter(node, key, parent, anscestors) {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n const selections = node.selections || [];\n if (schema && selections.length > 0) {\n const nextTypeName = (() => {\n if (parent.kind === Kind.FRAGMENT_DEFINITION) {\n return parent.typeCondition.name.value;\n }\n else if (parent.kind === Kind.FIELD) {\n const lastType = typesStack[typesStack.length - 1];\n if (!lastType) {\n throw new Error(`Unable to find parent type! Please make sure you operation passes validation`);\n }\n const field = lastType.getFields()[parent.name.value];\n if (!field) {\n throw new Error(`Unable to find field \"${parent.name.value}\" on type \"${lastType}\"!`);\n }\n return getBaseType(field.type).name;\n }\n else if (parent.kind === Kind.OPERATION_DEFINITION) {\n if (parent.operation === 'query') {\n return schema.getQueryType().name;\n }\n else if (parent.operation === 'mutation') {\n return schema.getMutationType().name;\n }\n else if (parent.operation === 'subscription') {\n return schema.getSubscriptionType().name;\n }\n }\n else if (parent.kind === Kind.INLINE_FRAGMENT && parent.typeCondition) {\n return parent.typeCondition.name.value;\n }\n return null;\n })();\n typesStack.push(schema.getType(nextTypeName));\n }\n },\n leave(node) {\n const selections = node.selections || [];\n if (schema && selections.length > 0) {\n typesStack.pop();\n }\n },\n },\n Field: {\n enter: (node, key, parent, path, anscestors) => {\n if (node.name.value.startsWith('__')) {\n return;\n }\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n const selections = node.selectionSet ? node.selectionSet.selections || [] : [];\n const relevantFragmentSpreads = selections.filter(s => s.kind === Kind.FRAGMENT_SPREAD && !externalFragments.includes(s.name.value));\n if (selections.length === 0 || relevantFragmentSpreads.length > 0) {\n foundFields++;\n }\n if (schema) {\n const lastType = typesStack[typesStack.length - 1];\n if (lastType) {\n if (isObjectType(lastType)) {\n const field = lastType.getFields()[node.name.value];\n if (!field) {\n throw new Error(`Unable to find field \"${node.name.value}\" on type \"${lastType}\"!`);\n }\n const currentType = field.type;\n // To handle `Maybe` usage\n if (hasNullableTypeRecursively(currentType)) {\n foundFields++;\n }\n }\n }\n }\n },\n },\n enter: {\n VariableDefinition: (node, key, parent, path, anscestors) => {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n foundFields++;\n },\n InputValueDefinition: (node, key, parent, path, anscestors) => {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n foundFields++;\n },\n },\n });\n return foundFields > 0;\n}\n//# sourceMappingURL=helpers.js.map","import { parse, GraphQLObjectType, isObjectType, printType, Kind, visit, } from 'graphql';\nimport { merge } from 'lodash';\nimport { getBaseType } from './utils';\n/**\n * Federation Spec\n */\nexport const federationSpec = parse(/* GraphQL */ `\n scalar _FieldSet\n\n directive @external on FIELD_DEFINITION\n directive @requires(fields: _FieldSet!) on FIELD_DEFINITION\n directive @provides(fields: _FieldSet!) on FIELD_DEFINITION\n directive @key(fields: _FieldSet!) on OBJECT | INTERFACE\n`);\n/**\n * Adds `__resolveReference` in each ObjectType involved in Federation.\n * @param schema\n */\nexport function addFederationReferencesToSchema(schema) {\n const typeMap = schema.getTypeMap();\n for (const typeName in typeMap) {\n const type = schema.getType(typeName);\n if (isObjectType(type) && isFederationObjectType(type)) {\n const typeConfig = type.toConfig();\n typeConfig.fields = {\n [resolveReferenceFieldName]: {\n type,\n },\n ...typeConfig.fields,\n };\n const newType = new GraphQLObjectType(typeConfig);\n newType.astNode = newType.astNode || parse(printType(newType)).definitions[0];\n newType.astNode.fields.unshift({\n kind: Kind.FIELD_DEFINITION,\n name: {\n kind: Kind.NAME,\n value: resolveReferenceFieldName,\n },\n type: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: typeName,\n },\n },\n });\n typeMap[typeName] = newType;\n }\n }\n return schema;\n}\n/**\n * Removes Federation Spec from GraphQL Schema\n * @param schema\n * @param config\n */\nexport function removeFederation(schema) {\n const queryType = schema.getQueryType();\n const queryTypeFields = queryType.getFields();\n delete queryTypeFields._entities;\n delete queryTypeFields._service;\n const typeMap = schema.getTypeMap();\n delete typeMap._Service;\n delete typeMap._Entity;\n delete typeMap._Any;\n return schema;\n}\nconst resolveReferenceFieldName = '__resolveReference';\nexport class ApolloFederation {\n constructor({ enabled, schema }) {\n this.enabled = false;\n this.enabled = enabled;\n this.schema = schema;\n this.providesMap = this.createMapOfProvides();\n }\n /**\n * Excludes types definde by Federation\n * @param typeNames List of type names\n */\n filterTypeNames(typeNames) {\n return this.enabled ? typeNames.filter(t => t !== '_FieldSet') : typeNames;\n }\n /**\n * Excludes `__resolveReference` fields\n * @param fieldNames List of field names\n */\n filterFieldNames(fieldNames) {\n return this.enabled ? fieldNames.filter(t => t !== resolveReferenceFieldName) : fieldNames;\n }\n /**\n * Decides if directive should not be generated\n * @param name directive's name\n */\n skipDirective(name) {\n return this.enabled && ['external', 'requires', 'provides', 'key'].includes(name);\n }\n /**\n * Decides if scalar should not be generated\n * @param name directive's name\n */\n skipScalar(name) {\n return this.enabled && name === '_FieldSet';\n }\n /**\n * Decides if field should not be generated\n * @param data\n */\n skipField({ fieldNode, parentType }) {\n if (!this.enabled || !isObjectType(parentType) || !isFederationObjectType(parentType)) {\n return false;\n }\n return this.isExternalAndNotProvided(fieldNode, parentType);\n }\n isResolveReferenceField(fieldNode) {\n const name = typeof fieldNode.name === 'string' ? fieldNode.name : fieldNode.name.value;\n return this.enabled && name === resolveReferenceFieldName;\n }\n /**\n * Transforms ParentType signature in ObjectTypes involved in Federation\n * @param data\n */\n transformParentType({ fieldNode, parentType, parentTypeSignature, }) {\n if (this.enabled &&\n isObjectType(parentType) &&\n isFederationObjectType(parentType) &&\n (isTypeExtension(parentType) || fieldNode.name.value === resolveReferenceFieldName)) {\n const keys = getDirectivesByName('key', parentType);\n if (keys.length) {\n const outputs = [`{ __typename: '${parentType.name}' } &`];\n // Look for @requires and see what the service needs and gets\n const requires = getDirectivesByName('requires', fieldNode).map(this.extractKeyOrRequiresFieldSet);\n const requiredFields = this.translateFieldSet(merge({}, ...requires), parentTypeSignature);\n // @key() @key() - \"primary keys\" in Federation\n const primaryKeys = keys.map(def => {\n const fields = this.extractKeyOrRequiresFieldSet(def);\n return this.translateFieldSet(fields, parentTypeSignature);\n });\n const [open, close] = primaryKeys.length > 1 ? ['(', ')'] : ['', ''];\n outputs.push([open, primaryKeys.join(' | '), close].join(''));\n // include required fields\n if (requires.length) {\n outputs.push(`& ${requiredFields}`);\n }\n return outputs.join(' ');\n }\n }\n return parentTypeSignature;\n }\n isExternalAndNotProvided(fieldNode, objectType) {\n return this.isExternal(fieldNode) && !this.hasProvides(objectType, fieldNode);\n }\n isExternal(node) {\n return getDirectivesByName('external', node).length > 0;\n }\n hasProvides(objectType, node) {\n const fields = this.providesMap[isObjectType(objectType) ? objectType.name : objectType.name.value];\n if (fields && fields.length) {\n return fields.includes(node.name.value);\n }\n return false;\n }\n translateFieldSet(fields, parentTypeRef) {\n return `GraphQLRecursivePick<${parentTypeRef}, ${JSON.stringify(fields)}>`;\n }\n extractKeyOrRequiresFieldSet(directive) {\n const arg = directive.arguments.find(arg => arg.name.value === 'fields');\n const value = arg.value.value;\n return visit(parse(`{${value}}`), {\n leave: {\n SelectionSet(node) {\n return node.selections.reduce((accum, field) => {\n accum[field.name] = field.selection;\n return accum;\n }, {});\n },\n Field(node) {\n return {\n name: node.name.value,\n selection: node.selectionSet ? node.selectionSet : true,\n };\n },\n Document(node) {\n return node.definitions.find((def) => def.kind === 'OperationDefinition' && def.operation === 'query').selectionSet;\n },\n },\n });\n }\n extractProvidesFieldSet(directive) {\n const arg = directive.arguments.find(arg => arg.name.value === 'fields');\n const value = arg.value.value;\n if (/[{}]/gi.test(value)) {\n throw new Error('Nested fields in _FieldSet is not supported in the @provides directive');\n }\n return value.split(/\\s+/g);\n }\n createMapOfProvides() {\n const providesMap = {};\n Object.keys(this.schema.getTypeMap()).forEach(typename => {\n const objectType = this.schema.getType(typename);\n if (isObjectType(objectType)) {\n Object.values(objectType.getFields()).forEach(field => {\n const provides = getDirectivesByName('provides', field.astNode)\n .map(this.extractProvidesFieldSet)\n .reduce((prev, curr) => [...prev, ...curr], []);\n const ofType = getBaseType(field.type);\n if (!providesMap[ofType.name]) {\n providesMap[ofType.name] = [];\n }\n providesMap[ofType.name].push(...provides);\n });\n }\n });\n return providesMap;\n }\n}\n/**\n * Checks if Object Type is involved in Federation. Based on `@key` directive\n * @param node Type\n */\nfunction isFederationObjectType(node) {\n const definition = isObjectType(node)\n ? node.astNode || parse(printType(node)).definitions[0]\n : node;\n const name = definition.name.value;\n const directives = definition.directives;\n const isNotRoot = !['Query', 'Mutation', 'Subscription'].includes(name);\n const isNotIntrospection = !name.startsWith('__');\n const hasKeyDirective = directives.some(d => d.name.value === 'key');\n return isNotRoot && isNotIntrospection && hasKeyDirective;\n}\n/**\n * Extracts directives from a node based on directive's name\n * @param name directive name\n * @param node ObjectType or Field\n */\nfunction getDirectivesByName(name, node) {\n let astNode;\n if (isObjectType(node)) {\n astNode = node.astNode;\n }\n else {\n astNode = node;\n }\n if (astNode && astNode.directives) {\n return astNode.directives.filter(d => d.name.value === name);\n }\n return [];\n}\n/**\n * Checks if the Object Type extends a federated type from a remote schema.\n * Based on if any of its fields contain the `@external` directive\n * @param node Type\n */\nfunction isTypeExtension(node) {\n var _a;\n const definition = isObjectType(node)\n ? node.astNode || parse(printType(node)).definitions[0]\n : node;\n return (_a = definition.fields) === null || _a === void 0 ? void 0 : _a.some(field => getDirectivesByName('external', field).length);\n}\n//# sourceMappingURL=federation.js.map","export class DetailedError extends Error {\n constructor(message, details, source) {\n super(message);\n this.message = message;\n this.details = details;\n this.source = source;\n Object.setPrototypeOf(this, DetailedError.prototype);\n Error.captureStackTrace(this, DetailedError);\n }\n}\nexport function isDetailedError(error) {\n return error.details;\n}\n//# sourceMappingURL=errors.js.map"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../dist/utils/plugins-helpers/src/resolve-external-module-and-fn.js","../../../dist/utils/plugins-helpers/src/types.js","../../../dist/utils/plugins-helpers/src/utils.js","../../../dist/utils/plugins-helpers/src/helpers.js","../../../dist/utils/plugins-helpers/src/federation.js","../../../dist/utils/plugins-helpers/src/errors.js"],"sourcesContent":["import { paramCase } from 'param-case';\nexport function resolveExternalModuleAndFn(pointer) {\n // eslint-disable-next-line no-eval\n const importExternally = (moduleName) => eval(`require('${moduleName}')`);\n if (typeof pointer === 'function') {\n return pointer;\n }\n // eslint-disable-next-line prefer-const\n let [moduleName, functionName] = pointer.split('#');\n // Temp workaround until v2\n if (moduleName === 'change-case') {\n moduleName = paramCase(functionName);\n }\n const { resolve } = importExternally('path');\n const localFilePath = resolve(process.cwd(), moduleName);\n const { existsSync } = importExternally('fs');\n const localFileExists = existsSync(localFilePath);\n const importFrom = importExternally('import-from');\n const loadedModule = localFileExists ? importExternally(localFilePath) : importFrom(process.cwd(), moduleName);\n if (!(functionName in loadedModule) && typeof loadedModule !== 'function') {\n throw new Error(`${functionName} couldn't be found in module ${moduleName}!`);\n }\n return loadedModule[functionName] || loadedModule;\n}\n//# sourceMappingURL=resolve-external-module-and-fn.js.map","export function isComplexPluginOutput(obj) {\n return typeof obj === 'object' && obj.hasOwnProperty('content');\n}\n//# sourceMappingURL=types.js.map","import { isListType, isNonNullType } from 'graphql';\nexport function mergeOutputs(content) {\n const result = { content: '', prepend: [], append: [] };\n if (Array.isArray(content)) {\n content.forEach(item => {\n if (typeof item === 'string') {\n result.content += item;\n }\n else {\n result.content += item.content;\n result.prepend.push(...(item.prepend || []));\n result.append.push(...(item.append || []));\n }\n });\n }\n return [...result.prepend, result.content, ...result.append].join('\\n');\n}\nexport function isWrapperType(t) {\n return isListType(t) || isNonNullType(t);\n}\nexport function getBaseType(type) {\n if (isWrapperType(type)) {\n return getBaseType(type.ofType);\n }\n else {\n return type;\n }\n}\n//# sourceMappingURL=utils.js.map","import { visit, isListType, isObjectType, Kind, isNonNullType, } from 'graphql';\nimport { getBaseType } from './utils';\nexport function isOutputConfigArray(type) {\n return Array.isArray(type);\n}\nexport function isConfiguredOutput(type) {\n return typeof type === 'object' && type.plugins;\n}\nexport function normalizeOutputParam(config) {\n // In case of direct array with a list of plugins\n if (isOutputConfigArray(config)) {\n return {\n documents: [],\n schema: [],\n plugins: isConfiguredOutput(config) ? config.plugins : config,\n };\n }\n else if (isConfiguredOutput(config)) {\n return config;\n }\n else {\n throw new Error(`Invalid \"generates\" config!`);\n }\n}\nexport function normalizeInstanceOrArray(type) {\n if (Array.isArray(type)) {\n return type;\n }\n else if (!type) {\n return [];\n }\n return [type];\n}\nexport function normalizeConfig(config) {\n if (typeof config === 'string') {\n return [{ [config]: {} }];\n }\n else if (Array.isArray(config)) {\n return config.map(plugin => (typeof plugin === 'string' ? { [plugin]: {} } : plugin));\n }\n else if (typeof config === 'object') {\n return Object.keys(config).reduce((prev, pluginName) => [...prev, { [pluginName]: config[pluginName] }], []);\n }\n else {\n return [];\n }\n}\nexport function hasNullableTypeRecursively(type) {\n if (!isNonNullType(type)) {\n return true;\n }\n if (isListType(type) || isNonNullType(type)) {\n return hasNullableTypeRecursively(type.ofType);\n }\n return false;\n}\nexport function isUsingTypes(document, externalFragments, schema) {\n let foundFields = 0;\n const typesStack = [];\n visit(document, {\n SelectionSet: {\n enter(node, key, parent, anscestors) {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n const selections = node.selections || [];\n if (schema && selections.length > 0) {\n const nextTypeName = (() => {\n if (parent.kind === Kind.FRAGMENT_DEFINITION) {\n return parent.typeCondition.name.value;\n }\n else if (parent.kind === Kind.FIELD) {\n const lastType = typesStack[typesStack.length - 1];\n if (!lastType) {\n throw new Error(`Unable to find parent type! Please make sure you operation passes validation`);\n }\n const field = lastType.getFields()[parent.name.value];\n if (!field) {\n throw new Error(`Unable to find field \"${parent.name.value}\" on type \"${lastType}\"!`);\n }\n return getBaseType(field.type).name;\n }\n else if (parent.kind === Kind.OPERATION_DEFINITION) {\n if (parent.operation === 'query') {\n return schema.getQueryType().name;\n }\n else if (parent.operation === 'mutation') {\n return schema.getMutationType().name;\n }\n else if (parent.operation === 'subscription') {\n return schema.getSubscriptionType().name;\n }\n }\n else if (parent.kind === Kind.INLINE_FRAGMENT) {\n if (parent.typeCondition) {\n return parent.typeCondition.name.value;\n }\n else {\n return typesStack[typesStack.length - 1].name;\n }\n }\n return null;\n })();\n typesStack.push(schema.getType(nextTypeName));\n }\n },\n leave(node) {\n const selections = node.selections || [];\n if (schema && selections.length > 0) {\n typesStack.pop();\n }\n },\n },\n Field: {\n enter: (node, key, parent, path, anscestors) => {\n if (node.name.value.startsWith('__')) {\n return;\n }\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n const selections = node.selectionSet ? node.selectionSet.selections || [] : [];\n const relevantFragmentSpreads = selections.filter(s => s.kind === Kind.FRAGMENT_SPREAD && !externalFragments.includes(s.name.value));\n if (selections.length === 0 || relevantFragmentSpreads.length > 0) {\n foundFields++;\n }\n if (schema) {\n const lastType = typesStack[typesStack.length - 1];\n if (lastType) {\n if (isObjectType(lastType)) {\n const field = lastType.getFields()[node.name.value];\n if (!field) {\n throw new Error(`Unable to find field \"${node.name.value}\" on type \"${lastType}\"!`);\n }\n const currentType = field.type;\n // To handle `Maybe` usage\n if (hasNullableTypeRecursively(currentType)) {\n foundFields++;\n }\n }\n }\n }\n },\n },\n enter: {\n VariableDefinition: (node, key, parent, path, anscestors) => {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n foundFields++;\n },\n InputValueDefinition: (node, key, parent, path, anscestors) => {\n const insideIgnoredFragment = anscestors.find((f) => f.kind && f.kind === 'FragmentDefinition' && externalFragments.includes(f.name.value));\n if (insideIgnoredFragment) {\n return;\n }\n foundFields++;\n },\n },\n });\n return foundFields > 0;\n}\n//# sourceMappingURL=helpers.js.map","import { parse, GraphQLObjectType, isObjectType, printType, Kind, visit, } from 'graphql';\nimport { merge } from 'lodash';\nimport { getBaseType } from './utils';\n/**\n * Federation Spec\n */\nexport const federationSpec = parse(/* GraphQL */ `\n scalar _FieldSet\n\n directive @external on FIELD_DEFINITION\n directive @requires(fields: _FieldSet!) on FIELD_DEFINITION\n directive @provides(fields: _FieldSet!) on FIELD_DEFINITION\n directive @key(fields: _FieldSet!) on OBJECT | INTERFACE\n`);\n/**\n * Adds `__resolveReference` in each ObjectType involved in Federation.\n * @param schema\n */\nexport function addFederationReferencesToSchema(schema) {\n const typeMap = schema.getTypeMap();\n for (const typeName in typeMap) {\n const type = schema.getType(typeName);\n if (isObjectType(type) && isFederationObjectType(type)) {\n const typeConfig = type.toConfig();\n typeConfig.fields = {\n [resolveReferenceFieldName]: {\n type,\n },\n ...typeConfig.fields,\n };\n const newType = new GraphQLObjectType(typeConfig);\n newType.astNode = newType.astNode || parse(printType(newType)).definitions[0];\n newType.astNode.fields.unshift({\n kind: Kind.FIELD_DEFINITION,\n name: {\n kind: Kind.NAME,\n value: resolveReferenceFieldName,\n },\n type: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: typeName,\n },\n },\n });\n typeMap[typeName] = newType;\n }\n }\n return schema;\n}\n/**\n * Removes Federation Spec from GraphQL Schema\n * @param schema\n * @param config\n */\nexport function removeFederation(schema) {\n const queryType = schema.getQueryType();\n const queryTypeFields = queryType.getFields();\n delete queryTypeFields._entities;\n delete queryTypeFields._service;\n const typeMap = schema.getTypeMap();\n delete typeMap._Service;\n delete typeMap._Entity;\n delete typeMap._Any;\n return schema;\n}\nconst resolveReferenceFieldName = '__resolveReference';\nexport class ApolloFederation {\n constructor({ enabled, schema }) {\n this.enabled = false;\n this.enabled = enabled;\n this.schema = schema;\n this.providesMap = this.createMapOfProvides();\n }\n /**\n * Excludes types definde by Federation\n * @param typeNames List of type names\n */\n filterTypeNames(typeNames) {\n return this.enabled ? typeNames.filter(t => t !== '_FieldSet') : typeNames;\n }\n /**\n * Excludes `__resolveReference` fields\n * @param fieldNames List of field names\n */\n filterFieldNames(fieldNames) {\n return this.enabled ? fieldNames.filter(t => t !== resolveReferenceFieldName) : fieldNames;\n }\n /**\n * Decides if directive should not be generated\n * @param name directive's name\n */\n skipDirective(name) {\n return this.enabled && ['external', 'requires', 'provides', 'key'].includes(name);\n }\n /**\n * Decides if scalar should not be generated\n * @param name directive's name\n */\n skipScalar(name) {\n return this.enabled && name === '_FieldSet';\n }\n /**\n * Decides if field should not be generated\n * @param data\n */\n skipField({ fieldNode, parentType }) {\n if (!this.enabled || !isObjectType(parentType) || !isFederationObjectType(parentType)) {\n return false;\n }\n return this.isExternalAndNotProvided(fieldNode, parentType);\n }\n isResolveReferenceField(fieldNode) {\n const name = typeof fieldNode.name === 'string' ? fieldNode.name : fieldNode.name.value;\n return this.enabled && name === resolveReferenceFieldName;\n }\n /**\n * Transforms ParentType signature in ObjectTypes involved in Federation\n * @param data\n */\n transformParentType({ fieldNode, parentType, parentTypeSignature, }) {\n if (this.enabled &&\n isObjectType(parentType) &&\n isFederationObjectType(parentType) &&\n (isTypeExtension(parentType) || fieldNode.name.value === resolveReferenceFieldName)) {\n const keys = getDirectivesByName('key', parentType);\n if (keys.length) {\n const outputs = [`{ __typename: '${parentType.name}' } &`];\n // Look for @requires and see what the service needs and gets\n const requires = getDirectivesByName('requires', fieldNode).map(this.extractKeyOrRequiresFieldSet);\n const requiredFields = this.translateFieldSet(merge({}, ...requires), parentTypeSignature);\n // @key() @key() - \"primary keys\" in Federation\n const primaryKeys = keys.map(def => {\n const fields = this.extractKeyOrRequiresFieldSet(def);\n return this.translateFieldSet(fields, parentTypeSignature);\n });\n const [open, close] = primaryKeys.length > 1 ? ['(', ')'] : ['', ''];\n outputs.push([open, primaryKeys.join(' | '), close].join(''));\n // include required fields\n if (requires.length) {\n outputs.push(`& ${requiredFields}`);\n }\n return outputs.join(' ');\n }\n }\n return parentTypeSignature;\n }\n isExternalAndNotProvided(fieldNode, objectType) {\n return this.isExternal(fieldNode) && !this.hasProvides(objectType, fieldNode);\n }\n isExternal(node) {\n return getDirectivesByName('external', node).length > 0;\n }\n hasProvides(objectType, node) {\n const fields = this.providesMap[isObjectType(objectType) ? objectType.name : objectType.name.value];\n if (fields && fields.length) {\n return fields.includes(node.name.value);\n }\n return false;\n }\n translateFieldSet(fields, parentTypeRef) {\n return `GraphQLRecursivePick<${parentTypeRef}, ${JSON.stringify(fields)}>`;\n }\n extractKeyOrRequiresFieldSet(directive) {\n const arg = directive.arguments.find(arg => arg.name.value === 'fields');\n const value = arg.value.value;\n return visit(parse(`{${value}}`), {\n leave: {\n SelectionSet(node) {\n return node.selections.reduce((accum, field) => {\n accum[field.name] = field.selection;\n return accum;\n }, {});\n },\n Field(node) {\n return {\n name: node.name.value,\n selection: node.selectionSet ? node.selectionSet : true,\n };\n },\n Document(node) {\n return node.definitions.find((def) => def.kind === 'OperationDefinition' && def.operation === 'query').selectionSet;\n },\n },\n });\n }\n extractProvidesFieldSet(directive) {\n const arg = directive.arguments.find(arg => arg.name.value === 'fields');\n const value = arg.value.value;\n if (/[{}]/gi.test(value)) {\n throw new Error('Nested fields in _FieldSet is not supported in the @provides directive');\n }\n return value.split(/\\s+/g);\n }\n createMapOfProvides() {\n const providesMap = {};\n Object.keys(this.schema.getTypeMap()).forEach(typename => {\n const objectType = this.schema.getType(typename);\n if (isObjectType(objectType)) {\n Object.values(objectType.getFields()).forEach(field => {\n const provides = getDirectivesByName('provides', field.astNode)\n .map(this.extractProvidesFieldSet)\n .reduce((prev, curr) => [...prev, ...curr], []);\n const ofType = getBaseType(field.type);\n if (!providesMap[ofType.name]) {\n providesMap[ofType.name] = [];\n }\n providesMap[ofType.name].push(...provides);\n });\n }\n });\n return providesMap;\n }\n}\n/**\n * Checks if Object Type is involved in Federation. Based on `@key` directive\n * @param node Type\n */\nfunction isFederationObjectType(node) {\n const definition = isObjectType(node)\n ? node.astNode || parse(printType(node)).definitions[0]\n : node;\n const name = definition.name.value;\n const directives = definition.directives;\n const isNotRoot = !['Query', 'Mutation', 'Subscription'].includes(name);\n const isNotIntrospection = !name.startsWith('__');\n const hasKeyDirective = directives.some(d => d.name.value === 'key');\n return isNotRoot && isNotIntrospection && hasKeyDirective;\n}\n/**\n * Extracts directives from a node based on directive's name\n * @param name directive name\n * @param node ObjectType or Field\n */\nfunction getDirectivesByName(name, node) {\n let astNode;\n if (isObjectType(node)) {\n astNode = node.astNode;\n }\n else {\n astNode = node;\n }\n if (astNode && astNode.directives) {\n return astNode.directives.filter(d => d.name.value === name);\n }\n return [];\n}\n/**\n * Checks if the Object Type extends a federated type from a remote schema.\n * Based on if any of its fields contain the `@external` directive\n * @param node Type\n */\nfunction isTypeExtension(node) {\n var _a;\n const definition = isObjectType(node)\n ? node.astNode || parse(printType(node)).definitions[0]\n : node;\n return (_a = definition.fields) === null || _a === void 0 ? void 0 : _a.some(field => getDirectivesByName('external', field).length);\n}\n//# sourceMappingURL=federation.js.map","export class DetailedError extends Error {\n constructor(message, details, source) {\n super(message);\n this.message = message;\n this.details = details;\n this.source = source;\n Object.setPrototypeOf(this, DetailedError.prototype);\n Error.captureStackTrace(this, DetailedError);\n }\n}\nexport function isDetailedError(error) {\n return error.details;\n}\n//# sourceMappingURL=errors.js.map"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-codegen/plugin-helpers",
3
- "version": "1.17.9",
3
+ "version": "1.18.2",
4
4
  "description": "GraphQL Code Generator common utils and types",
5
5
  "peerDependencies": {
6
6
  "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
package/types.d.ts CHANGED
@@ -383,10 +383,25 @@ export declare namespace Types {
383
383
  * For more details: https://graphql-code-generator.com/docs/getting-started/development-workflow#watch-mode
384
384
  */
385
385
  watch?: boolean | string | string[];
386
+ /**
387
+ * @description Allows overriding the behavior of watch to use stat polling over native file watching support.
388
+ *
389
+ * Config fields have the same defaults and sematics as the identically named ones for chokidar.
390
+ *
391
+ * For more details: https://graphql-code-generator.com/docs/getting-started/development-workflow#watch-mode
392
+ */
393
+ watchConfig?: {
394
+ usePolling: boolean;
395
+ interval?: number;
396
+ };
386
397
  /**
387
398
  * @description A flag to suppress printing errors when they occur.
388
399
  */
389
400
  silent?: boolean;
401
+ /**
402
+ * @description A flag to print only errors.
403
+ */
404
+ errorsOnly?: boolean;
390
405
  /**
391
406
  * @description If you are using the programmatic API in a browser environment, you can override this configuration to load your plugins in a way different than require.
392
407
  */