@effect-app/infra 1.44.6 → 1.45.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.
@@ -83,7 +83,7 @@ const dedupe = Array.dedupeWith(Equivalence.string);
83
83
  * A base implementation to create a repository.
84
84
  */
85
85
  export function makeRepo() {
86
- return (name, schema, mapFrom, mapTo) => {
86
+ return (name, schema, mapFrom, mapTo, idKey) => {
87
87
  function mapToPersistenceModel(e, getEtag) {
88
88
  return mapTo(e, getEtag(e.id));
89
89
  }
@@ -120,7 +120,7 @@ export function makeRepo() {
120
120
  .pipe((_) => _.ast._tag === "Union"
121
121
  // we need to get the TypeLiteral, incase of class it's behind a transform...
122
122
  ? S.Union(..._.ast.types.map((_) => S.make(_._tag === "Transformation" ? _.from : _)
123
- .pipe(S.pick("id"))))
123
+ .pipe(S.pick(idKey))))
124
124
  : _
125
125
  .ast
126
126
  ._tag === "Transformation"
@@ -129,10 +129,10 @@ export function makeRepo() {
129
129
  .ast
130
130
  .from)
131
131
  .pipe(S
132
- .pick("id"))
132
+ .pick(idKey))
133
133
  : _
134
134
  .pipe(S
135
- .pick("id")));
135
+ .pick(idKey)));
136
136
  const encodeId = flow(S.encode(i), Effect.provide(rctx));
137
137
  function findEId(id) {
138
138
  return Effect.flatMap(store.find(id), (item) => Effect.gen(function* () {
@@ -140,8 +140,9 @@ export function makeRepo() {
140
140
  return item.pipe(Option.map((_) => mapReverse(_, set)));
141
141
  }));
142
142
  }
143
+ // TODO: deal with idKey <-> "id" in encoded
143
144
  function findE(id) {
144
- return pipe(encodeId({ id }), Effect.orDie, Effect.map((_) => _.id), Effect.flatMap(findEId));
145
+ return pipe(encodeId({ [idKey]: id }), Effect.orDie, Effect.map((_) => _.id), Effect.flatMap(findEId));
145
146
  }
146
147
  function find(id) {
147
148
  return Effect.flatMapOption(findE(id), (_) => Effect.orDie(decode(_)));
@@ -335,8 +336,8 @@ const makeRepoFunctions = (tag, itemType) => {
335
336
  };
336
337
  };
337
338
  export const RepositoryBaseImpl = () => {
338
- return () => (itemType, schema, jitM) => {
339
- const mkRepo = makeRepo()(itemType, schema, jitM ? (pm) => jitM(pm) : (pm) => pm, (e, _etag) => ({ ...e, _etag }));
339
+ return () => (itemType, schema, idKey, jitM) => {
340
+ const mkRepo = makeRepo()(itemType, schema, jitM ? (pm) => jitM(pm) : (pm) => pm, (e, _etag) => ({ ...e, _etag }), idKey);
340
341
  class Cls extends RepositoryBaseC1 {
341
342
  constructor() {
342
343
  super(itemType);
@@ -354,8 +355,10 @@ export const RepositoryBaseImpl = () => {
354
355
  };
355
356
  };
356
357
  export const RepositoryDefaultImpl = () => {
357
- return (itemType, schema, jitM) => {
358
- const mkRepo = makeRepo()(itemType, schema, jitM ? (pm) => jitM(pm) : (pm) => pm, (e, _etag) => ({ ...e, _etag }));
358
+ const f = (itemType, schema, idKeyOrJitM, jitM) => {
359
+ if (!jitM && idKeyOrJitM !== undefined && typeof idKeyOrJitM === "function")
360
+ jitM = idKeyOrJitM;
361
+ const mkRepo = makeRepo()(itemType, schema, jitM ? (pm) => jitM(pm) : (pm) => pm, (e, _etag) => ({ ...e, _etag }), idKeyOrJitM ?? "id");
359
362
  class Cls extends RepositoryBaseC3 {
360
363
  constructor(impl) {
361
364
  super(itemType, impl);
@@ -371,9 +374,10 @@ export const RepositoryDefaultImpl = () => {
371
374
  Error.stackTraceLimit = limit;
372
375
  return Context.assignTag(undefined, creationError)(Object.assign(Cls, makeRepoFunctions(Cls, itemType))); // impl is missing, but its marked protected
373
376
  };
377
+ return f;
374
378
  };
375
379
  export const RepositoryDefaultImpl2 = () => {
376
- return (itemType, schema, options) => {
380
+ const f = (itemType, schema, options) => {
377
381
  let layerCache = undefined;
378
382
  let layerCache2 = undefined;
379
383
  class Cls extends RepositoryBaseC3 {
@@ -386,7 +390,7 @@ export const RepositoryDefaultImpl2 = () => {
386
390
  return layerCache ??= Effect
387
391
  .gen(function* () {
388
392
  const opts = yield* options.options ?? Effect.succeed({});
389
- const mkRepo = makeRepo()(itemType, schema, options?.jitM ? (pm) => options.jitM(pm) : (pm) => pm, (e, _etag) => ({ ...e, _etag }));
393
+ const mkRepo = makeRepo()(itemType, schema, options?.jitM ? (pm) => options.jitM(pm) : (pm) => pm, (e, _etag) => ({ ...e, _etag }), options.idKey ?? "id");
390
394
  const r = yield* mkRepo.make({ ...options, ...opts });
391
395
  return Layer.succeed(self, new self(Object.assign(r, "ext" in opts ? opts.ext : {})));
392
396
  })
@@ -408,15 +412,16 @@ export const RepositoryDefaultImpl2 = () => {
408
412
  Error.stackTraceLimit = limit;
409
413
  return Context.assignTag(undefined, creationError)(Object.assign(Cls, makeRepoFunctions(Cls, itemType))); // impl is missing, but its marked protected
410
414
  };
415
+ return f;
411
416
  };
412
417
  // TODO: integrate with repo
413
- export const makeRequest = (repo) => {
418
+ export const makeRequest = (repo, idKey) => {
414
419
  const _request = Request.tagged(`Get${repo.itemType}`);
415
420
  const requestResolver = RequestResolver
416
421
  .makeBatched((requests) => repo
417
422
  .query(Q.where("id", "in", requests.map((_) => _.id))) // TODO
418
423
  .pipe(Effect.andThen((items) => Effect.forEach(requests, (r) => Request.complete(r, Array
419
- .findFirst(items, (_) => _.id === r.id)
424
+ .findFirst(items, (_) => _[idKey] === r.id)
420
425
  .pipe(Option.match({
421
426
  onNone: () => Exit.fail(new NotFoundError({ type: repo.itemType, id: r.id })),
422
427
  onSome: Exit.succeed
@@ -425,4 +430,4 @@ export const makeRequest = (repo) => {
425
430
  .pipe(RequestResolver.batchN(20), RequestResolver.contextFromServices(repo));
426
431
  return (id) => Effect.request(_request({ id }), requestResolver);
427
432
  };
428
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvUmVwb3NpdG9yeUJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCwwREFBMEQ7QUFDMUQsNERBQTREO0FBQzVELHVEQUF1RDtBQUV2RCxvRUFBb0U7QUFDcEUsT0FBTyxFQUNMLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsR0FBRyxFQUVILG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDZCxNQUFNLGlCQUFpQixDQUFBO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFJdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbkQsT0FBTyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBQ0wsT0FBTyxFQUNQLE1BQU0sRUFDTixXQUFXLEVBQ1gsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsTUFBTSxFQUNOLElBQUksRUFDSixNQUFNLEVBQ04sT0FBTyxFQUNQLGVBQWUsRUFDZixDQUFDLEVBQ0QsS0FBSyxFQUNOLE1BQU0sWUFBWSxDQUFBO0FBQ25CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUV6QyxPQUFPLEVBQTBCLGFBQWEsRUFBdUMsTUFBTSxjQUFjLENBQUE7QUFFekcsT0FBTyxFQUFFLElBQUksSUFBSSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUE7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUF5QnBFOztH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
433
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvUmVwb3NpdG9yeUJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCwwREFBMEQ7QUFDMUQsNERBQTREO0FBQzVELHVEQUF1RDtBQUV2RCxvRUFBb0U7QUFDcEUsT0FBTyxFQUNMLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsR0FBRyxFQUVILG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDZCxNQUFNLGlCQUFpQixDQUFBO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFJdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbkQsT0FBTyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBQ0wsT0FBTyxFQUNQLE1BQU0sRUFDTixXQUFXLEVBQ1gsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsTUFBTSxFQUNOLElBQUksRUFDSixNQUFNLEVBQ04sT0FBTyxFQUNQLGVBQWUsRUFDZixDQUFDLEVBQ0QsS0FBSyxFQUNOLE1BQU0sWUFBWSxDQUFBO0FBQ25CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUV6QyxPQUFPLEVBQTBCLGFBQWEsRUFBdUMsTUFBTSxjQUFjLENBQUE7QUFFekcsT0FBTyxFQUFFLElBQUksSUFBSSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUE7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUF5QnBFOztH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
@@ -25,7 +25,7 @@ declare const RequestContextContainer_base: (abstract new (service: {
25
25
  requestContext: Effect<RequestContext>;
26
26
  update: (f: (rc: RequestContext) => RequestContext) => Effect<RequestContext>;
27
27
  start: (f: RequestContext) => Effect<void>;
28
- }) => X) => X extends Effect<infer A_1, infer E_1, infer R_3> ? Effect<A_1, E_1, RequestContextContainer | R_3> : Effect<X, never, RequestContextContainer>;
28
+ }) => X) => X extends Effect<infer A_1, infer E_1, infer R_3> ? Effect<A_1, E_1, R_3 | RequestContextContainer> : Effect<X, never, RequestContextContainer>;
29
29
  };
30
30
  /**
31
31
  * @tsplus type RequestContextContainer
@@ -87,7 +87,7 @@ declare const StoreMaker_base: (abstract new (service: {
87
87
  make: <Encoded extends {
88
88
  id: Id;
89
89
  }, Id extends string, R = never, E = never>(name: string, seed?: Effect<Iterable<Encoded>, E, R>, config?: StoreConfig<Encoded>) => Effect<Store<Encoded, Id>, E, R>;
90
- }) => X) => X extends Effect<infer A_1, infer E_1, infer R_3> ? Effect<A_1, E_1, R_3 | StoreMaker> : Effect<X, never, StoreMaker>;
90
+ }) => X) => X extends Effect<infer A_1, infer E_1, infer R_3> ? Effect<A_1, E_1, StoreMaker | R_3> : Effect<X, never, StoreMaker>;
91
91
  };
92
92
  /**
93
93
  * @tsplus type StoreMaker
package/examples/query.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { RepositoryDefaultImpl } from "@effect-app/infra/services/RepositoryBase"
1
+ import { RepositoryDefaultImpl2 } from "@effect-app/infra/services/RepositoryBase"
2
2
  import { Effect, flow, Layer, ManagedRuntime, S } from "effect-app"
3
3
  import { and, or, order, page, project, where } from "../src/services/query.js"
4
4
  import { ContextMapContainer } from "../src/services/Store/ContextMapContainer.js"
@@ -28,9 +28,10 @@ const items = [
28
28
  })
29
29
  ]
30
30
 
31
- class SomethingRepo extends RepositoryDefaultImpl<SomethingRepo>()(
31
+ class SomethingRepo extends RepositoryDefaultImpl2<SomethingRepo>()(
32
32
  "Something",
33
- Something
33
+ Something,
34
+ { idKey: "id" }
34
35
  ) {
35
36
  static readonly Test = Layer
36
37
  .effect(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "1.44.6",
3
+ "version": "1.45.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -20,16 +20,16 @@
20
20
  "proper-lockfile": "^4.1.2",
21
21
  "pure-rand": "6.1.0",
22
22
  "redlock": "^4.2.0",
23
- "@effect-app/core": "1.17.1",
24
23
  "@effect-app/infra-adapters": "1.20.6",
24
+ "@effect-app/schema": "1.19.1",
25
25
  "effect-app": "1.30.5",
26
- "@effect-app/schema": "1.19.1"
26
+ "@effect-app/core": "1.17.1"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@babel/cli": "^7.25.7",
30
30
  "@sentry/node": "^8.34.0",
31
31
  "@types/express": "^5.0.0",
32
- "@types/node": "~22.7.6",
32
+ "@types/node": "~22.7.7",
33
33
  "@types/proper-lockfile": "^4.1.4",
34
34
  "@types/redis": "^2.8.32",
35
35
  "@types/redlock": "^4.0.7",
@@ -13,13 +13,14 @@ import type { Repository } from "./service.js"
13
13
  * @tsplus fluent Repository get
14
14
  */
15
15
  export function get<
16
- T extends { id: unknown },
16
+ T,
17
17
  Encoded extends { id: string },
18
18
  Evt,
19
- ItemType extends string
19
+ ItemType extends string,
20
+ IdKey extends keyof T
20
21
  >(
21
- self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
22
- id: T["id"]
22
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>,
23
+ id: T[IdKey]
23
24
  ) {
24
25
  return self
25
26
  .find(id)
@@ -30,11 +31,12 @@ export function get<
30
31
  * @tsplus getter Repository log
31
32
  */
32
33
  export function log<
33
- T extends { id: unknown },
34
+ T,
34
35
  Encoded extends { id: string },
35
36
  Evt,
36
- ItemType extends string
37
- >(_: RepositoryBaseC<T, Encoded, Evt, ItemType>) {
37
+ ItemType extends string,
38
+ IdKey extends keyof T
39
+ >(_: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>) {
38
40
  return (evt: Evt) => AnyPureDSL.log(evt)
39
41
  }
40
42
 
@@ -42,11 +44,12 @@ export function log<
42
44
  * @tsplus fluent Repository byIdAndSaveWithPure
43
45
  */
44
46
  export function byIdAndSaveWithPure<
45
- T extends { id: unknown },
47
+ T,
46
48
  Encoded extends { id: string },
47
49
  Evt,
48
- ItemType extends string
49
- >(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, id: T["id"]) {
50
+ ItemType extends string,
51
+ IdKey extends keyof T
52
+ >(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, id: T[IdKey]) {
50
53
  return <R, A, E, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, T, S2>>) =>
51
54
  get(self, id).pipe(Effect.flatMap((item) => saveWithPure_(self, item, pure)))
52
55
  }
@@ -56,12 +59,13 @@ export function byIdAndSaveWithPure<
56
59
  * @tsplus getter Repository handleByIdAndSaveWithPure
57
60
  */
58
61
  export function handleByIdAndSaveWithPure<
59
- T extends { id: unknown },
62
+ T,
60
63
  Encoded extends { id: string },
61
64
  Evt,
62
- ItemType extends string
63
- >(self: RepositoryBaseC<T, Encoded, Evt, ItemType>) {
64
- return <Req extends { id: T["id"] }, Context, R, A, E, S2 extends T>(
65
+ ItemType extends string,
66
+ IdKey extends keyof T
67
+ >(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>) {
68
+ return <Req extends { id: T[IdKey] }, Context, R, A, E, S2 extends T>(
65
69
  pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>
66
70
  ) =>
67
71
  (req: Req, ctx: Context) => byIdAndSaveWithPure(self, req.id)(pure(req, ctx))
@@ -72,16 +76,17 @@ export function handleByIdAndSaveWithPure<
72
76
  */
73
77
  export function saveManyWithPure_<
74
78
  R,
75
- T extends { id: unknown },
79
+ T,
76
80
  Encoded extends { id: string },
77
81
  A,
78
82
  E,
79
83
  Evt,
80
84
  S1 extends T,
81
85
  S2 extends T,
82
- ItemType extends string
86
+ ItemType extends string,
87
+ IdKey extends keyof T
83
88
  >(
84
- self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
89
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>,
85
90
  items: Iterable<S1>,
86
91
  pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>
87
92
  ) {
@@ -96,16 +101,17 @@ export function saveManyWithPure_<
96
101
  */
97
102
  export function saveWithPure_<
98
103
  R,
99
- T extends { id: unknown },
104
+ T,
100
105
  Encoded extends { id: string },
101
106
  A,
102
107
  E,
103
108
  Evt,
104
109
  S1 extends T,
105
110
  S2 extends T,
106
- ItemType extends string
111
+ ItemType extends string,
112
+ IdKey extends keyof T
107
113
  >(
108
- self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
114
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>,
109
115
  item: S1,
110
116
  pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>
111
117
  ) {
@@ -118,16 +124,17 @@ export function saveWithPure_<
118
124
  }
119
125
 
120
126
  export function saveAllWithEffectInt<
121
- T extends { id: unknown },
127
+ T,
122
128
  Encoded extends { id: string },
123
129
  P extends T,
124
130
  Evt,
125
131
  ItemType extends string,
132
+ IdKey extends keyof T,
126
133
  R,
127
134
  E,
128
135
  A
129
136
  >(
130
- self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
137
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>,
131
138
  gen: Effect<readonly [Iterable<P>, Iterable<Evt>, A], E, R>
132
139
  ) {
133
140
  return Effect.flatMap(gen, ([items, events, a]) => self.saveAndPublish(items, events).pipe(Effect.map(() => a)))
@@ -137,11 +144,12 @@ export function saveAllWithEffectInt<
137
144
  * @tsplus fluent Repository saveManyWithPureBatched
138
145
  */
139
146
  export function saveManyWithPureBatched<
140
- T extends { id: unknown },
147
+ T,
141
148
  Encoded extends { id: string },
142
149
  Evt,
143
- ItemType extends string
144
- >(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, batchSize = 100) {
150
+ ItemType extends string,
151
+ IdKey extends keyof T
152
+ >(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, batchSize = 100) {
145
153
  return <R, A, E, S1 extends T, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>) =>
146
154
  (items: Iterable<S1>) => saveManyWithPureBatched_(self, items, pure, batchSize)
147
155
  }
@@ -151,16 +159,17 @@ export function saveManyWithPureBatched<
151
159
  */
152
160
  export function saveManyWithPureBatched_<
153
161
  R,
154
- T extends { id: unknown },
162
+ T,
155
163
  Encoded extends { id: string },
156
164
  A,
157
165
  E,
158
166
  Evt,
159
167
  S1 extends T,
160
168
  S2 extends T,
161
- ItemType extends string
169
+ ItemType extends string,
170
+ IdKey extends keyof T
162
171
  >(
163
- self: RepositoryBaseC<T, Encoded, Evt, ItemType>,
172
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>,
164
173
  items: Iterable<S1>,
165
174
  pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>,
166
175
  batchSize = 100
@@ -179,12 +188,13 @@ export function saveManyWithPureBatched_<
179
188
  * @tsplus getter Repository save
180
189
  */
181
190
  export function save<
182
- T extends { id: unknown },
191
+ T,
183
192
  Encoded extends { id: string },
184
193
  Evt,
185
- ItemType extends string
194
+ ItemType extends string,
195
+ IdKey extends keyof T
186
196
  >(
187
- self: RepositoryBaseC<T, Encoded, Evt, ItemType>
197
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>
188
198
  ) {
189
199
  return (...items: NonEmptyArray<T>) => self.saveAndPublish(items)
190
200
  }
@@ -193,12 +203,13 @@ export function save<
193
203
  * @tsplus getter Repository saveWithEvents
194
204
  */
195
205
  export function saveWithEvents<
196
- T extends { id: unknown },
206
+ T,
197
207
  Encoded extends { id: string },
198
208
  Evt,
199
- ItemType extends string
209
+ ItemType extends string,
210
+ IdKey extends keyof T
200
211
  >(
201
- self: RepositoryBaseC<T, Encoded, Evt, ItemType>
212
+ self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>
202
213
  ) {
203
214
  return (events: Iterable<Evt>) => (...items: NonEmptyArray<T>) => self.saveAndPublish(items, events)
204
215
  }
@@ -212,10 +223,11 @@ export function itemUpdateWithEffect<
212
223
  T extends { id: string },
213
224
  Encoded extends { id: string },
214
225
  Evt,
215
- ItemType extends string
226
+ ItemType extends string,
227
+ IdKey extends keyof T
216
228
  >(
217
- repo: RepositoryBaseC<T, Encoded, Evt, ItemType>,
218
- id: T["id"],
229
+ repo: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>,
230
+ id: T[IdKey],
219
231
  mod: (item: T) => Effect<T, E, R>
220
232
  ) {
221
233
  return get(repo, id).pipe(Effect.andThen(mod), Effect.andThen(save(repo)))
@@ -228,10 +240,11 @@ export function itemUpdate<
228
240
  T extends { id: string },
229
241
  Encoded extends { id: string },
230
242
  Evt,
231
- ItemType extends string
243
+ ItemType extends string,
244
+ IdKey extends keyof T
232
245
  >(
233
- repo: RepositoryBaseC<T, Encoded, Evt, ItemType>,
234
- id: T["id"],
246
+ repo: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>,
247
+ id: T[IdKey],
235
248
  mod: (item: T) => T
236
249
  ) {
237
250
  return itemUpdateWithEffect(
@@ -246,13 +259,14 @@ export function itemUpdate<
246
259
  * @tsplus fluent Repository removeById
247
260
  */
248
261
  export function removeById<
249
- T extends { id: unknown },
262
+ T,
250
263
  Encoded extends { id: string },
251
264
  Evt,
252
- ItemType extends string
265
+ ItemType extends string,
266
+ IdKey extends keyof T
253
267
  >(
254
- self: Repository<T, Encoded, Evt, ItemType>,
255
- id: T["id"]
268
+ self: Repository<T, Encoded, Evt, ItemType, IdKey>,
269
+ id: T[IdKey]
256
270
  ) {
257
271
  return get(self, id).pipe(Effect.flatMap((_) => self.removeAndPublish([_])))
258
272
  }
@@ -4,8 +4,9 @@ import type { RepositoryBaseC } from "../RepositoryBase.js"
4
4
  * @tsplus type Repository
5
5
  */
6
6
  export interface Repository<
7
- T extends { id: unknown },
7
+ T,
8
8
  Encoded extends { id: string },
9
9
  Evt,
10
- ItemType extends string
11
- > extends RepositoryBaseC<T, Encoded, Evt, ItemType> {}
10
+ ItemType extends string,
11
+ IdKey extends keyof T
12
+ > extends RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey> {}