@effect-app/infra 4.0.0-beta.307 → 4.0.0-beta.309

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 4.0.0-beta.309
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [99c43c4]
8
+ - effect-app@4.0.0-beta.309
9
+
10
+ ## 4.0.0-beta.308
11
+
12
+ ### Patch Changes
13
+
14
+ - b4d5f55: fix DatabaseError typing
15
+ - effect-app@4.0.0-beta.308
16
+
3
17
  ## 4.0.0-beta.307
4
18
 
5
19
  ### Patch Changes
@@ -447,4 +447,4 @@ export const makeMemoryStore = () => ({
447
447
  })
448
448
  });
449
449
  export const MemoryStoreLive = StoreMaker.toLayer(Effect.sync(() => makeMemoryStore()));
450
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL01lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBSTNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUE0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM1QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQTtBQUNqQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssU0FBUyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRWhELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFaEMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQThCLEVBQUUsWUFBb0IsRUFBMkIsRUFBRTtJQUNqSCxNQUFNLE1BQU0sR0FBRyxHQUFHLFlBQVksTUFBTSxDQUFBO0lBQ3BD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
450
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL01lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBSTNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUE0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM1QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQTtBQUNqQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssU0FBUyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRWhELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFaEMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQThCLEVBQUUsWUFBb0IsRUFBMkIsRUFBRTtJQUNqSCxNQUFNLE1BQU0sR0FBRyxHQUFHLFlBQVksTUFBTSxDQUFBO0lBQ3BD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
@@ -1 +1 @@
1
- {"version":3,"file":"Pg.d.ts","sourceRoot":"","sources":["../../../src/Store/SQL/Pg.ts"],"names":[],"mappings":"AAQA,OAAO,EAA8C,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAEpJ,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AA6V/C,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,wEAG9C"}
1
+ {"version":3,"file":"Pg.d.ts","sourceRoot":"","sources":["../../../src/Store/SQL/Pg.ts"],"names":[],"mappings":"AAQA,OAAO,EAA8C,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAEpJ,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAuX/C,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,wEAG9C"}
@@ -5,11 +5,28 @@ import * as Option from "effect-app/Option";
5
5
  import { storeId, StoreMaker } from "effect-app/Store";
6
6
  import * as Struct from "effect/Struct";
7
7
  import { SqlClient } from "effect/unstable/sql";
8
- import { OptimisticConcurrencyException } from "../../errors.js";
8
+ import { DatabaseError, OptimisticConcurrencyException } from "../../errors.js";
9
9
  import { InfraLogger } from "../../logger.js";
10
10
  import { annotateDb } from "../../otel.js";
11
11
  import { makeETag } from "../utils.js";
12
12
  import { buildWhereSQLQuery, logQuery, pgDialect } from "./query.js";
13
+ const sqlErrorMessage = (e) => e?.message ? String(e.message) : String(e);
14
+ const sqlIsTransient = (e) => /timeout|ETIMEDOUT|ECONNRESET|ECONNREFUSED|connection|deadlock|too many connections/i.test(sqlErrorMessage(e));
15
+ // Map a SqlError into a typed, serializable DatabaseError (instead of `.orDie`,
16
+ // which would turn it into an opaque, non-serializable defect).
17
+ const toDatabaseError = (e) => new DatabaseError({ message: `SQL request failed: ${sqlErrorMessage(e)}`, transient: sqlIsTransient(e), cause: e });
18
+ // withTransaction may re-raise setInternal's typed errors or add SqlError on begin/commit.
19
+ // Preserve DatabaseError / OCC by `_tag` (not instanceof — dual package instances break it);
20
+ // map residual SQL failures to DatabaseError.
21
+ const preserveStoreError = (e) => {
22
+ if (e !== null && typeof e === "object" && "_tag" in e) {
23
+ if (e._tag === "DatabaseError")
24
+ return e;
25
+ if (e._tag === "OptimisticConcurrencyException")
26
+ return e;
27
+ }
28
+ return toDatabaseError(e);
29
+ };
13
30
  const parseRow = (row, idKey, defaultValues) => {
14
31
  const data = (typeof row.data === "string" ? JSON.parse(row.data) : row.data);
15
32
  return { ...defaultValues, ...data, [idKey]: row.id, _etag: row._etag ?? undefined };
@@ -51,7 +68,7 @@ const makePgStore = Effect.fnUntraced(function* ({ prefix }) {
51
68
  const data = JSON.stringify(rest);
52
69
  return { id, _etag: newE._etag, data, item: newE };
53
70
  };
54
- const exec = (query, params) => sql.unsafe(query, params).pipe(Effect.orDie);
71
+ const exec = (query, params) => sql.unsafe(query, params).pipe(Effect.mapError(toDatabaseError));
55
72
  const setInternal = Effect.fnUntraced(function* (e, ns) {
56
73
  const row = toRow(e);
57
74
  if (e._etag) {
@@ -84,7 +101,7 @@ const makePgStore = Effect.fnUntraced(function* ({ prefix }) {
84
101
  });
85
102
  const bulkSetInternal = (items, ns) => sql
86
103
  .withTransaction(Effect.forEach(items, (e) => setInternal(e, ns)))
87
- .pipe(Effect.orDie, Effect.map((_) => _));
104
+ .pipe(Effect.mapError(preserveStoreError), Effect.map((_) => _));
88
105
  const ctx = yield* Effect.context();
89
106
  const seedCache = new Map();
90
107
  const makeSeedEffect = Effect.fnUntraced(function* (ns) {
@@ -97,8 +114,10 @@ const makePgStore = Effect.fnUntraced(function* ({ prefix }) {
97
114
  yield* InfraLogger.logInfo(`Seeding data for ${name} (namespace: ${ns})`);
98
115
  const items = yield* seed.pipe(Effect.provide(ctx), Effect.orDie);
99
116
  const ne = toNonEmptyArray([...items]);
100
- if (Option.isSome(ne))
101
- yield* bulkSetInternal(ne.value, ns);
117
+ // Seed inserts are not concurrent; OCC here is a programming defect.
118
+ if (Option.isSome(ne)) {
119
+ yield* bulkSetInternal(ne.value, ns).pipe(Effect.catchTag("OptimisticConcurrencyException", Effect.die));
120
+ }
102
121
  yield* exec(`INSERT INTO "_migrations" (id, version) VALUES ($1, $2)`, [`${tableName}::${ns}`, tableName]);
103
122
  });
104
123
  const seedNamespace = (ns) => {
@@ -219,8 +238,10 @@ const makePgStore = Effect.fnUntraced(function* ({ prefix }) {
219
238
  entity: name
220
239
  }))
221
240
  };
222
- // Eagerly seed primary namespace on initialization
223
- yield* seedNamespace("primary");
241
+ // Eagerly seed primary namespace on initialization. A seed failure at
242
+ // construction is fatal (orDie); the per-call `seedNamespace` still
243
+ // surfaces DatabaseError to callers.
244
+ yield* seedNamespace("primary").pipe(Effect.orDie);
224
245
  return s;
225
246
  })
226
247
  };
@@ -229,4 +250,4 @@ export function PgStoreLayer(cfg) {
229
250
  return StoreMaker
230
251
  .toLayer(makePgStore(cfg));
231
252
  }
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3RvcmUvU1FML1BnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUd2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUczQyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sRUFBZ0csT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3BKLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXBFLE1BQU0sUUFBUSxHQUFHLENBQ2YsR0FBd0QsRUFDeEQsS0FBa0IsRUFDbEIsYUFBK0IsRUFDQSxFQUFFO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQTtJQUN2RixPQUFPLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMs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
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3RvcmUvU1FML1BnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUd2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUczQyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sRUFBZ0csT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3BKLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVwRSxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUUsQ0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFFLENBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3BHLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FDcEMscUZBQXFGLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2hILGdGQUFnRjtBQUNoRixnRUFBZ0U7QUFDaEUsTUFBTSxl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
@@ -1 +1 @@
1
- {"version":3,"file":"SQL.d.ts","sourceRoot":"","sources":["../../src/Store/SQL.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAGhE,OAAO,EAAmB,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACpJ,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAe/C,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;;AAErG,qBAAa,iBACX,SAAQ,sBAAyF;CACjG;AAEF,gBAAgB;AAChB,eAAO,MAAM,QAAQ,GAAI,OAAO,SAAS,WAAW,OAC7C;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,SAChD,WAAW,iBACH,OAAO,CAAC,OAAO,CAAC,KAC9B,oBAAoB,CAAC,OAAO,CAG9B,CAAA;AAkqBD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;CAAE,uDA2B3F"}
1
+ {"version":3,"file":"SQL.d.ts","sourceRoot":"","sources":["../../src/Store/SQL.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAGhE,OAAO,EAAmB,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACpJ,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAyB/C,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;;AAErG,qBAAa,iBACX,SAAQ,sBAAyF;CACjG;AAEF,gBAAgB;AAChB,eAAO,MAAM,QAAQ,GAAI,OAAO,SAAS,WAAW,OAC7C;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,SAChD,WAAW,iBACH,OAAO,CAAC,OAAO,CAAC,KAC9B,oBAAoB,CAAC,OAAO,CAG9B,CAAA;AA4qBD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;CAAE,uDA2B3F"}
package/dist/Store/SQL.js CHANGED
@@ -18,6 +18,18 @@ const sqlIsTransient = (e) => /timeout|ETIMEDOUT|ECONNRESET|ECONNREFUSED|connect
18
18
  // Map a SqlError into a typed, serializable DatabaseError (instead of `.orDie`,
19
19
  // which would turn it into an opaque, non-serializable defect).
20
20
  const toDatabaseError = (e) => new DatabaseError({ message: `SQL request failed: ${sqlErrorMessage(e)}`, transient: sqlIsTransient(e), cause: e });
21
+ // withTransaction may re-raise setInternal's typed errors or add SqlError on begin/commit.
22
+ // Preserve DatabaseError / OCC by `_tag` (not instanceof — dual package instances break it);
23
+ // map residual SQL failures to DatabaseError.
24
+ const preserveStoreError = (e) => {
25
+ if (e !== null && typeof e === "object" && "_tag" in e) {
26
+ if (e._tag === "DatabaseError")
27
+ return e;
28
+ if (e._tag === "OptimisticConcurrencyException")
29
+ return e;
30
+ }
31
+ return toDatabaseError(e);
32
+ };
21
33
  export class WithNsTransaction extends Context.Service()("effect-app/WithNsTransaction") {
22
34
  }
23
35
  /** @internal */
@@ -104,7 +116,7 @@ function makeSQLStoreInt(system, dialect, jsonColumnType) {
104
116
  });
105
117
  const bulkSetInternal = (items, ns) => sql
106
118
  .withTransaction(Effect.forEach(items, (e) => setInternal(e, ns)))
107
- .pipe(Effect.orDie, Effect.map((_) => _));
119
+ .pipe(Effect.mapError(preserveStoreError), Effect.map((_) => _));
108
120
  const ctx = yield* Effect.context();
109
121
  const seedCache = new Map();
110
122
  const makeSeedEffect = Effect.fnUntraced(function* (ns) {
@@ -117,8 +129,10 @@ function makeSQLStoreInt(system, dialect, jsonColumnType) {
117
129
  yield* InfraLogger.logInfo(`Seeding data for ${name} (namespace: ${ns})`);
118
130
  const items = yield* seed.pipe(Effect.provide(ctx), Effect.orDie);
119
131
  const ne = toNonEmptyArray([...items]);
120
- if (Option.isSome(ne))
121
- yield* bulkSetInternal(ne.value, ns);
132
+ // Seed inserts are not concurrent; OCC here is a programming defect.
133
+ if (Option.isSome(ne)) {
134
+ yield* bulkSetInternal(ne.value, ns).pipe(Effect.catchTag("OptimisticConcurrencyException", Effect.die));
135
+ }
122
136
  yield* exec(`INSERT INTO "_migrations" (id, version) VALUES (?, ?)`, [`${tableName}::${ns}`, tableName]);
123
137
  });
124
138
  const seedNamespace = (ns) => {
@@ -303,7 +317,7 @@ function makeSQLiteStorePerNs(withNsSql, { prefix }) {
303
317
  });
304
318
  const bulkSetInternal = (items, ns) => withNsSql(ns, (sql) => sql
305
319
  .withTransaction(Effect.forEach(items, (e) => setInternal(e, ns)))
306
- .pipe(Effect.orDie, Effect.map((_) => _)));
320
+ .pipe(Effect.mapError(preserveStoreError), Effect.map((_) => _)));
307
321
  const ctx = yield* Effect.context();
308
322
  const seedCache = new Map();
309
323
  const makeSeedEffect = Effect.fnUntraced(function* (ns) {
@@ -316,8 +330,10 @@ function makeSQLiteStorePerNs(withNsSql, { prefix }) {
316
330
  yield* InfraLogger.logInfo(`Seeding data for ${name} (namespace: ${ns})`);
317
331
  const items = yield* seed.pipe(Effect.provide(ctx), Effect.orDie);
318
332
  const ne = toNonEmptyArray([...items]);
319
- if (Option.isSome(ne))
320
- yield* bulkSetInternal(ne.value, ns);
333
+ // Seed inserts are not concurrent; OCC here is a programming defect.
334
+ if (Option.isSome(ne)) {
335
+ yield* bulkSetInternal(ne.value, ns).pipe(Effect.catchTag("OptimisticConcurrencyException", Effect.die));
336
+ }
321
337
  yield* exec(ns, `INSERT INTO "_migrations" (id, version) VALUES (?, ?)`, [tableName, tableName]);
322
338
  });
323
339
  const seedNamespace = (ns) => {
@@ -453,4 +469,4 @@ export function SQLiteStoreLayer(cfg, options) {
453
469
  return StoreMaker
454
470
  .toLayer(makeSQLStoreInt("sqlite", sqliteDialect, "JSON")(cfg));
455
471
  }
456
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL1NRTC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFHdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2xELE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFHM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQWdHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNwSixPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFpQixNQUFNLFlBQVksQ0FBQTtBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFtQixhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXJDLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBRSxDQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUUsQ0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEcsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFV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
472
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL1NRTC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFHdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2xELE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFHM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQWdHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNwSixPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFpQixNQUFNLFlBQVksQ0FBQTtBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFtQixhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXJDLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBRSxDQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUUsQ0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEcsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFV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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "4.0.0-beta.307",
3
+ "version": "4.0.0-beta.309",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {
@@ -15,7 +15,7 @@
15
15
  "proper-lockfile": "^4.1.2",
16
16
  "pure-rand": "8.4.0",
17
17
  "query-string": "^9.4.0",
18
- "effect-app": "4.0.0-beta.307"
18
+ "effect-app": "4.0.0-beta.309"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@azure/cosmos": "^4.9.3",
@@ -421,7 +421,7 @@ export function makeMemoryStoreInt<IdKey extends keyof Encoded, Encoded extends
421
421
  collection: modelName,
422
422
  namespace,
423
423
  entity: modelName,
424
- extra: { "app.entity.id": id as unknown }
424
+ extra: { "app.entity.id": id }
425
425
  })
426
426
  ),
427
427
  filter: (f) =>
@@ -456,7 +456,7 @@ export function makeMemoryStoreInt<IdKey extends keyof Encoded, Encoded extends
456
456
  collection: modelName,
457
457
  namespace,
458
458
  entity: modelName,
459
- extra: { "app.entity.id": e[idKey] as unknown }
459
+ extra: { "app.entity.id": e[idKey] }
460
460
  })
461
461
  ),
462
462
  batchRemove: (items: NonEmptyReadonlyArray<Encoded[IdKey]>) =>
@@ -9,12 +9,30 @@ import * as Option from "effect-app/Option"
9
9
  import { type FilterArgs, type PersistenceModelType, type StorageConfig, type Store, type StoreConfig, storeId, StoreMaker } from "effect-app/Store"
10
10
  import * as Struct from "effect/Struct"
11
11
  import { SqlClient } from "effect/unstable/sql"
12
- import { OptimisticConcurrencyException } from "../../errors.ts"
12
+ import { DatabaseError, OptimisticConcurrencyException } from "../../errors.ts"
13
13
  import { InfraLogger } from "../../logger.ts"
14
14
  import { annotateDb } from "../../otel.ts"
15
15
  import { makeETag } from "../utils.ts"
16
16
  import { buildWhereSQLQuery, logQuery, pgDialect } from "./query.ts"
17
17
 
18
+ const sqlErrorMessage = (e: unknown) => (e as any)?.message ? String((e as any).message) : String(e)
19
+ const sqlIsTransient = (e: unknown) =>
20
+ /timeout|ETIMEDOUT|ECONNRESET|ECONNREFUSED|connection|deadlock|too many connections/i.test(sqlErrorMessage(e))
21
+ // Map a SqlError into a typed, serializable DatabaseError (instead of `.orDie`,
22
+ // which would turn it into an opaque, non-serializable defect).
23
+ const toDatabaseError = (e: unknown) =>
24
+ new DatabaseError({ message: `SQL request failed: ${sqlErrorMessage(e)}`, transient: sqlIsTransient(e), cause: e })
25
+ // withTransaction may re-raise setInternal's typed errors or add SqlError on begin/commit.
26
+ // Preserve DatabaseError / OCC by `_tag` (not instanceof — dual package instances break it);
27
+ // map residual SQL failures to DatabaseError.
28
+ const preserveStoreError = (e: unknown): DatabaseError | OptimisticConcurrencyException => {
29
+ if (e !== null && typeof e === "object" && "_tag" in e) {
30
+ if (e._tag === "DatabaseError") return e as DatabaseError
31
+ if (e._tag === "OptimisticConcurrencyException") return e as OptimisticConcurrencyException
32
+ }
33
+ return toDatabaseError(e)
34
+ }
35
+
18
36
  const parseRow = <Encoded extends FieldValues>(
19
37
  row: { id: string; _etag: string | null; data: unknown },
20
38
  idKey: PropertyKey,
@@ -85,7 +103,8 @@ const makePgStore = Effect.fnUntraced(function*({ prefix }: StorageConfig) {
85
103
  return { id, _etag: newE._etag!, data, item: newE }
86
104
  }
87
105
 
88
- const exec = (query: string, params?: readonly unknown[]) => sql.unsafe(query, params as any).pipe(Effect.orDie)
106
+ const exec = (query: string, params?: readonly unknown[]) =>
107
+ sql.unsafe(query, params as any).pipe(Effect.mapError(toDatabaseError))
89
108
 
90
109
  const setInternal = Effect.fnUntraced(function*(e: PM, ns: string) {
91
110
  const row = toRow(e)
@@ -130,12 +149,12 @@ const makePgStore = Effect.fnUntraced(function*({ prefix }: StorageConfig) {
130
149
  sql
131
150
  .withTransaction(Effect.forEach(items, (e) => setInternal(e, ns)))
132
151
  .pipe(
133
- Effect.orDie,
152
+ Effect.mapError(preserveStoreError),
134
153
  Effect.map((_) => _ as unknown as NonEmptyReadonlyArray<PM>)
135
154
  )
136
155
 
137
156
  const ctx = yield* Effect.context<R>()
138
- const seedCache = new Map<string, Effect.Effect<void>>()
157
+ const seedCache = new Map<string, Effect.Effect<void, DatabaseError>>()
139
158
  const makeSeedEffect = Effect.fnUntraced(function*(ns: string) {
140
159
  yield* ensureTable
141
160
  if (!seed) return
@@ -147,7 +166,12 @@ const makePgStore = Effect.fnUntraced(function*({ prefix }: StorageConfig) {
147
166
  yield* InfraLogger.logInfo(`Seeding data for ${name} (namespace: ${ns})`)
148
167
  const items = yield* seed.pipe(Effect.provide(ctx), Effect.orDie)
149
168
  const ne = toNonEmptyArray([...items])
150
- if (Option.isSome(ne)) yield* bulkSetInternal(ne.value, ns)
169
+ // Seed inserts are not concurrent; OCC here is a programming defect.
170
+ if (Option.isSome(ne)) {
171
+ yield* bulkSetInternal(ne.value, ns).pipe(
172
+ Effect.catchTag("OptimisticConcurrencyException", Effect.die)
173
+ )
174
+ }
151
175
  yield* exec(
152
176
  `INSERT INTO "_migrations" (id, version) VALUES ($1, $2)`,
153
177
  [`${tableName}::${ns}`, tableName]
@@ -349,8 +373,10 @@ const makePgStore = Effect.fnUntraced(function*({ prefix }: StorageConfig) {
349
373
  )
350
374
  }
351
375
 
352
- // Eagerly seed primary namespace on initialization
353
- yield* seedNamespace("primary")
376
+ // Eagerly seed primary namespace on initialization. A seed failure at
377
+ // construction is fatal (orDie); the per-call `seedNamespace` still
378
+ // surfaces DatabaseError to callers.
379
+ yield* seedNamespace("primary").pipe(Effect.orDie)
354
380
 
355
381
  return s
356
382
  })
package/src/Store/SQL.ts CHANGED
@@ -25,6 +25,16 @@ const sqlIsTransient = (e: unknown) =>
25
25
  // which would turn it into an opaque, non-serializable defect).
26
26
  const toDatabaseError = (e: unknown) =>
27
27
  new DatabaseError({ message: `SQL request failed: ${sqlErrorMessage(e)}`, transient: sqlIsTransient(e), cause: e })
28
+ // withTransaction may re-raise setInternal's typed errors or add SqlError on begin/commit.
29
+ // Preserve DatabaseError / OCC by `_tag` (not instanceof — dual package instances break it);
30
+ // map residual SQL failures to DatabaseError.
31
+ const preserveStoreError = (e: unknown): DatabaseError | OptimisticConcurrencyException => {
32
+ if (e !== null && typeof e === "object" && "_tag" in e) {
33
+ if (e._tag === "DatabaseError") return e as DatabaseError
34
+ if (e._tag === "OptimisticConcurrencyException") return e as OptimisticConcurrencyException
35
+ }
36
+ return toDatabaseError(e)
37
+ }
28
38
 
29
39
  export type WithNsTransactionFn = <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
30
40
 
@@ -155,7 +165,7 @@ function makeSQLStoreInt(system: DbSystem, dialect: SQLDialect, jsonColumnType:
155
165
  sql
156
166
  .withTransaction(Effect.forEach(items, (e) => setInternal(e, ns)))
157
167
  .pipe(
158
- Effect.orDie,
168
+ Effect.mapError(preserveStoreError),
159
169
  Effect.map((_) => _ as unknown as NonEmptyReadonlyArray<PM>)
160
170
  )
161
171
 
@@ -172,7 +182,12 @@ function makeSQLStoreInt(system: DbSystem, dialect: SQLDialect, jsonColumnType:
172
182
  yield* InfraLogger.logInfo(`Seeding data for ${name} (namespace: ${ns})`)
173
183
  const items = yield* seed.pipe(Effect.provide(ctx), Effect.orDie)
174
184
  const ne = toNonEmptyArray([...items])
175
- if (Option.isSome(ne)) yield* bulkSetInternal(ne.value, ns)
185
+ // Seed inserts are not concurrent; OCC here is a programming defect.
186
+ if (Option.isSome(ne)) {
187
+ yield* bulkSetInternal(ne.value, ns).pipe(
188
+ Effect.catchTag("OptimisticConcurrencyException", Effect.die)
189
+ )
190
+ }
176
191
  yield* exec(
177
192
  `INSERT INTO "_migrations" (id, version) VALUES (?, ?)`,
178
193
  [`${tableName}::${ns}`, tableName]
@@ -488,7 +503,7 @@ function makeSQLiteStorePerNs(
488
503
  sql
489
504
  .withTransaction(Effect.forEach(items, (e) => setInternal(e, ns)))
490
505
  .pipe(
491
- Effect.orDie,
506
+ Effect.mapError(preserveStoreError),
492
507
  Effect.map((_) => _ as unknown as NonEmptyReadonlyArray<PM>)
493
508
  ))
494
509
 
@@ -506,7 +521,12 @@ function makeSQLiteStorePerNs(
506
521
  yield* InfraLogger.logInfo(`Seeding data for ${name} (namespace: ${ns})`)
507
522
  const items = yield* seed.pipe(Effect.provide(ctx), Effect.orDie)
508
523
  const ne = toNonEmptyArray([...items])
509
- if (Option.isSome(ne)) yield* bulkSetInternal(ne.value, ns)
524
+ // Seed inserts are not concurrent; OCC here is a programming defect.
525
+ if (Option.isSome(ne)) {
526
+ yield* bulkSetInternal(ne.value, ns).pipe(
527
+ Effect.catchTag("OptimisticConcurrencyException", Effect.die)
528
+ )
529
+ }
510
530
  yield* exec(
511
531
  ns,
512
532
  `INSERT INTO "_migrations" (id, version) VALUES (?, ?)`,
@@ -3,7 +3,7 @@ import * as DataDependencies from "effect-app/DataDependencies"
3
3
  import * as Effect from "effect-app/Effect"
4
4
  import * as Layer from "effect-app/Layer"
5
5
  import { Q } from "effect-app/Model"
6
- import { makeRepo } from "effect-app/Model/Repository"
6
+ import { makeRepo, repositoryDependency } from "effect-app/Model/Repository"
7
7
  import { RepositoryRegistryLive } from "effect-app/Model/Repository/Registry"
8
8
  import * as S from "effect-app/Schema"
9
9
  import { setupRequestContextFromCurrent } from "effect-app/setupRequest"
@@ -16,6 +16,16 @@ class BatchItem extends S.Class<BatchItem>("BatchItem")({
16
16
  label: S.String
17
17
  }) {}
18
18
 
19
+ class DependencyItem extends S.Class<DependencyItem>("DependencyItem")({
20
+ id: S.String,
21
+ label: repositoryDependency(S.StringId)
22
+ }) {}
23
+
24
+ class NestedDependencyItem extends S.Class<NestedDependencyItem>("NestedDependencyItem")({
25
+ id: S.String,
26
+ parts: S.Array(S.Struct({ id: repositoryDependency(S.String) }))
27
+ }) {}
28
+
19
29
  const TestStoreLive = Layer.merge(MemoryStoreLive, RepositoryRegistryLive)
20
30
 
21
31
  const A = S.TaggedStruct("A", { id: S.String })
@@ -218,7 +228,7 @@ describe("repository ext save/remove batching", () => {
218
228
  .toEqual(DataDependencies.repo("DependencyItem"))
219
229
  })
220
230
 
221
- it.effect("matches an explicit query scope to a write alias", () =>
231
+ it.effect("derives matching read and write scopes from a schema annotation", () =>
222
232
  Effect
223
233
  .gen(function*() {
224
234
  const readsRef = yield* Ref.make(DataDependencies.empty())
@@ -227,17 +237,42 @@ describe("repository ext save/remove batching", () => {
227
237
 
228
238
  yield* Effect
229
239
  .gen(function*() {
230
- const repo = yield* makeRepo("DependencyItem", BatchItem, {
231
- dependencyIds: (item) => [item.id, `alias-${item.id}`]
232
- })
233
- yield* repo.save(new BatchItem({ id: "1", label: "one" }))
234
- yield* repo.all.pipe(DataDependencies.withRepoReadScope("DependencyItem", ["alias-1"]))
240
+ const repo = yield* makeRepo("DependencyItem", DependencyItem, {})
241
+ yield* repo.save(new DependencyItem({ id: "1", label: S.StringId("label-one") }))
242
+ yield* repo.query(Q.where("label", "label-one"))
235
243
  })
236
244
  .pipe(Effect.provideService(DataDependencies.DataDependencyRecorder, recorder))
237
245
 
238
- expect(yield* Ref.get(readsRef)).toEqual(new Set([DataDependencies.repo("DependencyItem", ["alias-1"])]))
246
+ expect(yield* Ref.get(readsRef)).toEqual(new Set([DataDependencies.repo("DependencyItem", ["label-one"])]))
247
+ expect(yield* Ref.get(writesRef)).toEqual(
248
+ new Set([DataDependencies.repo("DependencyItem", ["1", "label-one"])])
249
+ )
250
+ })
251
+ .pipe(
252
+ setupRequestContextFromCurrent(),
253
+ Effect.provide(TestStoreLive)
254
+ ))
255
+
256
+ it.effect("derives a nested annotated relationship scope from whereSome", () =>
257
+ Effect
258
+ .gen(function*() {
259
+ const readsRef = yield* Ref.make(DataDependencies.empty())
260
+ const writesRef = yield* Ref.make(DataDependencies.empty())
261
+ const recorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef)
262
+
263
+ yield* Effect
264
+ .gen(function*() {
265
+ const repo = yield* makeRepo("NestedDependencyItem", NestedDependencyItem, {})
266
+ yield* repo.save(new NestedDependencyItem({ id: "root", parts: [{ id: "part-1" }] }))
267
+ yield* repo.query(Q.whereSome("parts", Q.where("id", "part-1")))
268
+ })
269
+ .pipe(Effect.provideService(DataDependencies.DataDependencyRecorder, recorder))
270
+
271
+ expect(yield* Ref.get(readsRef)).toEqual(
272
+ new Set([DataDependencies.repo("NestedDependencyItem", ["part-1"])])
273
+ )
239
274
  expect(yield* Ref.get(writesRef)).toEqual(
240
- new Set([DataDependencies.repo("DependencyItem", ["1", "alias-1"])])
275
+ new Set([DataDependencies.repo("NestedDependencyItem", ["root", "part-1"])])
241
276
  )
242
277
  })
243
278
  .pipe(
@@ -245,6 +280,38 @@ describe("repository ext save/remove batching", () => {
245
280
  Effect.provide(TestStoreLive)
246
281
  ))
247
282
 
283
+ it.effect("records previous and next relationship aliases", () =>
284
+ Effect
285
+ .gen(function*() {
286
+ const readsRef = yield* Ref.make(DataDependencies.empty())
287
+ const writesRef = yield* Ref.make(DataDependencies.empty())
288
+ const recorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef)
289
+
290
+ yield* Effect
291
+ .gen(function*() {
292
+ const repo = yield* makeRepo("DependencyItem", BatchItem, {
293
+ dependencyIds: (item) => [item.id, `label-${item.label}`]
294
+ })
295
+ yield* repo.save(new BatchItem({ id: "1", label: "old" }))
296
+ yield* recorder.drainWrites
297
+
298
+ yield* repo.save(new BatchItem({ id: "1", label: "new" }))
299
+ expect(yield* recorder.drainWrites).toEqual(
300
+ new Set([DataDependencies.repo("DependencyItem", ["1", "label-new", "label-old"])])
301
+ )
302
+
303
+ yield* repo.removeById("1")
304
+ expect(yield* recorder.drainWrites).toEqual(
305
+ new Set([DataDependencies.repo("DependencyItem", ["1", "label-new"])])
306
+ )
307
+ })
308
+ .pipe(Effect.provideService(DataDependencies.DataDependencyRecorder, recorder))
309
+ })
310
+ .pipe(
311
+ setupRequestContextFromCurrent(),
312
+ Effect.provide(TestStoreLive)
313
+ ))
314
+
248
315
  it.effect("records repository and affected-query write dependencies", () =>
249
316
  Effect
250
317
  .gen(function*() {
package/tsconfig.json CHANGED
@@ -14,7 +14,12 @@
14
14
  "isolatedModules": true,
15
15
  "esModuleInterop": true,
16
16
  "skipLibCheck": true,
17
- "plugins": [],
17
+ "plugins": [
18
+ {
19
+ "name": "@effect/language-service",
20
+ "diagnostics": false
21
+ }
22
+ ],
18
23
  "module": "Node16",
19
24
  "lib": [
20
25
  "ES2023"