@feathers-plus/batch-loader
TypeScript icon, indicating that this package has built-in type declarations

0.3.6 • Public • Published

feathers-plus/batch-loader

Build Status Code Climate Test Coverage Dependency Status Download Status

Reduce requests to backend services by batching calls and caching records.

Installation

npm install @feathers-plus/batch-loader --save

Documentation

Please refer to the batch-loader documentation for more details.

Complete Example

Here's an example of a Feathers server that uses feathers-plus/batch-loader.

const BatchLoader = require('@feathers-plus/batch-loader');
const { getResultsByKey, getUniqueKeys } = BatchLoader;

const usersBatchLoader = new BatchLoader(
  keys => app.service('users').find({ query: { id: { $in: getUniqueKeys(keys) } } })
    .then(result => getResultsByKey(keys, result, user => user.id, '!'))
);

app.service('comments').find()
  .then(comments => Promise.all(comments.map(comment => {
    // Attach user record
    return usersBatchLoader.load(comment.userId)
      .then(user => comment.userRecord = user);
  })))

License

Copyright (c) 2017 John J. Szwaronek

Licensed under the MIT license.

Package Sidebar

Install

npm i @feathers-plus/batch-loader

Weekly Downloads

20,499

Version

0.3.6

License

MIT

Unpacked Size

49.5 kB

Total Files

20

Last publish

Collaborators

  • eddystop
  • marshallswain