@ptc-org/nestjs-query-graphql
Version:
Nestjs graphql query adapter
29 lines • 1.25 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataLoaderFactory = void 0;
const tslib_1 = require("tslib");
const dataloader_1 = tslib_1.__importDefault(require("dataloader"));
const cacheKeyFn = (key) =>
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
JSON.stringify(key, (_, v) => (typeof v === 'bigint' ? v.toString() : v));
class DataLoaderFactory {
static initializeContext(context) {
if (!context.nestjsQueryLoaders) {
// eslint-disable-next-line no-param-reassign
context.nestjsQueryLoaders = {};
}
return context.nestjsQueryLoaders;
}
static getOrCreateLoader(context, name, createHandler, options) {
const nestjsQueryLoaders = this.initializeContext(context);
if (!nestjsQueryLoaders[name]) {
const handler = createHandler();
const dataLoaderOptions = { cacheKeyFn, ...options };
// eslint-disable-next-line no-param-reassign
nestjsQueryLoaders[name] = new dataloader_1.default(handler, dataLoaderOptions);
}
return nestjsQueryLoaders[name];
}
}
exports.DataLoaderFactory = DataLoaderFactory;
//# sourceMappingURL=dataloader.factory.js.map
;