Skip to content

Commit

Permalink
chore: add barrel file
Browse files Browse the repository at this point in the history
  • Loading branch information
benjamin658 committed Feb 21, 2022
1 parent 3d17dcb commit bade900
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 50 deletions.
48 changes: 48 additions & 0 deletions src/buildPaginator.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { ObjectType } from 'typeorm';

import Paginator, { Order } from './Paginator';

export interface PagingQuery {
afterCursor?: string;
beforeCursor?: string;
limit?: number;
order?: Order;
}

export interface PaginationOptions<Entity> {
entity: ObjectType<Entity>;
alias?: string;
query?: PagingQuery;
paginationKeys?: Extract<keyof Entity, string>[];
}

export function buildPaginator<Entity>(options: PaginationOptions<Entity>): Paginator<Entity> {
const {
entity,
query = {},
alias = entity.name.toLowerCase(),
paginationKeys = ['id' as any],
} = options;

const paginator = new Paginator(entity, paginationKeys);

paginator.setAlias(alias);

if (query.afterCursor) {
paginator.setAfterCursor(query.afterCursor);
}

if (query.beforeCursor) {
paginator.setBeforeCursor(query.beforeCursor);
}

if (query.limit) {
paginator.setLimit(query.limit);
}

if (query.order) {
paginator.setOrder(query.order);
}

return paginator;
}
52 changes: 2 additions & 50 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,50 +1,2 @@
import { ObjectType } from 'typeorm';

import Paginator, { Order, Cursor, PagingResult } from './Paginator';

export { Order, Cursor, PagingResult };

export interface PagingQuery {
afterCursor?: string;
beforeCursor?: string;
limit?: number;
order?: Order;
}

export interface PaginationOptions<Entity> {
entity: ObjectType<Entity>;
alias?: string;
query?: PagingQuery;
paginationKeys?: Extract<keyof Entity, string>[];
}

export function buildPaginator<Entity>(options: PaginationOptions<Entity>): Paginator<Entity> {
const {
entity,
query = {},
alias = entity.name.toLowerCase(),
paginationKeys = ['id' as any],
} = options;

const paginator = new Paginator(entity, paginationKeys);

paginator.setAlias(alias);

if (query.afterCursor) {
paginator.setAfterCursor(query.afterCursor);
}

if (query.beforeCursor) {
paginator.setBeforeCursor(query.beforeCursor);
}

if (query.limit) {
paginator.setLimit(query.limit);
}

if (query.order) {
paginator.setOrder(query.order);
}

return paginator;
}
export * from './buildPaginator';
export * from './Paginator';

0 comments on commit bade900

Please sign in to comment.