| 152 | }) |
| 153 | |
| 154 | const nativeLayer = (config: Config) => |
| 155 | Layer.effect( |
| 156 | Sqlite.Native, |
| 157 | Effect.gen(function* () { |
| 158 | const native = new Database(config.filename, { |
| 159 | readonly: config.readonly, |
| 160 | readwrite: config.readwrite ?? true, |
| 161 | create: config.create ?? true, |
| 162 | }) |
| 163 | yield* Effect.addFinalizer(() => Effect.sync(() => native.close())) |
| 164 | if (config.disableWAL !== true) native.run("PRAGMA journal_mode = WAL;") |
| 165 | return native |
| 166 | }), |
| 167 | ) |
| 168 | |
| 169 | const sqliteLayer = (config: Config) => Layer.effect(Client.SqlClient, make(config)) |
| 170 | |