UNPKG

@graphql-codegen/flutter-freezed

Version:

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

29 lines (28 loc) 2.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.plugin = exports.FieldNamePattern = exports.TypeNamePattern = exports.FieldName = exports.TypeName = exports.Pattern = void 0; const plugin_helpers_1 = require("@graphql-codegen/plugin-helpers"); const schema_ast_1 = require("@graphql-codegen/schema-ast"); const plugin_config_js_1 = require("./config/plugin-config.js"); const index_js_1 = require("./freezed-declaration-blocks/index.js"); const schema_visitor_js_1 = require("./schema-visitor.js"); var pattern_js_1 = require("./config/pattern.js"); Object.defineProperty(exports, "Pattern", { enumerable: true, get: function () { return pattern_js_1.Pattern; } }); Object.defineProperty(exports, "TypeName", { enumerable: true, get: function () { return pattern_js_1.TypeName; } }); Object.defineProperty(exports, "FieldName", { enumerable: true, get: function () { return pattern_js_1.FieldName; } }); Object.defineProperty(exports, "TypeNamePattern", { enumerable: true, get: function () { return pattern_js_1.TypeNamePattern; } }); Object.defineProperty(exports, "FieldNamePattern", { enumerable: true, get: function () { return pattern_js_1.FieldNamePattern; } }); const plugin = (schema, _documents, _config, info) => { var _a; // sets the defaults for the config const config = { ...plugin_config_js_1.defaultFreezedPluginConfig, ..._config }; const { schema: _schema, ast } = (0, schema_ast_1.transformSchemaAST)(schema, config); const { nodeRepository, ...visitor } = (0, schema_visitor_js_1.schemaVisitor)(_schema, config); const visitorResult = (0, plugin_helpers_1.oldVisit)(ast, { leave: visitor }); const importStatements = index_js_1.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 = index_js_1.Block.replaceTokens(config, nodeRepository, generatedBlocks); return [importStatements, output].join('').trim(); }; exports.plugin = plugin;