@graphql-codegen/flutter-freezed
Version:
GraphQL Code Generator plugin to generate Freezed models from your GraphQL schema
29 lines (28 loc) • 2.22 kB
JavaScript
;
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;