Public entry point — the fluent API facade.
One API, two engines. db.schema("antinuke").table("settings").key("guild_123") resolves to ./data/databases/antinuke.db (table settings) in local mode, or the Postgres logical schema antinuke.settings in cloud mode. Application code never changes.
db.schema("antinuke").table("settings").key("guild_123")
./data/databases/antinuke.db
settings
antinuke.settings
import { createDAL } from 'sql-switch';const db = createDAL();await db.connect({ db: { mode: 'local', dataDir: './data/databases', wal: true }, collector: { enabled: true, time: 3000 },}); Copy
import { createDAL } from 'sql-switch';const db = createDAL();await db.connect({ db: { mode: 'local', dataDir: './data/databases', wal: true }, collector: { enabled: true, time: 3000 },});
// readconst settings = await db.schema('antinuke').table('settings').key('guild_123').get();// write (queued to the collector, flushed in bulk)await db.schema('antinuke').table('settings').key('guild_123').set({ strict: true });// write immediately, bypassing the collectorawait db.schema('antinuke').table('settings').key('guild_123').set({ strict: true }).force(); Copy
// readconst settings = await db.schema('antinuke').table('settings').key('guild_123').get();// write (queued to the collector, flushed in bulk)await db.schema('antinuke').table('settings').key('guild_123').set({ strict: true });// write immediately, bypassing the collectorawait db.schema('antinuke').table('settings').key('guild_123').set({ strict: true }).force();
Public entry point — the fluent API facade.
One API, two engines.
db.schema("antinuke").table("settings").key("guild_123")resolves to./data/databases/antinuke.db(tablesettings) in local mode, or the Postgres logical schemaantinuke.settingsin cloud mode. Application code never changes.Example: Connecting
Example: Reading & writing