UNPKG

24.5 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.cjs.js","sources":["../../../dist/presets/near-operation-file/src/utils.js","../../../dist/presets/near-operation-file/src/fragment-resolver.js","../../../dist/presets/near-operation-file/src/resolve-document-imports.js","../../../dist/presets/near-operation-file/src/index.js"],"sourcesContent":["import { join } from 'path';\nimport { visit } from 'graphql';\nimport parsePath from 'parse-filepath';\nexport function defineFilepathSubfolder(baseFilePath, folder) {\n const parsedPath = parsePath(baseFilePath);\n return join(parsedPath.dir, folder, parsedPath.base).replace(/\\\\/g, '/');\n}\nexport function appendExtensionToFilePath(baseFilePath, extension) {\n const parsedPath = parsePath(baseFilePath);\n return join(parsedPath.dir, parsedPath.name + extension).replace(/\\\\/g, '/');\n}\nexport function extractExternalFragmentsInUse(documentNode, fragmentNameToFile, result = {}, level = 0) {\n const ignoreList = new Set();\n // First, take all fragments definition from the current file, and mark them as ignored\n visit(documentNode, {\n enter: {\n FragmentDefinition: (node) => {\n ignoreList.add(node.name.value);\n },\n },\n });\n // Then, look for all used fragments in this document\n visit(documentNode, {\n enter: {\n FragmentSpread: (node) => {\n if (!ignoreList.has(node.name.value)) {\n if (result[node.name.value] === undefined ||\n (result[node.name.value] !== undefined && level < result[node.name.value])) {\n result[node.name.value] = level;\n if (fragmentNameToFile[node.name.value]) {\n extractExternalFragmentsInUse(fragmentNameToFile[node.name.value].node, fragmentNameToFile, result, level + 1);\n }\n }\n }\n },\n },\n });\n return result;\n}\n//# sourceMappingURL=utils.js.map","import { BaseVisitor, buildScalars, getConfigValue, getPossibleTypes, } from '@graphql-codegen/visitor-plugin-common';\nimport { Kind, print } from 'graphql';\nimport { extractExternalFragmentsInUse } from './utils';\n/**\n * Used by `buildFragmentResolver` to build a mapping of fragmentNames to paths, importNames, and other useful info\n */\nfunction buildFragmentRegistry({ generateFilePath }, { documents, config }, schemaObject) {\n const baseVisitor = new BaseVisitor(config, {\n scalars: buildScalars(schemaObject, config.scalars),\n dedupeOperationSuffix: getConfigValue(config.dedupeOperationSuffix, false),\n omitOperationSuffix: getConfigValue(config.omitOperationSuffix, false),\n fragmentVariablePrefix: getConfigValue(config.fragmentVariablePrefix, ''),\n fragmentVariableSuffix: getConfigValue(config.fragmentVariableSuffix, 'FragmentDoc'),\n });\n const getFragmentImports = (possbileTypes, name) => {\n const fragmentImports = [];\n fragmentImports.push({ name: baseVisitor.getFragmentVariableName(name), kind: 'document' });\n const fragmentSuffix = baseVisitor.getFragmentSuffix(name);\n if (possbileTypes.length === 1) {\n fragmentImports.push({\n name: baseVisitor.convertName(name, {\n useTypesPrefix: true,\n suffix: fragmentSuffix,\n }),\n kind: 'type',\n });\n }\n else if (possbileTypes.length !== 0) {\n possbileTypes.forEach(typeName => {\n fragmentImports.push({\n name: baseVisitor.convertName(name, {\n useTypesPrefix: true,\n suffix: `_${typeName}_${fragmentSuffix}`,\n }),\n kind: 'type',\n });\n });\n }\n return fragmentImports;\n };\n const duplicateFragmentNames = [];\n const registry = documents.reduce((prev, documentRecord) => {\n const fragments = documentRecord.document.definitions.filter(d => d.kind === Kind.FRAGMENT_DEFINITION);\n if (fragments.length > 0) {\n for (const fragment of fragments) {\n const schemaType = schemaObject.getType(fragment.typeCondition.name.value);\n if (!schemaType) {\n throw new Error(`Fragment \"${fragment.name.value}\" is set on non-existing type \"${fragment.typeCondition.name.value}\"!`);\n }\n const possibleTypes = getPossibleTypes(schemaObject, schemaType);\n const filePath = generateFilePath(documentRecord.location);\n const imports = getFragmentImports(possibleTypes.map(t => t.name), fragment.name.value);\n if (prev[fragment.name.value] && print(fragment) !== print(prev[fragment.name.value].node)) {\n duplicateFragmentNames.push(fragment.name.value);\n }\n prev[fragment.name.value] = {\n filePath,\n imports,\n onType: fragment.typeCondition.name.value,\n node: fragment,\n };\n }\n }\n return prev;\n }, {});\n if (duplicateFragmentNames.length) {\n throw new Error(`Multiple fragments with the name(s) \"${duplicateFragmentNames.join(', ')}\" were found.`);\n }\n return registry;\n}\n/**\n * Builds a fragment \"resolver\" that collects `externalFragments` definitions and `fragmentImportStatements`\n */\nexport default function buildFragmentResolver(collectorOptions, presetOptions, schemaObject) {\n const fragmentRegistry = buildFragmentRegistry(collectorOptions, presetOptions, schemaObject);\n const { baseOutputDir } = presetOptions;\n const { baseDir, typesImport } = collectorOptions;\n function resolveFragments(generatedFilePath, documentFileContent) {\n const fragmentsInUse = extractExternalFragmentsInUse(documentFileContent, fragmentRegistry);\n const externalFragments = [];\n // fragment files to import names\n const fragmentFileImports = {};\n for (const fragmentName of Object.keys(fragmentsInUse)) {\n const level = fragmentsInUse[fragmentName];\n const fragmentDetails = fragmentRegistry[fragmentName];\n if (fragmentDetails) {\n // add top level references to the import object\n // we don't checkf or global namespace because the calling config can do so\n if (level === 0) {\n if (fragmentFileImports[fragmentDetails.filePath] === undefined) {\n fragmentFileImports[fragmentDetails.filePath] = fragmentDetails.imports;\n }\n else {\n fragmentFileImports[fragmentDetails.filePath].push(...fragmentDetails.imports);\n }\n }\n externalFragments.push({\n level,\n isExternal: true,\n name: fragmentName,\n onType: fragmentDetails.onType,\n node: fragmentDetails.node,\n });\n }\n }\n return {\n externalFragments,\n fragmentImports: Object.entries(fragmentFileImports).map(([fragmentsFilePath, identifiers]) => ({\n baseDir,\n baseOutputDir,\n outputPath: generatedFilePath,\n importSource: {\n path: fragmentsFilePath,\n identifiers,\n },\n typesImport,\n })),\n };\n }\n return resolveFragments;\n}\n//# sourceMappingURL=fragment-resolver.js.map","import { isUsingTypes, DetailedError } from '@graphql-codegen/plugin-helpers';\nimport { generateImportStatement, resolveImportSource, } from '@graphql-codegen/visitor-plugin-common';\nimport buildFragmentResolver from './fragment-resolver';\n/**\n * Transform the preset's provided documents into single-file generator sources, while resolving fragment and user-defined imports\n *\n * Resolves user provided imports and fragment imports using the `DocumentImportResolverOptions`.\n * Does not define specific plugins, but rather returns a string[] of `importStatements` for the calling plugin to make use of\n */\nexport function resolveDocumentImports(presetOptions, schemaObject, importResolverOptions) {\n const resolveFragments = buildFragmentResolver(importResolverOptions, presetOptions, schemaObject);\n const { baseOutputDir, documents } = presetOptions;\n const { generateFilePath, schemaTypesSource, baseDir, typesImport } = importResolverOptions;\n return documents.map(documentFile => {\n try {\n const generatedFilePath = generateFilePath(documentFile.location);\n const importStatements = [];\n const { externalFragments, fragmentImports } = resolveFragments(generatedFilePath, documentFile.document);\n if (isUsingTypes(documentFile.document, externalFragments.map(m => m.name), schemaObject)) {\n const schemaTypesImportStatement = generateImportStatement({\n baseDir,\n importSource: resolveImportSource(schemaTypesSource),\n baseOutputDir,\n outputPath: generatedFilePath,\n typesImport,\n });\n importStatements.unshift(schemaTypesImportStatement);\n }\n return {\n filename: generatedFilePath,\n documents: [documentFile],\n importStatements,\n fragmentImports,\n externalFragments,\n };\n }\n catch (e) {\n throw new DetailedError(`Unable to validate GraphQL document!`, `\n File ${documentFile.location} caused error:\n ${e.message || e.toString()}\n `, documentFile.location);\n }\n });\n}\n//# sourceMappingURL=resolve-document-imports.js.map","import addPlugin from '@graphql-codegen/add';\nimport { join } from 'path';\nimport { buildASTSchema } from 'graphql';\nimport { appendExtensionToFilePath, defineFilepathSubfolder } from './utils';\nimport { resolveDocumentImports } from './resolve-document-imports';\nexport { resolveDocumentImports };\nexport const preset = {\n buildGeneratesSection: options => {\n var _a;\n const schemaObject = options.schemaAst\n ? options.schemaAst\n : buildASTSchema(options.schema, options.config);\n const baseDir = options.presetConfig.cwd || process.cwd();\n const extension = options.presetConfig.extension || '.generated.ts';\n const folder = options.presetConfig.folder || '';\n const importTypesNamespace = options.presetConfig.importTypesNamespace || 'Types';\n const importAllFragmentsFrom = options.presetConfig.importAllFragmentsFrom || null;\n const baseTypesPath = options.presetConfig.baseTypesPath;\n if (!baseTypesPath) {\n throw new Error(`Preset \"near-operation-file\" requires you to specify \"baseTypesPath\" configuration and point it to your base types file (generated by \"typescript\" plugin)!`);\n }\n const shouldAbsolute = !baseTypesPath.startsWith('~');\n const pluginMap = {\n ...options.pluginMap,\n add: addPlugin,\n };\n const sources = resolveDocumentImports(options, schemaObject, {\n baseDir,\n generateFilePath(location) {\n const newFilePath = defineFilepathSubfolder(location, folder);\n return appendExtensionToFilePath(newFilePath, extension);\n },\n schemaTypesSource: {\n path: shouldAbsolute ? join(options.baseOutputDir, baseTypesPath) : baseTypesPath,\n namespace: importTypesNamespace,\n },\n typesImport: (_a = options.config.useTypeImports) !== null && _a !== void 0 ? _a : false,\n });\n return sources.map(({ importStatements, externalFragments, fragmentImports, ...source }) => {\n let fragmentImportsArr = fragmentImports;\n if (importAllFragmentsFrom) {\n fragmentImportsArr = fragmentImports.map(t => {\n const newImportSource = typeof importAllFragmentsFrom === 'string'\n ? { ...t.importSource, path: importAllFragmentsFrom }\n : importAllFragmentsFrom(t.importSource, source.filename);\n return {\n ...t,\n importSource: newImportSource || t.importSource,\n };\n });\n }\n const plugins = [\n // TODO/NOTE I made globalNamespace include schema types - is that correct?\n ...(options.config.globalNamespace\n ? []\n : importStatements.map(importStatement => ({ add: { content: importStatement } }))),\n ...options.plugins,\n ];\n const config = {\n ...options.config,\n // This is set here in order to make sure the fragment spreads sub types\n // are exported from operations file\n exportFragmentSpreadSubTypes: true,\n namespacedImportName: importTypesNamespace,\n externalFragments,\n fragmentImports: fragmentImportsArr,\n };\n return {\n ...source,\n plugins,\n pluginMap,\n config,\n schema: options.schema,\n schemaAst: schemaObject,\n skipDocumentsValidation: true,\n };\n });\n },\n};\nexport default preset;\n//# sourceMappingURL=index.js.map"],"names":["join","visit","BaseVisitor","buildScalars","getConfigValue","Kind","getPossibleTypes","print","isUsingTypes","generateImportStatement","resolveImportSource","DetailedError","buildASTSchema"],"mappings":"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"}
\No newline at end of file