UNPKG

@pothos/plugin-dataloader

Version:

A Pothos plugin for attaching dataloader to object types

58 lines (57 loc) 1.86 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, { ImplementableLoadableInterfaceRef: function() { return ImplementableLoadableInterfaceRef; }, LoadableInterfaceRef: function() { return LoadableInterfaceRef; } }); 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 LoadableInterfaceRef extends _core.InterfaceRef { constructor(name, getDataloader){ super(name), _define_property(this, "getDataloader", void 0); this.getDataloader = getDataloader; } } class ImplementableLoadableInterfaceRef extends _core.ImplementableInterfaceRef { implement(options) { return super.implement({ ...options, extensions: { ...options.extensions, getDataloader: this.getDataloader, cacheResolved: this.cacheResolved } }); } constructor(builder, name, { loaderOptions, load, toKey, sort, cacheResolved }){ super(builder, name), _define_property(this, "cacheResolved", void 0), _define_property(this, "getDataloader", void 0); this.getDataloader = (0, _util.dataloaderGetter)(loaderOptions, load, toKey, sort); this.cacheResolved = typeof cacheResolved === 'function' ? cacheResolved : cacheResolved && toKey; } } //# sourceMappingURL=interface.js.map