UNPKG

semgrator

Version:

Run migrations code based on semantic version rules

30 lines 1.24 kB
/// <reference path="../src/lib/abstract-logging.d.ts" /> import { AbstractLogger } from 'abstract-logging'; export type Migration<Input, Output = Input> = { version: string; toVersion?: string; up: (input: Input) => Promise<Output> | Output; }; interface BaseSemgratorParams<Input> { version: string; input: Input; logger?: AbstractLogger; } interface SemgratorParamsWithMigrations<Input, Output> extends BaseSemgratorParams<Input> { migrations: Migration<Input, Output>[] | AsyncGenerator<Migration<Input, Output>>; } interface SemgratorParamsWithPath<Input> extends BaseSemgratorParams<Input> { path: string; } interface SemgratorResult<Output> { version: string; changed: boolean; result: Output; } interface ThenableAsyncIterator<T> extends PromiseLike<T> { [Symbol.asyncIterator](): AsyncIterator<T, T>; } export declare function loadMigrationsFromPath<Input, Output = Input>(path: string): AsyncGenerator<Migration<Input, Output>>; export declare function semgrator<Input = unknown, Output = unknown>(params: SemgratorParamsWithPath<Input> | SemgratorParamsWithMigrations<Input, Output>): ThenableAsyncIterator<SemgratorResult<Output>>; export {}; //# sourceMappingURL=semgrator.d.ts.map