UNPKG

@pothos/core

Version:

Pothos (formerly GiraphQL) is a plugin based schema builder for creating code-first GraphQL schemas in typescript

87 lines (86 loc) 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "BaseFieldUtil", { enumerable: true, get: function() { return BaseFieldUtil; } }); const _graphql = require("graphql"); const _field = require("../refs/field"); const _utils = require("../utils"); function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } class BaseFieldUtil { createField(// biome-ignore lint/suspicious/noExplicitAny: this is fine options) { const ref = new _field.FieldRef(this.kind, (name, typeConfig)=>{ var _options_extensions; const args = {}; if (options.args) { for (const [argName, arg] of Object.entries(options.args)){ args[argName] = arg.getConfig(argName, name, typeConfig); } } let { resolve } = options; if (((_options_extensions = options.extensions) === null || _options_extensions === void 0 ? void 0 : _options_extensions.pothosExposedField) === name) { resolve = _graphql.defaultFieldResolver; } const { subscribe } = options; var _options_nullable; return { kind: this.kind, graphqlKind: typeConfig.graphqlKind, parentType: typeConfig.name, name, args, argMappers: [], type: (0, _utils.typeFromParam)(options.type, this.builder.configStore, (_options_nullable = options.nullable) !== null && _options_nullable !== void 0 ? _options_nullable : this.builder.defaultFieldNullability), pothosOptions: options, extensions: { pothosOriginalResolve: resolve, pothosOriginalSubscribe: subscribe, ...options.extensions }, description: options.description, deprecationReason: options.deprecationReason, resolve, subscribe, astNode: options.astNode }; }); return ref; } exposeField(name, { extensions, ...options }) { return this.createField({ ...options, extensions: { pothosExposedField: name, ...extensions }, resolve: (parent)=>parent[name] }); } constructor(builder, kind, graphqlKind){ _define_property(this, "kind", void 0); _define_property(this, "graphqlKind", void 0); _define_property(this, "builder", void 0); this.builder = builder; this.kind = kind; this.graphqlKind = graphqlKind; } } //# sourceMappingURL=base.js.map