{"_id":"@bustle/redis-loader","_rev":"10-ec5d1ead609fb749bd12ff6b2241dbe4","name":"@bustle/redis-loader","dist-tags":{"latest":"7.0.0"},"versions":{"7.0.0":{"name":"@bustle/redis-loader","version":"7.0.0","keywords":["async/await","dataloader","ioredis","multi","pipeline","redis","typescript"],"author":{"name":"Tristan Siegel","email":"tristan.siegel@bustle.com"},"license":"MIT","_id":"@bustle/redis-loader@7.0.0","maintainers":[{"name":"eggplantkiller","email":"abuadas.dalia@gmail.com"},{"name":"tholman","email":"timothy.w.holman@gmail.com"},{"name":"teety","email":"tyler@bustle.com"},{"name":"tylerlove","email":"tyler@bustle.com"},{"name":"zeejab","email":"zahra.arch@gmail.com"},{"name":"tsiege","email":"tristan.t.siegel@gmail.com"},{"name":"anujpan","email":"anuj@bustle.com"},{"name":"gdub","email":"garth22@gmail.com"},{"name":"mixonic","email":"matt.beale@madhatted.com"},{"name":"bantic","email":"cory.forsyth@gmail.com"},{"name":"bustle-deploy","email":"tyler+deploy@bustle.com"},{"name":"zfoster","email":"notzachfoster@gmail.com"},{"name":"janecakemaster","email":"jane@janekim.me"},{"name":"redterror","email":"dave@redterror.net"},{"name":"chris-olszewski","email":"chrisdolszewski@gmail.com"},{"name":"hichaelmart","email":"michael.hart.au@gmail.com"},{"name":"ensallee","email":"betsy.sallee@bustle.com"},{"name":"wabyad","email":"iwiwi@mac.com"},{"name":"sarahganis","email":"sarahganis@gmail.com"},{"name":"thinko","email":"hey@thinko.com"},{"name":"awongs","email":"angelina.wong@bustle.com"},{"name":"cg3ntry","email":"cg3ntry@gmail.com"}],"dist":{"shasum":"7f8b93dcc0724256e9bb42cc59a1067b2f9e372a","tarball":"https://registry.npmjs.org/@bustle/redis-loader/-/redis-loader-7.0.0.tgz","fileCount":13,"integrity":"sha512-UWIxJltlpeEcnrDwQNgFWH8QyOvaz6suc01zRK+IshyrlPCqf8y0KbyID5mKWA8osLNIjLTCYuSBAG12lj++rA==","signatures":[{"sig":"MEUCIEKkzyCJGUQM1S8A2wYc74sR80EDiY3jKR1WI9KutlggAiEAlWhEdEk9L5aPSBKbVpEaw3zHdmezyw90SUSxu9vOMwU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiglVtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6Qg/+IbvRHN6oolVU/VL6qYpsrLTweVzYc6Pf0agYU9hALDWbnaEJ\r\nur4oVdfYs5enhdvgs1k44Tin0x90ihRxt4dPFcNRxU1Fh9HTEDVeD+UK4q3y\r\nSyV5HiJKmljkmaxEfnRlx41HgstJAuC7adjlkqDcKCd8MZfIDCuM1d6vMbNn\r\nMbr9PUkHjRz7zvQEFROUjJH5xORQ1ZoyUYGQWABAqeOElLJbbDGk2t8mr91R\r\nX0Qz8fX4oEeqEJ0UGLCMYaQ9ExyUoVCDw3kPPR1FiqSfZl2cOmFsudZ3QQ8Z\r\nUU7Xf+e0bfIVo9YDyd+wHXxljUnYWWNkvVrRpCci7GT/JZPXTEZlY6/L5pjQ\r\njv+UwsuXCcZRSg9ovac8VXoVV1WyGwA37HLerp/lfyKb7UxI7MbdOcMlK5fG\r\nCAoSARRCycyI5i7/I9jNQxWsEzWE4WgwsIvxZ1p+9FEI7y8SDAG1feLbp90g\r\nQtURedkyBnLkSJLzN89IQmllttRxmd1CpPkWeu4IxiiKikDjbnz96iXs5pDR\r\nImDiIB1NPZnHdl0EtFZJH1Cy82gi8HnUCo4vEviLXkNIhs7mylT+8oZ6oz33\r\n796Ebhl9B1qIMs0f881KYfenWZ1h2LxAOV7L1r4KW5k7maoR63yv/GXuTf4M\r\n5d38EJx8CVoYqiNHuUqMcJqKQDdoDZSUJrs=\r\n=Bmdu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist","engines":{"node":">=12"},"gitHead":"560423c12b44b52c74e52a966f29e366cc994aa7","scripts":{"lint":"eslint --ignore-path .gitignore src/**/*.ts && tsc","test":"jest --runInBand --bail --coverage","build":"npm run clean && tsc","clean":"rm -rf dist/*","format":"eslint --ignore-path .gitignore src/**/*.ts --fix","prepare":"npm run build"},"_npmUser":{"name":"cg3ntry","email":"cg3ntry@gmail.com"},"_npmVersion":"8.9.0","description":"An io-redis like object that batches queries with dataloader","directories":{},"_nodeVersion":"12.22.12","dependencies":{"dataloader":"^2.1.0","redis-commands":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.0","eslint":"^8.14.0","ioredis":"^4.28.5","ts-jest":"^28.0.1","ts-node":"^10.7.0","typescript":"^4.6.4","@types/jest":"^27.5.0","@types/node":"^17.0.31","@types/ioredis":"^4.28.10","eslint-plugin-jest":"^26.1.5","streaming-iterables":"^7.0.4","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.0.0","eslint-config-standard":"^17.0.0","@typescript-eslint/parser":"^5.22.0","@typescript-eslint/eslint-plugin":"^5.22.0"},"peerDependencies":{"ioredis":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/redis-loader_7.0.0_1652708717198_0.6557999449503431","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-05-16T13:45:17.198Z","modified":"2024-10-26T13:08:15.923Z","7.0.0":"2022-05-16T13:45:17.324Z"},"author":{"name":"Tristan Siegel","email":"tristan.siegel@bustle.com"},"license":"MIT","keywords":["async/await","dataloader","ioredis","multi","pipeline","redis","typescript"],"description":"An io-redis like object that batches queries with dataloader","maintainers":[{"email":"tyler@bustle.com","name":"teety"},{"email":"tyler@bustle.com","name":"tylerlove"},{"email":"anuj@bustle.com","name":"anujpan"},{"email":"garth22@gmail.com","name":"gdub"},{"email":"tyler+deploy@bustle.com","name":"bustle-deploy"},{"email":"dave@redterror.net","name":"redterror"},{"email":"iwiwi@mac.com","name":"wabyad"},{"email":"sarahganis@gmail.com","name":"sarahganis"},{"email":"cg3ntry@gmail.com","name":"cg3ntry"}],"readme":"# RedisLoader\nAn [`ioredis`](https://github.com/luin/ioredis)-like object that batches commands via [`dataloader`](https://github.com/facebook/dataloader). Under the hood we have `dataloader` utilize redis's `multi` transactions and [pipelining](https://redis.io/topics/pipelining) to group commands called. We also support batching in streams.\n\n### Installation\n```\nnpm i --save @bustle/redis-loader\n\nor\n\nyarn add @bustle/redis-loader\n```\n\n### Examples\n```js\n// RedisLoader supports an optional logger function with stats on each batch of commands\nfunction logger (stats) {\n  //...\n}\n// set up like you would `ioredis`\nconst redis = redisLoader('redis://localhost:6379/1', { keyPrefix: 'foo', logger })\n\n// or setup ioredis\nconst redis = new Redis(redisUrl, redisOptions)\nconst redisLoader = new RedisLoader({ redis, logger })\n\n// three commands sent to Redis together in one multi\nawait Promise.all([\n  redis.ping(),\n  redis.dbsize(),\n  redis.time()\n])\n\n// three commands sent separately to redis\nawait redis.ping()\nawait redis.dbsize()\nawait redis.time()\n```\n","readmeFilename":"README.md"}