kysely-pglite
Version:
Kysely dialect for @electric-sql/pglite
30 lines • 1.09 kB
JavaScript
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