UNPKG

5.61 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.esm.js","sources":["../../../dist/transforms/snapshot/src/compute-snapshot-file-path.js","../../../dist/transforms/snapshot/src/index.js"],"sourcesContent":["import { isAbsolute, join } from 'path';\nimport objectHash from 'object-hash';\nexport function computeSnapshotFilePath(options) {\n const argsHash = objectHash(options.args, { ignoreUnknown: true });\n const fileName = [options.typeName, options.fieldName, argsHash].join('_') + '.json';\n const absoluteOutputDir = isAbsolute(options.outputDir) ? options.outputDir : join(process.cwd(), options.outputDir);\n return join(absoluteOutputDir, fileName);\n}\n//# sourceMappingURL=compute-snapshot-file-path.js.map","import { addResolversToSchema } from '@graphql-tools/schema';\nimport { composeResolvers } from '@graphql-tools/resolvers-composition';\nimport { isAbsolute, join } from 'path';\nimport { ensureFile, writeJSON, pathExists } from 'fs-extra';\nimport { computeSnapshotFilePath } from './compute-snapshot-file-path';\nimport { extractResolvers } from '@graphql-mesh/utils';\nconst writeFile = async (path, json) => {\n try {\n await ensureFile(path);\n await writeJSON(path, json, {\n spaces: 2,\n });\n }\n catch (e) {\n console.error(`Snapshot cannot saved to ${path}: ${e.message}`);\n }\n};\nexport default class SnapshotTransform {\n constructor(options) {\n this.options = options;\n this.noWrap = true;\n }\n transformSchema(schema) {\n const { config } = this.options;\n // TODO: Needs to be changed!\n const configIf = 'if' in config ? (typeof config.if === 'boolean' ? config.if : config.if && eval(config.if)) : true;\n if (configIf) {\n const resolvers = extractResolvers(schema);\n const resolversComposition = {};\n const outputDir = isAbsolute(config.outputDir) ? config.outputDir : join(process.cwd(), config.outputDir);\n const snapshotComposition = next => async (root, args, context, info) => {\n const snapshotFilePath = computeSnapshotFilePath({\n typeName: info.parentType.name,\n fieldName: info.fieldName,\n args,\n outputDir,\n });\n if (snapshotFilePath in require.cache || (await pathExists(snapshotFilePath))) {\n return import(snapshotFilePath);\n }\n const result = await next(root, args, context, info);\n await writeFile(snapshotFilePath, result);\n return result;\n };\n for (const field of config.apply) {\n resolversComposition[field] = snapshotComposition;\n }\n const composedResolvers = composeResolvers(resolvers, resolversComposition);\n return addResolversToSchema({\n schema,\n resolvers: composedResolvers,\n updateResolversInPlace: true,\n });\n }\n return schema;\n }\n}\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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"}
\No newline at end of file