@jadejr/kysely-pglite
Version:
Kysely dialect for @electric-sql/pglite (temporary fork https://github.com/dnlsandiego/kysely-pglite)
30 lines • 1.1 kB
JavaScript
import { basename, resolve } from 'node:path';
import { createJiti } from 'jiti';
import { Migrator } from 'kysely';
import { all, objectify } from 'radash';
import { glob } from 'tinyglobby';
const jiti = createJiti(import.meta.filename, {
// prevent files from getting cached so the `watch` feature works.
moduleCache: false,
});
export function createMigrator(db, migrationsPath) {
const path = resolve(migrationsPath);
return new Migrator({
db,
provider: {
async getMigrations() {
const files = await glob('**/*.{js,ts}', {
cwd: path,
expandDirectories: true,
ignore: ['**/types.ts', '**/*.d.ts'],
absolute: true,
});
const migrations = objectify(files, (f) => basename(f), (f) => jiti.import(f));
// TODO: improve validating imported functions
const modules = (await all(migrations));
return modules;
},
},
});
}
//# sourceMappingURL=create-migrator.js.map