codexuse-cli 3.7.6 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2144,6 +2144,14 @@ function rollback(db) {
2144
2144
  } catch {
2145
2145
  }
2146
2146
  }
2147
+ function useStatement(db, sql, task) {
2148
+ const statement = db.prepare(sql);
2149
+ try {
2150
+ return task(statement);
2151
+ } finally {
2152
+ statement.finalize?.();
2153
+ }
2154
+ }
2147
2155
  async function withWriteQueue(dbPath, task) {
2148
2156
  const previous = writeQueueByDbPath.get(dbPath) ?? Promise.resolve();
2149
2157
  let release;
@@ -2221,9 +2229,11 @@ function resolveAppStorageDbPath(userDataDir) {
2221
2229
  }
2222
2230
  async function readDocument(dbPath, namespace, normalize) {
2223
2231
  return withDatabase(dbPath, (db) => {
2224
- const row = db.prepare(
2225
- `SELECT value_json AS valueJson FROM ${APP_STORAGE_TABLE} WHERE namespace = ?`
2226
- ).get(namespace);
2232
+ const row = useStatement(
2233
+ db,
2234
+ `SELECT value_json AS valueJson FROM ${APP_STORAGE_TABLE} WHERE namespace = ?`,
2235
+ (statement) => statement.get(namespace)
2236
+ );
2227
2237
  const parsed = isRecord(row) ? safeParseJson(row.valueJson) : null;
2228
2238
  if (parsed === null) {
2229
2239
  return null;
@@ -2238,7 +2248,8 @@ async function writeDocument(dbPath, namespace, value) {
2238
2248
  const normalizedValue = clone(value);
2239
2249
  beginImmediate(db);
2240
2250
  try {
2241
- db.prepare(
2251
+ useStatement(
2252
+ db,
2242
2253
  `
2243
2254
  INSERT INTO ${APP_STORAGE_TABLE} (namespace, value_json, updated_at)
2244
2255
  VALUES (?, ?, ?)
@@ -2246,8 +2257,9 @@ async function writeDocument(dbPath, namespace, value) {
2246
2257
  DO UPDATE SET
2247
2258
  value_json = excluded.value_json,
2248
2259
  updated_at = excluded.updated_at
2249
- `
2250
- ).run(namespace, JSON.stringify(normalizedValue), (/* @__PURE__ */ new Date()).toISOString());
2260
+ `,
2261
+ (statement) => statement.run(namespace, JSON.stringify(normalizedValue), (/* @__PURE__ */ new Date()).toISOString())
2262
+ );
2251
2263
  commit(db);
2252
2264
  return normalizedValue;
2253
2265
  } catch (error) {
@@ -2263,14 +2275,17 @@ async function updateDocument(input) {
2263
2275
  async () => withDatabase(input.dbPath, (db) => {
2264
2276
  beginImmediate(db);
2265
2277
  try {
2266
- const row = db.prepare(
2267
- `SELECT value_json AS valueJson FROM ${APP_STORAGE_TABLE} WHERE namespace = ?`
2268
- ).get(input.namespace);
2278
+ const row = useStatement(
2279
+ db,
2280
+ `SELECT value_json AS valueJson FROM ${APP_STORAGE_TABLE} WHERE namespace = ?`,
2281
+ (statement) => statement.get(input.namespace)
2282
+ );
2269
2283
  const current = isRecord(row) ? input.normalize(
2270
2284
  safeParseJson(row.valueJson) ?? input.fallback()
2271
2285
  ) : input.fallback();
2272
2286
  const next = input.normalize(input.transform(clone(current)));
2273
- db.prepare(
2287
+ useStatement(
2288
+ db,
2274
2289
  `
2275
2290
  INSERT INTO ${APP_STORAGE_TABLE} (namespace, value_json, updated_at)
2276
2291
  VALUES (?, ?, ?)
@@ -2278,8 +2293,9 @@ async function updateDocument(input) {
2278
2293
  DO UPDATE SET
2279
2294
  value_json = excluded.value_json,
2280
2295
  updated_at = excluded.updated_at
2281
- `
2282
- ).run(input.namespace, JSON.stringify(next), (/* @__PURE__ */ new Date()).toISOString());
2296
+ `,
2297
+ (statement) => statement.run(input.namespace, JSON.stringify(next), (/* @__PURE__ */ new Date()).toISOString())
2298
+ );
2283
2299
  commit(db);
2284
2300
  return clone(next);
2285
2301
  } catch (error) {
@@ -10251,7 +10267,7 @@ async function ensureCliStorageReady() {
10251
10267
  }
10252
10268
 
10253
10269
  // src/app/main.ts
10254
- var VERSION = true ? "3.7.6" : "0.0.0";
10270
+ var VERSION = true ? "3.8.0" : "0.0.0";
10255
10271
  async function runCli() {
10256
10272
  const args = process.argv.slice(2);
10257
10273
  if (args.length === 0) {