UNPKG

kysely-pglite

Version:
30 lines 1.09 kB
import { globby } from 'globby'; import { createJiti } from 'jiti'; import { Migrator } from 'kysely'; import { all, objectify } from 'radash'; const jiti = createJiti(import.meta.filename, { // prevent files from getting cached so the `watch` feature works. moduleCache: false, }); export function createMigrator(db, migrationsPath) { return new Migrator({ db, provider: { async getMigrations() { const files = await globby(migrationsPath, { expandDirectories: { files: ['*.ts', '*.js'], }, ignore: ['**/types.ts', '**/*.d.ts'], objectMode: true, absolute: true, }); const migrations = objectify(files, (f) => f.name, (f) => jiti.import(f.path)); // TODO: improve validating imported functions const modules = (await all(migrations)); return modules; }, }, }); } //# sourceMappingURL=create-migrator.js.map