0.0.46 • Published 6 years ago
@cortexql/queue v0.0.46
CortexQL DataLoader
This is a simple CortexQL wrapper for Facebook's DataLoader
Usage
In your api
directory create the directory loaders
# api/loaders/UserLoader.ts
import { DataLoader } from '@cortexql/dataloader';
import { User } from '../types/User';
export type Key = Pick<User, 'id'>;
export class UserLoader extends DataLoader<Key, User> {
// batch first
batchLoad(keys: Key[]) {
return Promise.all(
keys.map(key => User.findOne(key)),
);
}
}
In your context file api/context/index.ts
import { BaseContext } from '@cortexql/core';
import { UserLoader } from '../loaders/UserLoader';
export class Context extends BaseContext {
userLoader = new UserLoader(this);
}
In whatever resolver api/query/user.ts
import { Context } from '../context';
import { User } from '../types/User';
export type Arguments {
id: User['id'];
}
export async function resolveUser(args: Arguments, context: Context) {
return await context.userLoader.load({ id: args.id });
}
0.0.46
6 years ago
0.0.45
6 years ago
0.0.44
6 years ago
0.0.43
6 years ago
0.0.42
6 years ago
0.0.41
6 years ago
0.0.40
6 years ago
0.0.39
6 years ago
0.0.38
6 years ago
0.0.37
6 years ago
0.0.36
6 years ago
0.0.35
6 years ago
0.0.34
6 years ago
0.0.33
6 years ago
0.0.32
6 years ago
0.0.31
6 years ago
0.0.30
6 years ago
0.0.29
6 years ago
0.0.28
6 years ago
0.0.27
6 years ago
0.0.26
6 years ago
0.0.25
6 years ago
0.0.24
6 years ago
0.0.23
6 years ago
0.0.22
6 years ago
0.0.21
6 years ago
0.0.20
6 years ago
0.0.19
6 years ago
0.0.18
6 years ago
0.0.17
6 years ago
0.0.16
6 years ago
0.0.15
6 years ago
0.0.14
6 years ago
0.0.13
6 years ago
0.0.12
6 years ago
0.0.11
6 years ago
0.0.10
6 years ago
0.0.9
6 years ago
0.0.8
6 years ago
0.0.7
6 years ago
0.0.6
6 years ago
0.0.5
6 years ago
0.0.4
6 years ago
0.0.3
6 years ago
0.0.2
6 years ago
0.0.1
6 years ago