dataloader-toolbox
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

dataloader-toolbox

install

npm install dataloader-toolbox

api

createDataLoaderSession

create a session and add to context when you create new context(per request). session function returns dataloader function from normal function.

code

const session = createDataLoaderSession()
// add it to context
const getData = (keys: string[]) => {
  // find data keys: ['key1', 'key2', 'key3']

  return [...data]
}

async function resolver(parent, args, context) {
  context.session(getData).load('key1')
  context.session(getData).load('key2')
  context.session(getData).load('key3')
}

dataLoaderSorter

dataloader does not support sorting, you need to sorter.

code

const resolver = (keys: string[]) => {
  type Item = {
    id: string
  }

  const sql = `
select *
from table
where id in (${keys})`
  
  // query returns Promise<Item[]>
  return query(sql).then(dataLoaderSorter<Item, 'id'>(keys, 'id'))
}

license

MIT

Package Sidebar

Install

npm i dataloader-toolbox

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

4.46 kB

Total Files

8

Last publish

Collaborators

  • deptno