UNPKG

@graphql-codegen/flutter-freezed

Version:

GraphQL Code Generator plugin to generate Freezed models from your GraphQL schema

20 lines (19 loc) 1.3 kB
import { oldVisit } from '@graphql-codegen/plugin-helpers'; import { transformSchemaAST } from '@graphql-codegen/schema-ast'; import { defaultFreezedPluginConfig } from './config/plugin-config.js'; import { Block } from './freezed-declaration-blocks/index.js'; import { schemaVisitor } from './schema-visitor.js'; export { Pattern, TypeName, FieldName, TypeNamePattern, FieldNamePattern, } from './config/pattern.js'; export const plugin = (schema, _documents, _config, info) => { var _a; // sets the defaults for the config const config = { ...defaultFreezedPluginConfig, ..._config }; const { schema: _schema, ast } = transformSchemaAST(schema, config); const { nodeRepository, ...visitor } = schemaVisitor(_schema, config); const visitorResult = oldVisit(ast, { leave: visitor }); const importStatements = Block.buildImportStatements((_a = info === null || info === void 0 ? void 0 : info.outputFile) !== null && _a !== void 0 ? _a : 'app_models'); const generatedBlocks = visitorResult.definitions.filter((def) => typeof def === 'string' && def.length > 0); // return [importStatements, ...generatedBlocks].join('').trim(); const output = Block.replaceTokens(config, nodeRepository, generatedBlocks); return [importStatements, output].join('').trim(); };