Files
start-sdk/lib/inits/migrations/Migration.ts
Matt Hill a0bc1eca02 fix types
2023-05-05 11:16:01 -06:00

29 lines
855 B
TypeScript

import { ManifestVersion } from "../../manifest/ManifestTypes"
import { Effects } from "../../types"
import { Utils } from "../../util"
export class Migration<WD, Version = ManifestVersion> {
constructor(
readonly options: {
version: Version
up: (opts: { effects: Effects; utils: Utils<WD> }) => Promise<void>
down: (opts: { effects: Effects; utils: Utils<WD> }) => Promise<void>
},
) {}
static of<WD, Version = ManifestVersion>(options: {
version: Version
up: (opts: { effects: Effects; utils: Utils<WD> }) => Promise<void>
down: (opts: { effects: Effects; utils: Utils<WD> }) => Promise<void>
}) {
return new Migration(options)
}
async up(opts: { effects: Effects; utils: Utils<WD> }) {
this.up(opts)
}
async down(opts: { effects: Effects; utils: Utils<WD> }) {
this.down(opts)
}
}