UNPKG

ddb-table

Version:

Strongly typed library for querying and modeling DynamoDB documents.

17 lines (16 loc) 1.04 kB
import { Item } from './DocumentClient'; import { GetQuery, PutQuery, UpdateQuery } from './queries'; import DeleteQuery from './queries/DeleteQuery'; import TableIndex, { TableIndexOptions, TableKey, TableKeyArgs } from './TableIndex'; export type TableOptions<H, S> = Omit<TableIndexOptions<H, S>, 'indexName'>; export default class Table<T extends Item, H extends keyof T, S extends keyof T = never> extends TableIndex<T, H, S> { constructor(opts: TableOptions<H, S> & ([S] extends [never] ? {} : { sortKey: S; })); index<P extends Partial<T>, H extends keyof P>(name: string, primaryKey: H): TableIndex<P, H, never>; index<P extends Partial<T>, H extends keyof P, S extends keyof P>(name: string, primaryKey: H, sortKey: S): TableIndex<P, H, S>; put(item: T): PutQuery<T>; get(...args: TableKeyArgs<T, H, S>): GetQuery<T, TableKey<T, H, S>>; update(...args: TableKeyArgs<T, H, S>): UpdateQuery<T, TableKey<T, H, S>>; delete(...args: TableKeyArgs<T, H, S>): DeleteQuery<T, TableKey<T, H, S>>; }