graphql-codegen-plugin-typescript-swr
Version:
A GraphQL code generator plug-in that automatically generates utility functions for SWR.
30 lines • 2.95 kB
JavaScript
import { extname } from 'path';
import { oldVisit, } from '@graphql-codegen/plugin-helpers';
import { concatAST, Kind } from 'graphql';
import { SWRVisitor } from './visitor';
export const plugin = (schema, documents, config) => {
const allAst = concatAST(documents.map((v) => v.document));
const allFragments = [
// prettier-ignore
...allAst.definitions.filter((d) => d.kind === Kind.FRAGMENT_DEFINITION).map((fragmentDef) => ({
node: fragmentDef,
name: fragmentDef.name.value,
onType: fragmentDef.typeCondition.name.value,
isExternal: false,
})),
...(config.externalFragments || []),
];
const visitor = new SWRVisitor(schema, allFragments, config);
oldVisit(allAst, { leave: visitor });
return {
prepend: visitor.getImports(),
content: visitor.sdkContent,
};
};
export const validate = async (_schema, _documents, _config, outputFile) => {
if (extname(outputFile) !== '.ts') {
throw new Error(`Plugin "typescript-swr" requires extension to be ".ts"!`);
}
};
export { SWRVisitor };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUU5QixPQUFPLEVBSUwsUUFBUSxHQUNULE1BQU0saUNBQWlDLENBQUE7QUFFeEMsT0FBTyxFQUFpQixTQUFTLEVBQUUsSUFBSSxFQUEwQixNQUFNLFNBQVMsQ0FBQTtBQUdoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBdUMsQ0FDeEQsTUFBcUIsRUFDckIsU0FBK0IsRUFDL0IsTUFBMEIsRUFDMUIsRUFBRTtJQUNGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUUxRCxNQUFNLFlBQVksR0FBcUI7UUFDckMsa0JBQWtCO1FBQ2xCLEdBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQzNCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxtQkFBbUIsQ0FDZCxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQzVCLE1BQU0sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQzVDLFVBQVUsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO0tBQ3BDLENBQUE7SUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzVELFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNwQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFDN0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVO0tBQzVCLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQTBCLEtBQUssRUFDbEQsT0FBc0IsRUFDdEIsVUFBZ0MsRUFDaEMsT0FBMkIsRUFDM0IsVUFBa0IsRUFDbEIsRUFBRTtJQUNGLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssRUFBRTtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUE7S0FDM0U7QUFDSCxDQUFDLENBQUE7QUFFRCxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUEifQ==