UNPKG

fewer

Version:

A minimal ORM for Node.js.

40 lines (39 loc) 1.99 kB
import { Database } from '../Database'; import { Adapter } from '../Adapter'; import ColumnType from '../ColumnType'; import { MigrationDefinition, ChangeMigrationShorthand, TaggedMigrationDefinition } from './Definition'; import { Operation } from './Operations'; interface ColumnTypes { [columnName: string]: ColumnType; } declare const CONTAINS_IRREVERSIBLE: unique symbol; export declare class MigrationBuilder<DBAdapter extends Adapter = any, ContainsIrreversibleOperation extends boolean = false> { [CONTAINS_IRREVERSIBLE]: ContainsIrreversibleOperation; operations: Operation[]; direction: 'up' | 'down'; isChangeMigration: boolean; constructor(direction: 'up' | 'down', isChangeMigration: boolean); private readonly flipped; private addOperation; createTable(name: string, options: DBAdapter['TableTypes'], columns: ColumnTypes): MigrationBuilder<DBAdapter, ContainsIrreversibleOperation>; dropTable(name: string): MigrationBuilder<DBAdapter, true>; dropTable(name: string, options?: DBAdapter['TableTypes'], columns?: ColumnTypes): MigrationBuilder<DBAdapter, ContainsIrreversibleOperation>; } export declare class Migration<DBAdapter extends Adapter = any> { private definition; readonly version: number; readonly type: 'change' | 'updown' | 'irreversible'; readonly database: Database; operations: Operation[]; constructor(version: number, database: Database, definition: TaggedMigrationDefinition<DBAdapter>); /** * Prepares the migration to be run. Populates the operations. */ prepare(direction: 'up' | 'down'): void; /** * Runs the migration against the underlying adapter. */ run(direction: 'up' | 'down'): Promise<void>; } export { MigrationDefinition }; export declare function createMigration<DBAdapter extends Adapter>(version: number, db: Database<DBAdapter>, definition: MigrationDefinition<DBAdapter> | ChangeMigrationShorthand<DBAdapter>): Migration<DBAdapter>;