@marculosus/local-pg
Version:
Global CLI tool to run PGlite as a PostgreSQL-compatible server with wire protocol support
50 lines (41 loc) • 1.16 kB
JavaScript
// Main entry point for the pglite-cli-server package
export { PGlite } from '@electric-sql/pglite';
export { PGLiteSocketServer } from '@electric-sql/pglite-socket';
// Version info
export const version = '1.0.0';
// CLI entry point (mainly for programmatic usage)
export async function startPGliteServer(options = {}) {
const { PGlite } = await import('@electric-sql/pglite');
const { PGLiteSocketServer } = await import('@electric-sql/pglite-socket');
const config = {
db: 'memory://',
port: 5432,
host: '127.0.0.1',
debug: 0,
...options
};
// Create PGlite instance
const db = await PGlite.create({
dataDir: config.db,
debug: config.debug,
relaxedDurability: config.db.startsWith('memory://') ? true : false
});
await db.waitReady;
// Create socket server
const server = new PGLiteSocketServer({
db,
port: config.port,
host: config.host,
});
await server.start();
return {
db,
server,
connectionString: `postgres://postgres@${config.host}:${config.port}/template1`,
config,
async stop() {
await server.stop();
await db.close();
}
};
}