UNPKG

@pothos/plugin-dataloader

Version:

A Pothos plugin for attaching dataloader to object types

55 lines (54 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ImplementableLoadableObjectRef: function() { return ImplementableLoadableObjectRef; }, LoadableObjectRef: function() { return LoadableObjectRef; } }); const _core = require("@pothos/core"); const _util = require("../util"); 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 LoadableObjectRef extends _core.ObjectRef { constructor(name, getDataloader){ super(name), _define_property(this, "getDataloader", void 0); this.getDataloader = getDataloader; } } class ImplementableLoadableObjectRef extends _core.ImplementableObjectRef { constructor(builder, name, { loaderOptions, load, toKey, sort, cacheResolved }){ super(builder, name), _define_property(this, "getDataloader", void 0), _define_property(this, "cacheResolved", void 0); this.getDataloader = (0, _util.dataloaderGetter)(loaderOptions, load, toKey, sort); this.cacheResolved = typeof cacheResolved === 'function' ? cacheResolved : cacheResolved && toKey; this.builder.configStore.onTypeConfig(this, (config)=>{ config.extensions = { ...config.extensions, getDataloader: this.getDataloader, cacheResolved: this.cacheResolved }; }); } } //# sourceMappingURL=object.js.map