{"_id":"@bitalikrty/multi-dataloader","_rev":"2-45f23f5dd864a7b4ae211fdefb8ba043","name":"@bitalikrty/multi-dataloader","description":"For dynamic creating dataloaders ","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@bitalikrty/multi-dataloader","version":"1.0.0","author":{"name":"Vitalik"},"license":"ISC","_id":"@bitalikrty/multi-dataloader@1.0.0","maintainers":[{"name":"bitalikrty","email":"bitalikrty@gmail.com"}],"dist":{"shasum":"c4761a203335484e59a8c28f9b42242437e4153e","tarball":"https://registry.npmjs.org/@bitalikrty/multi-dataloader/-/multi-dataloader-1.0.0.tgz","fileCount":4,"integrity":"sha512-eDLiRLxdHt6Hej9plHzLfqI2iqp16yKldpQ57rhT1oANrDCNNCzs/fQ7WpI3KcJvXZpvNjUSm4kK6aUjYjKiew==","signatures":[{"sig":"MEUCID1Ioc5uLPcFbHl8GbGzQ7nZ7s6pXX5/NSLp47dk7hTDAiEA/pfyI641FF13BIbRYzwVFGnDzkBJBDzzQ5OvJ2qLy8k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7522},"jest":{"testRegex":"(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$","transform":{".(ts|tsx)":"ts-jest"},"testEnvironment":"node","collectCoverageFrom":["src/*.{js,ts}"],"moduleFileExtensions":["ts","tsx","js"],"coveragePathIgnorePatterns":["/node_modules/","/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b26c9b02e3f266cdf1e6d24461ec50c3bd51f387","scripts":{"test":"jest --coverage","build":"tsc","prebuild":"rimraf dist"},"_npmUser":{"name":"bitalikrty","email":"bitalikrty@gmail.com"},"_npmVersion":"8.1.0","description":"For dynamic creating dataloaders ","directories":{},"_nodeVersion":"16.13.0","dependencies":{"dataloader":"^2.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.2","ts-jest":"^23.10.2","@types/jest":"^29.5.12","jest-config":"^23.6.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-dataloader_1.0.0_1718363349386_0.4299431621862839","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@bitalikrty/multi-dataloader","version":"1.0.1","author":{"name":"Vitalik"},"license":"ISC","_id":"@bitalikrty/multi-dataloader@1.0.1","maintainers":[{"name":"bitalikrty","email":"bitalikrty@gmail.com"}],"homepage":"https://github.com/bitalikr1999/multi-datasource#readme","bugs":{"url":"https://github.com/bitalikr1999/multi-datasource/issues"},"dist":{"shasum":"68df0988f32ddb15bc32a1d81ed3d4ac530cf16f","tarball":"https://registry.npmjs.org/@bitalikrty/multi-dataloader/-/multi-dataloader-1.0.1.tgz","fileCount":4,"integrity":"sha512-53rsby2Fnk0/R39BWnvB2OgqDK8FP5x0ebsJDSIqouKemFqPqrrugNyofX4QFuZLo23cS8Bxus4NnSLXYQ8ZFg==","signatures":[{"sig":"MEQCIBNVKaGJvzT7JXHXxRXd4m2dJnH5HHNz8xmDnl92co8xAiBYOLicyTjrhHIuhAR72uRp4hMDW/Y6IY718rzaWNu+0Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7590},"jest":{"testRegex":"(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$","transform":{".(ts|tsx)":"ts-jest"},"testEnvironment":"node","collectCoverageFrom":["src/*.{js,ts}"],"moduleFileExtensions":["ts","tsx","js"],"coveragePathIgnorePatterns":["/node_modules/","/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b26c9b02e3f266cdf1e6d24461ec50c3bd51f387","scripts":{"test":"jest --coverage","build":"tsc","prebuild":"rimraf dist"},"_npmUser":{"name":"bitalikrty","email":"bitalikrty@gmail.com"},"repository":{"url":"git+https://github.com/bitalikr1999/multi-datasource.git","type":"git"},"_npmVersion":"8.1.0","description":"For dynamic creating dataloaders ","directories":{},"_nodeVersion":"16.13.0","dependencies":{"dataloader":"^2.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.2","ts-jest":"^23.10.2","@types/jest":"^29.5.12","jest-config":"^23.6.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-dataloader_1.0.1_1718363766271_0.7674649833840728","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@bitalikrty/multi-dataloader","version":"1.0.2","description":"For dynamic creating dataloaders ","scripts":{"test":"jest --coverage","prebuild":"rimraf dist","build":"tsc"},"main":"dist/index.js","types":"dist/index.d.ts","author":{"name":"Vitalik"},"repository":{"type":"git","url":"git+https://github.com/bitalikr1999/multi-datasource.git"},"license":"ISC","dependencies":{"dataloader":"^2.2.2"},"devDependencies":{"@types/jest":"^29.5.12","jest":"^23.6.0","jest-config":"^23.6.0","ts-jest":"^23.10.2","rimraf":"^2.6.2"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testEnvironment":"node","testRegex":"(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"coveragePathIgnorePatterns":["/node_modules/","/test/"],"collectCoverageFrom":["src/*.{js,ts}"]},"gitHead":"a87a5e897e4f0930ad46e8844943777697336e43","bugs":{"url":"https://github.com/bitalikr1999/multi-datasource/issues"},"homepage":"https://github.com/bitalikr1999/multi-datasource#readme","_id":"@bitalikrty/multi-dataloader@1.0.2","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-Ui5oY+m5yvb0dQIqXjR0fOGvbC2uAczv0mt6rkyDnTFESyAKdkk7jG+CP4/xL1dIMvsnJKuBnGqnJ7zXADr3Iw==","shasum":"c4280f0c882f19bfa0a441ff09cd0744d94a0d05","tarball":"https://registry.npmjs.org/@bitalikrty/multi-dataloader/-/multi-dataloader-1.0.2.tgz","fileCount":5,"unpackedSize":9986,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFkUVb5+uOGheSaHiBivT/2aneINqI6cX6KNZkA8IUQNAiBlzOdWOQrEUi9KYD05WNgGJQr62cDp5FxW1oIa4E2pJg=="}]},"_npmUser":{"name":"bitalikrty","email":"bitalikrty@gmail.com"},"directories":{},"maintainers":[{"name":"bitalikrty","email":"bitalikrty@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multi-dataloader_1.0.2_1718364591091_0.6011371571865627"},"_hasShrinkwrap":false}},"time":{"created":"2024-06-14T11:09:09.289Z","modified":"2024-06-14T11:29:51.447Z","1.0.0":"2024-06-14T11:09:09.559Z","1.0.1":"2024-06-14T11:16:06.447Z","1.0.2":"2024-06-14T11:29:51.271Z"},"maintainers":[{"name":"bitalikrty","email":"bitalikrty@gmail.com"}],"author":{"name":"Vitalik"},"repository":{"type":"git","url":"git+https://github.com/bitalikr1999/multi-datasource.git"},"license":"ISC","homepage":"https://github.com/bitalikr1999/multi-datasource#readme","bugs":{"url":"https://github.com/bitalikr1999/multi-datasource/issues"},"readme":"  MultyDataloader\n\nMultyDataloader\n===============\n\nMultyDataloader is a utility class that provides dynamic creation and caching of DataLoader instances based on different parameters. This allows for efficient batching and caching of data loading requests, reducing duplicate queries and optimizing data fetching.\n\nInstallation\n------------\n\nTo install MultyDataloader using npm:\n\n    npm install multydataloader\n    \n\nOr using yarn:\n\n    yarn add multydataloader\n    \n\nUsage\n-----\n\n### Basic Example\n\nFirst, import the necessary modules and types:\n\n    import DataLoader from \"dataloader\";\n    import MultyDataloader, { MultyDataloaderBatchLoadFn } from \"multydataloader\";\n    \n\nDefine a batch loading function that uses the provided parameters and keys to load data. Then, create an instance of `MultyDataloader` and use it to load data with different parameters:\n\n    const exampleBatchLoadFn: MultyDataloaderBatchLoadFn = (params) => async (keys) => {\n      // Use params and keys to load data\n      return keys.map(key => `Data for ${key} with params ${JSON.stringify(params)}`);\n    };\n    \n    const loader = new MultyDataloader(exampleBatchLoadFn);\n    \n    (async () => {\n      const data1 = await loader.load('key1', { param1: 'value1', param2: 'value2' });\n      console.log(data1); // Output: \"Data for key1 with params {\"param1\":\"value1\",\"param2\":\"value2\"}\"\n    })();\n    \n\nAPI\n---\n\n### `MultyDataloader<R>`\n\n#### Constructor\n\n    constructor(batchLoadFn: MultyDataloaderBatchLoadFn<R>)\n    \n\n*   `batchLoadFn`: A function that generates a batch load function for DataLoader instances. It takes an optional `params` object and returns a `DataLoader.BatchLoadFn`.\n\n#### Methods\n\n##### `load(mpid: unknown, params?: Params): Promise<R>`\n\nLoads data using the specified `mpid` and optional `params`.\n\n*   `mpid`: The key to be loaded by the DataLoader.\n*   `params`: Optional parameters to customize the DataLoader instance.\n\n##### `private getDataloader(key: string, params?: Params): DataLoader<unknown, R>`\n\nGets an existing DataLoader instance or creates a new one based on the provided `key` and `params`.\n\n##### `private objectToKey(obj: Params): string`\n\nGenerates a unique key string from the provided `params` object by sorting its keys and creating a SHA-256 hash.\n\nLicense\n-------\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.","readmeFilename":"readme.md"}