{"_id":"@applifting-io/nestjs-dataloader","_rev":"7-56390714485962e4eb71355f8450e95a","name":"@applifting-io/nestjs-dataloader","dist-tags":{"latest":"1.1.6"},"versions":{"1.0.0":{"name":"@applifting-io/nestjs-dataloader","version":"1.0.0","keywords":["nestjs","dataloader","graphql"],"author":{"name":"Petr Vnenk","email":"petr.vnenk@applifting.cz"},"license":"MIT","_id":"@applifting-io/nestjs-dataloader@1.0.0","maintainers":[{"name":"otavlna","email":"sudetskybaron@protonmail.com"},{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"}],"homepage":"https://github.com/Applifting/nestjs-dataloader#readme","bugs":{"url":"https://github.com/Applifting/nestjs-dataloader/issues"},"dist":{"shasum":"1bb33522d793fbe04ef67ac561090425882754ef","tarball":"https://registry.npmjs.org/@applifting-io/nestjs-dataloader/-/nestjs-dataloader-1.0.0.tgz","fileCount":6,"integrity":"sha512-ImePsSs1J9geBvY9bx2BgmCApVdhJsIsvYxR9Y2/buESAQdtozb1+LvL9l72r5IThTCeYtN7EXYEUXwAj07dbw==","signatures":[{"sig":"MEQCIGKWDzwLLznYgGw3n+KEAutUHanpeklhu78DPyyWBwc0AiAtVhFLpbpBSmkcZVN7jZAVjiBFrPYyNJyRJvaVz7aSlw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12993},"jest":{"globals":{"ts-jest":{"diagnostics":{"warnOnly":true}}},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.ts$","transform":{"^.+\\.tsx?$":"ts-jest"},"collectCoverage":true,"collectCoverageFrom":["index.ts"]},"main":"dist/index.js","types":"index.d.ts","gitHead":"f3acaf5570d74782d8e3035acd7c7210097a1ad7","scripts":{"test":"jest","build":"tsc -p tsconfig.json","start":"nest start example/src/main.ts --watch --path=example/tsconfig.json","prepare":"tsc -p tsconfig.json","prebuild":"rm -rf ./dist","prestart":"rm -rf ./example/dist"},"_npmUser":{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"},"repository":{"url":"git+https://github.com/Applifting/nestjs-dataloader.git","type":"git"},"_npmVersion":"9.7.2","description":"A NestJS decorator for dataloader","directories":{},"_nodeVersion":"20.4.0","dependencies":{"rxjs":"^7.5.6","dataloader":"^2.1.0","@nestjs/apollo":"^10.0.22"},"_hasShrinkwrap":false,"devDependencies":{"jest":"28.1.3","graphql":"^16.5.0","ts-jest":"^28.0.8","typescript":"4.7.4","@nestjs/cli":"^9.1.1","@types/jest":"28.1.4","@nestjs/core":"^9.0.1","apollo-server":"3.9.0","@nestjs/common":"^9.0.1","@nestjs/graphql":"^10.0.18","@nestjs/testing":"^9.0.1","@nestjs/typeorm":"^9.0.1","apollo-server-express":"^3.9.0","@nestjs/platform-express":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-dataloader_1.0.0_1699293129807_0.6360917272857185","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@applifting-io/nestjs-dataloader","version":"1.1.0","keywords":["nestjs","dataloader","graphql"],"author":{"name":"Petr Vnenk","email":"petr.vnenk@applifting.cz"},"license":"MIT","_id":"@applifting-io/nestjs-dataloader@1.1.0","maintainers":[{"name":"otavlna","email":"sudetskybaron@protonmail.com"},{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"}],"homepage":"https://github.com/Applifting/nestjs-dataloader#readme","bugs":{"url":"https://github.com/Applifting/nestjs-dataloader/issues"},"dist":{"shasum":"4e51e19c35b7f2928cfd8c2fbaee6774a524bb80","tarball":"https://registry.npmjs.org/@applifting-io/nestjs-dataloader/-/nestjs-dataloader-1.1.0.tgz","fileCount":6,"integrity":"sha512-0bQ7Gk0bGPBfl0icFlUYdwRVTGjv6ngPP6DsjxFTaj4dXeT77e87m+vAsDtSql4aUl4RxjFcGqYdp0+KDyUAnA==","signatures":[{"sig":"MEYCIQDjTcLctNZCjSvhQYJshBRpFIor4ZCZlR62jo27vA0t+wIhAJ9xwA785h3hfrafx8dF0MKxkbaElfzDpkSVwUfDTmvO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14563},"jest":{"globals":{"ts-jest":{"diagnostics":{"warnOnly":true}}},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.ts$","transform":{"^.+\\.tsx?$":"ts-jest"},"collectCoverage":true,"collectCoverageFrom":["index.ts"]},"main":"dist/index.js","types":"index.d.ts","gitHead":"f68a28a9e011cbd40681937d12b0926424e7b911","scripts":{"test":"jest","build":"tsc -p tsconfig.json","start":"nest start example/src/main.ts --watch --path=example/tsconfig.json","prepare":"tsc -p tsconfig.json","prebuild":"rm -rf ./dist","prestart":"rm -rf ./example/dist"},"_npmUser":{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"},"repository":{"url":"git+https://github.com/Applifting/nestjs-dataloader.git","type":"git"},"_npmVersion":"9.7.2","description":"A NestJS decorator for dataloader","directories":{},"_nodeVersion":"20.4.0","dependencies":{"rxjs":"^7.5.6","dataloader":"^2.1.0","@nestjs/apollo":"^10.0.22"},"_hasShrinkwrap":false,"devDependencies":{"jest":"28.1.3","graphql":"^16.5.0","ts-jest":"^28.0.8","typescript":"4.7.4","@nestjs/cli":"^9.1.1","@types/jest":"28.1.4","@nestjs/core":"^9.0.1","apollo-server":"3.9.0","@nestjs/common":"^9.0.1","@nestjs/graphql":"^10.0.18","@nestjs/testing":"^9.0.1","@nestjs/typeorm":"^9.0.1","apollo-server-express":"^3.9.0","@nestjs/platform-express":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-dataloader_1.1.0_1699294814053_0.8962610704742433","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@applifting-io/nestjs-dataloader","version":"1.1.1","keywords":["nestjs","dataloader","graphql"],"author":{"name":"Petr Vnenk","email":"petr.vnenk@applifting.cz"},"license":"MIT","_id":"@applifting-io/nestjs-dataloader@1.1.1","maintainers":[{"name":"otavlna","email":"sudetskybaron@protonmail.com"},{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"}],"homepage":"https://github.com/Applifting/nestjs-dataloader#readme","bugs":{"url":"https://github.com/Applifting/nestjs-dataloader/issues"},"dist":{"shasum":"883c26ac826af027bb63b3bd530c6d82ff44b373","tarball":"https://registry.npmjs.org/@applifting-io/nestjs-dataloader/-/nestjs-dataloader-1.1.1.tgz","fileCount":6,"integrity":"sha512-g0+fRhGhacHKfwJ5pQLiOqpYFE/qStFOVP8Ba8iQp2TzNyDvKIcg4hEf7dFO1gI720rlz7wOj7qLeC4FihTktg==","signatures":[{"sig":"MEYCIQCMzMZcwtB43sCDwTUicVjnaMFZ6pmAQcsldjAlprA09gIhAMNR/aiDqqKTyXsjo8V4RK2z8Fqp73yS85fhO5iQN5VP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14436},"jest":{"globals":{"ts-jest":{"diagnostics":{"warnOnly":true}}},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.ts$","transform":{"^.+\\.tsx?$":"ts-jest"},"collectCoverage":true,"collectCoverageFrom":["index.ts"]},"main":"dist/index.js","types":"index.d.ts","gitHead":"9631115acc33196a90b345fa7b1f4ae750d28032","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"tsc -p tsconfig.json","prebuild":"rm -rf ./dist"},"_npmUser":{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"},"repository":{"url":"git+https://github.com/Applifting/nestjs-dataloader.git","type":"git"},"_npmVersion":"9.7.2","description":"A NestJS decorator for dataloader","directories":{},"_nodeVersion":"20.4.0","dependencies":{"rxjs":"^7.5.6","dataloader":"^2.1.0","@nestjs/apollo":"^10.0.22"},"_hasShrinkwrap":false,"devDependencies":{"jest":"28.1.3","graphql":"^16.5.0","ts-jest":"^28.0.8","typescript":"4.7.4","@nestjs/cli":"^9.1.1","@types/jest":"28.1.4","@nestjs/core":"^9.0.1","apollo-server":"3.9.0","@nestjs/common":"^9.0.1","@nestjs/graphql":"^10.0.18","@nestjs/testing":"^9.0.1","@nestjs/typeorm":"^9.0.1","apollo-server-express":"^3.9.0","@nestjs/platform-express":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-dataloader_1.1.1_1699295030328_0.030764124280841854","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@applifting-io/nestjs-dataloader","version":"1.1.2","keywords":["nestjs","dataloader","graphql"],"author":{"name":"Petr Vnenk","email":"petr.vnenk@applifting.cz"},"license":"MIT","_id":"@applifting-io/nestjs-dataloader@1.1.2","maintainers":[{"name":"otavlna","email":"sudetskybaron@protonmail.com"},{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"}],"homepage":"https://github.com/Applifting/nestjs-dataloader#readme","bugs":{"url":"https://github.com/Applifting/nestjs-dataloader/issues"},"dist":{"shasum":"6da1621859f3362a2848e25f4311c7f91dd7c536","tarball":"https://registry.npmjs.org/@applifting-io/nestjs-dataloader/-/nestjs-dataloader-1.1.2.tgz","fileCount":9,"integrity":"sha512-fGFmCGYUVSFgp5a6DBuEAhIuFps1MHnVWKncwxcr5NwSyB77EGuYUEQ+OpVpIikmjV0MnaFaIQ3vfZzasIM+2A==","signatures":[{"sig":"MEUCIE/mRsiG9KTgtrCmsdKrglsyp2vP3N0N39kGFutDglzfAiEA6l1Vpth8u+M+Z9e9dpnDjtJCxS7Qa0s67C6N1VbNaqQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16159},"jest":{"globals":{"ts-jest":{"diagnostics":{"warnOnly":true}}},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.ts$","transform":{"^.+\\.tsx?$":"ts-jest"},"collectCoverage":true,"collectCoverageFrom":["index.ts"]},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5d05f7b027e49dfceb08ee2df264d64d924feaf3","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"tsc -p tsconfig.json","prebuild":"rm -rf ./dist"},"_npmUser":{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"},"repository":{"url":"git+https://github.com/Applifting/nestjs-dataloader.git","type":"git"},"_npmVersion":"9.7.2","description":"A NestJS decorator for dataloader","directories":{},"_nodeVersion":"20.4.0","dependencies":{"rxjs":"^7.5.6","dataloader":"^2.1.0","@nestjs/apollo":"^10.0.22"},"_hasShrinkwrap":false,"devDependencies":{"jest":"28.1.3","graphql":"^16.5.0","ts-jest":"^28.0.8","typescript":"4.7.4","@nestjs/cli":"^9.1.1","@types/jest":"28.1.4","@nestjs/core":"^9.0.1","apollo-server":"3.9.0","@nestjs/common":"^9.0.1","@nestjs/graphql":"^10.0.18","@nestjs/testing":"^9.0.1","@nestjs/typeorm":"^9.0.1","apollo-server-express":"^3.9.0","@nestjs/platform-express":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-dataloader_1.1.2_1699297580503_0.8507633272340083","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"@applifting-io/nestjs-dataloader","version":"1.1.3","keywords":["nestjs","dataloader","graphql"],"author":{"name":"Petr Vnenk","email":"petr.vnenk@applifting.cz"},"license":"MIT","_id":"@applifting-io/nestjs-dataloader@1.1.3","maintainers":[{"name":"otavlna","email":"sudetskybaron@protonmail.com"},{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"}],"homepage":"https://github.com/Applifting/nestjs-dataloader#readme","bugs":{"url":"https://github.com/Applifting/nestjs-dataloader/issues"},"dist":{"shasum":"c2a350cb7827bd38ac4868cdde204e136b77c569","tarball":"https://registry.npmjs.org/@applifting-io/nestjs-dataloader/-/nestjs-dataloader-1.1.3.tgz","fileCount":9,"integrity":"sha512-fqMTqUf3fC3OSac6qo0KS/bz5Dh+95uHrmeIyTMu+nUo9D2sd1/eiIT+wf3AbtDNJqGYJYEBAOEM3HbkUUpx9A==","signatures":[{"sig":"MEUCIDFxnmR8XKkVQxBK8PJcFrZvLK7Y4PKn36DVB3H4GhYhAiEAq8SSxZ9X3W2J7TipOuc5XGZen7rvSl40m2UvDXbWkRk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15896},"jest":{"globals":{"ts-jest":{"diagnostics":{"warnOnly":true}}},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.ts$","transform":{"^.+\\.tsx?$":"ts-jest"},"collectCoverage":true,"collectCoverageFrom":["index.ts"]},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5d05f7b027e49dfceb08ee2df264d64d924feaf3","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"tsc -p tsconfig.json","prebuild":"rm -rf ./dist"},"_npmUser":{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"},"repository":{"url":"git+https://github.com/Applifting/nestjs-dataloader.git","type":"git"},"_npmVersion":"9.7.2","description":"A NestJS decorator for dataloader","directories":{},"_nodeVersion":"20.4.0","_hasShrinkwrap":false,"devDependencies":{"jest":"28.1.3","rxjs":"^7.8.1","ts-jest":"^28.0.8","dataloader":"^2.2.2","typescript":"4.7.4","@types/jest":"^29.5.7","@nestjs/core":"^10.2.8","@nestjs/common":"^10.2.8","@nestjs/graphql":"^12.0.9","@nestjs/testing":"^10.2.8"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-dataloader_1.1.3_1699302947751_0.4494869481286097","host":"s3://npm-registry-packages"}},"1.1.5":{"name":"@applifting-io/nestjs-dataloader","version":"1.1.5","keywords":["nestjs","dataloader","graphql"],"author":{"name":"Petr Vnenk","email":"petr.vnenk@applifting.cz"},"license":"MIT","_id":"@applifting-io/nestjs-dataloader@1.1.5","maintainers":[{"name":"otavlna","email":"sudetskybaron@protonmail.com"},{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"}],"homepage":"https://github.com/Applifting/nestjs-dataloader#readme","bugs":{"url":"https://github.com/Applifting/nestjs-dataloader/issues"},"dist":{"shasum":"02b10d31265c387b6f3727c950c29a3b283f68d7","tarball":"https://registry.npmjs.org/@applifting-io/nestjs-dataloader/-/nestjs-dataloader-1.1.5.tgz","fileCount":9,"integrity":"sha512-OUJd0Jyo+0LLiVkmcuxd6ld5pn9vIlfgHbWLF9FhBeuNjdYcvo32enMFNEXTWNW5MOwpMHwrDyr9E87Zkp6B5w==","signatures":[{"sig":"MEQCIFfhFstf2PFVUinGMvwF2+2ib/+YLm2uYa4BM4LM7j1iAiBPiZSoYpAcNejnmd5c8y/SxBFQbT7+NrXRx1iOokVmDQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15896},"jest":{"globals":{"ts-jest":{"diagnostics":{"warnOnly":true}}},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.ts$","transform":{"^.+\\.tsx?$":"ts-jest"},"collectCoverage":true,"collectCoverageFrom":["index.ts"]},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"45930c71637a374fe7b1334c005e84773579ab6e","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"tsc -p tsconfig.json","prebuild":"rm -rf ./dist"},"_npmUser":{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"},"repository":{"url":"git+https://github.com/Applifting/nestjs-dataloader.git","type":"git"},"_npmVersion":"9.7.2","description":"A NestJS decorator for dataloader","directories":{},"_nodeVersion":"20.4.0","_hasShrinkwrap":false,"devDependencies":{"jest":"28.1.3","rxjs":"^7.8.1","ts-jest":"^28.0.8","dataloader":"^2.2.2","typescript":"4.7.4","@types/jest":"^29.5.7","@nestjs/core":"^10.2.8","@nestjs/common":"^10.2.8","@nestjs/graphql":"^12.0.9","@nestjs/testing":"^10.2.8"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-dataloader_1.1.5_1699303055633_0.48326805120327565","host":"s3://npm-registry-packages"}},"1.1.6":{"name":"@applifting-io/nestjs-dataloader","version":"1.1.6","description":"A NestJS decorator for dataloader","license":"MIT","repository":{"type":"git","url":"git+https://github.com/Applifting/nestjs-dataloader.git"},"author":{"name":"Petr Vnenk","email":"petr.vnenk@applifting.cz"},"main":"dist/index.js","scripts":{"build":"tsc -p tsconfig.json","prebuild":"rm -rf ./dist","test":"jest"},"keywords":["nestjs","dataloader","graphql"],"dependencies":{"@nestjs/apollo":"^13.1.0","dataloader":"^2.2.3","rxjs":"^7.8.2"},"devDependencies":{"@nestjs/cli":"^11.0.10","@nestjs/common":"^11.1.6","@nestjs/core":"^11.1.6","@nestjs/graphql":"^13.1.0","@nestjs/platform-express":"^11.1.1","@nestjs/testing":"^11.1.6","@nestjs/typeorm":"^11.0.0","@types/jest":"^30.0.0","apollo-server":"3.13.0","apollo-server-express":"^3.13.0","graphql":"^16.11.0","jest":"^30.1.3","ts-jest":"^29.4.1","typescript":"^5.9.2"},"types":"dist/index.d.ts","jest":{"transform":{"^.+\\.tsx?$":"ts-jest"},"collectCoverage":true,"globals":{"ts-jest":{"diagnostics":{"warnOnly":true}}},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.ts$","collectCoverageFrom":["index.ts"]},"_id":"@applifting-io/nestjs-dataloader@1.1.6","gitHead":"a5262642f4d363deb8951431de9593d64faf5345","bugs":{"url":"https://github.com/Applifting/nestjs-dataloader/issues"},"homepage":"https://github.com/Applifting/nestjs-dataloader#readme","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-kXHF9Ib7LGVp2qYMgtuLjUSfwT0+5+ipG1ftVo7ecy/yLevXG0rbc/FUgaAFE+udUT1eF2gfXgETYX4NoVtDWQ==","shasum":"7f0efae8a3f776b270faad63479cb4e39d6271d4","tarball":"https://registry.npmjs.org/@applifting-io/nestjs-dataloader/-/nestjs-dataloader-1.1.6.tgz","fileCount":9,"unpackedSize":16162,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCK2/ScUo8Pmj7pSasIrEqbjp+okjP8nCsxBF1fKTm0wgIhAPb9wxckgAmpGUC8bz5Z0bjv6xzLURTEEqSmMTJ5smfx"}]},"_npmUser":{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"},"directories":{},"maintainers":[{"name":"otavlna","email":"sudetskybaron@protonmail.com"},{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nestjs-dataloader_1.1.6_1758526118494_0.5899240665284913"},"_hasShrinkwrap":false}},"time":{"created":"2023-11-06T17:52:09.728Z","modified":"2025-09-22T07:28:38.887Z","1.0.0":"2023-11-06T17:52:10.002Z","1.1.0":"2023-11-06T18:20:14.243Z","1.1.1":"2023-11-06T18:23:50.537Z","1.1.2":"2023-11-06T19:06:20.693Z","1.1.3":"2023-11-06T20:35:47.917Z","1.1.5":"2023-11-06T20:37:35.826Z","1.1.6":"2025-09-22T07:28:38.681Z"},"bugs":{"url":"https://github.com/Applifting/nestjs-dataloader/issues"},"author":{"name":"Petr Vnenk","email":"petr.vnenk@applifting.cz"},"license":"MIT","homepage":"https://github.com/Applifting/nestjs-dataloader#readme","keywords":["nestjs","dataloader","graphql"],"repository":{"type":"git","url":"git+https://github.com/Applifting/nestjs-dataloader.git"},"description":"A NestJS decorator for dataloader","maintainers":[{"name":"otavlna","email":"sudetskybaron@protonmail.com"},{"name":"petrvnenk","email":"petr.vnenk@applifting.cz"}],"readme":"# NestJS Dataloader\n\n![Node.js CI](https://github.com/Applifting/nestjs-dataloader/workflows/Node.js%20CI/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/Applifting/nestjs-dataloader/badge.svg?branch=master)](https://coveralls.io/github/krislefeber/nestjs-dataloader?branch=master)\n\nNestJS dataloader simplifies adding [graphql/dataloader](https://github.com/graphql/dataloader) to your NestJS project. DataLoader aims to solve the common N+1 loading problem.\n\nThis is a fork of krislefeber/nestjs-dataloader with the following changes:\n\n- Replace generateDataLoader method in interface with getBatchFunction, reducing the need to import anything from the dataloader package and simplifying the code\n- Added `sortDataLoaderResultsByKey` convenience method, since some batching methods you can use (like `SELECT * IN (...)`) do not guarantee the order of the returned results to match the order of provided keys, which is essential for dataloader to work properly\n- Updated all dependencies to latest versions\n\n## Installation\n\n```bash\nnpm i @applifting-io/nestjs-dataloader\n```\n\n## Usage\n\n### NestDataLoader Creation\n\nWe start by implementing the `NestDataLoader` interface. This tells `DataLoader` how to load our objects.\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { NestDataLoader, DataLoaderBatchFunction } from '@applifting-io/nestjs-dataloader';\n...\n\n@Injectable()\nexport class AccountLoader implements NestDataLoader<string, Account> {\n  constructor(private readonly accountService: AccountService) { }\n\n  getBatchFunction(): DataLoaderBatchFunction<string, Account> {\n    return (keys: string[]) => {\n      const results = await this.accountService.findByIds(keys);\n      return sortDataLoaderResultsByKey(keys, results, \"id\");\n    };\n  }\n}\n```\n\nThe first generic of the interface is the type of ID the datastore uses. The second generic is the type of object that will be returned. In the above instance, we want `DataLoader` to return instances of the `Account` class.\n\n### Providing the NestDataLoader\n\nFor each NestDataLoader we create, we need to provide it to our module.\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { APP_INTERCEPTOR } from '@nestjs/core';\nimport { DataLoaderInterceptor } from 'nestjs-dataloader'\n...\n\n@Module({\n  providers: [\n    AccountResolver,\n    AccountLoader,\n    {\n      provide: APP_INTERCEPTOR,\n      useClass: DataLoaderInterceptor,\n    },\n  ],\n\n})\nexport class ResolversModule { }\n```\n\n### Using the NestDataLoader\n\nNow that we have a dataloader and our module is aware of it, we need to pass it as a parameter to an endpoint in our graphQL resolver.\n\n```typescript\nimport * as DataLoader from 'dataloader';\nimport { Loader } from 'nestjs-dataloader';\n...\n\n@Resolver(Account)\nexport class AccountResolver {\n\n    @Query(() => [Account])\n    public getAccounts(\n        @Args({ name: 'ids', type: () => [String] }) ids: string[],\n        @Loader(AccountLoader) accountLoader: DataLoader<Account['id'], Account>): Promise<Account[]> {\n        return accountLoader.loadMany(ids);\n    }\n}\n```\n\nThe important thing to note is that the parameter of the `@Loader` decorator is the entity/class of the `NestDataLoader` we want to be injected to the method. The DataLoader library will handle bulk retrieval and caching of our requests. Note that the caching is stored on a per-request basis.\n\n## Contributing\n\nPull requests are always welcome. For major changes, please open an issue first to discuss what you would like to change.\n","readmeFilename":"README.md"}