@shivaedev/sql 0.37.0 → 0.39.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.
Files changed (131) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +117 -2
  3. package/dist/Model.d.ts +9 -0
  4. package/dist/Model.d.ts.map +1 -0
  5. package/dist/Model.js +6 -0
  6. package/dist/Model.js.map +1 -0
  7. package/dist/VersionedRepositoryShape.d.ts +6 -0
  8. package/dist/VersionedRepositoryShape.d.ts.map +1 -0
  9. package/dist/VersionedRepositoryShape.js +2 -0
  10. package/dist/VersionedRepositoryShape.js.map +1 -0
  11. package/dist/WorkerRelease.d.ts +1 -8
  12. package/dist/WorkerRelease.d.ts.map +1 -1
  13. package/dist/WorkerRelease.js +4 -29
  14. package/dist/WorkerRelease.js.map +1 -1
  15. package/dist/adapters/groupColumns.d.ts +14 -0
  16. package/dist/adapters/groupColumns.d.ts.map +1 -0
  17. package/dist/adapters/groupColumns.js +54 -0
  18. package/dist/adapters/groupColumns.js.map +1 -0
  19. package/dist/adapters/storageSchema.d.ts +4 -0
  20. package/dist/adapters/storageSchema.d.ts.map +1 -0
  21. package/dist/adapters/storageSchema.js +7 -0
  22. package/dist/adapters/storageSchema.js.map +1 -0
  23. package/dist/backfillPostgres.d.ts +18 -0
  24. package/dist/backfillPostgres.d.ts.map +1 -0
  25. package/dist/backfillPostgres.js +35 -0
  26. package/dist/backfillPostgres.js.map +1 -0
  27. package/dist/batchWrites.d.ts.map +1 -1
  28. package/dist/batchWrites.js +6 -3
  29. package/dist/batchWrites.js.map +1 -1
  30. package/dist/compositeRecordKey.d.ts +8 -0
  31. package/dist/compositeRecordKey.d.ts.map +1 -0
  32. package/dist/compositeRecordKey.js +15 -0
  33. package/dist/compositeRecordKey.js.map +1 -0
  34. package/dist/compositeRepository.d.ts.map +1 -1
  35. package/dist/compositeRepository.js +4 -1
  36. package/dist/compositeRepository.js.map +1 -1
  37. package/dist/conditionalUpsert.d.ts.map +1 -1
  38. package/dist/conditionalUpsert.js +5 -2
  39. package/dist/conditionalUpsert.js.map +1 -1
  40. package/dist/conflictWrites.d.ts.map +1 -1
  41. package/dist/conflictWrites.js +6 -3
  42. package/dist/conflictWrites.js.map +1 -1
  43. package/dist/coordinateWorkerRelease.js +1 -1
  44. package/dist/coordinateWorkerRelease.js.map +1 -1
  45. package/dist/initializeWorkerRelease.d.ts +7 -0
  46. package/dist/initializeWorkerRelease.d.ts.map +1 -0
  47. package/dist/initializeWorkerRelease.js +7 -0
  48. package/dist/initializeWorkerRelease.js.map +1 -0
  49. package/dist/insertFromSelect.d.ts.map +1 -1
  50. package/dist/insertFromSelect.js +4 -1
  51. package/dist/insertFromSelect.js.map +1 -1
  52. package/dist/latestPerGroup.d.ts.map +1 -1
  53. package/dist/latestPerGroup.js +7 -3
  54. package/dist/latestPerGroup.js.map +1 -1
  55. package/dist/makeOrderedChildren.d.ts +26 -0
  56. package/dist/makeOrderedChildren.d.ts.map +1 -0
  57. package/dist/makeOrderedChildren.js +38 -0
  58. package/dist/makeOrderedChildren.js.map +1 -0
  59. package/dist/makeWorkerRelease.d.ts +8 -0
  60. package/dist/makeWorkerRelease.d.ts.map +1 -0
  61. package/dist/makeWorkerRelease.js +12 -0
  62. package/dist/makeWorkerRelease.js.map +1 -0
  63. package/dist/orderedChildStatements.d.ts +30 -0
  64. package/dist/orderedChildStatements.d.ts.map +1 -0
  65. package/dist/orderedChildStatements.js +61 -0
  66. package/dist/orderedChildStatements.js.map +1 -0
  67. package/dist/registerWorkerRelease.d.ts +4 -0
  68. package/dist/registerWorkerRelease.d.ts.map +1 -0
  69. package/dist/registerWorkerRelease.js +14 -0
  70. package/dist/registerWorkerRelease.js.map +1 -0
  71. package/dist/repository.d.ts +9 -8
  72. package/dist/repository.d.ts.map +1 -1
  73. package/dist/repository.js.map +1 -1
  74. package/dist/repositoryQueries.d.ts +3 -2
  75. package/dist/repositoryQueries.d.ts.map +1 -1
  76. package/dist/repositoryQueries.js +9 -4
  77. package/dist/repositoryQueries.js.map +1 -1
  78. package/dist/repositoryUpdate.d.ts +3 -3
  79. package/dist/repositoryUpdate.d.ts.map +1 -1
  80. package/dist/repositoryWrites.d.ts.map +1 -1
  81. package/dist/repositoryWrites.js +21 -6
  82. package/dist/repositoryWrites.js.map +1 -1
  83. package/dist/setWorkerReleaseActive.d.ts +4 -0
  84. package/dist/setWorkerReleaseActive.d.ts.map +1 -0
  85. package/dist/setWorkerReleaseActive.js +13 -0
  86. package/dist/setWorkerReleaseActive.js.map +1 -0
  87. package/dist/sqlNameTransforms.d.ts +5 -0
  88. package/dist/sqlNameTransforms.d.ts.map +1 -0
  89. package/dist/sqlNameTransforms.js +8 -0
  90. package/dist/sqlNameTransforms.js.map +1 -0
  91. package/dist/upsertResult.d.ts +2 -1
  92. package/dist/upsertResult.d.ts.map +1 -1
  93. package/dist/upsertResult.js +3 -2
  94. package/dist/upsertResult.js.map +1 -1
  95. package/dist/versionedRepository.d.ts +15 -6
  96. package/dist/versionedRepository.d.ts.map +1 -1
  97. package/dist/versionedRepository.js +8 -5
  98. package/dist/versionedRepository.js.map +1 -1
  99. package/dist/versionedStatements.d.ts +1 -1
  100. package/dist/versionedStatements.d.ts.map +1 -1
  101. package/dist/versionedStatements.js +10 -4
  102. package/dist/versionedStatements.js.map +1 -1
  103. package/package.json +15 -15
  104. package/src/Model.ts +7 -0
  105. package/src/VersionedRepositoryShape.ts +11 -0
  106. package/src/WorkerRelease.ts +4 -33
  107. package/src/adapters/groupColumns.ts +63 -0
  108. package/src/adapters/storageSchema.ts +10 -0
  109. package/src/backfillPostgres.ts +47 -0
  110. package/src/batchWrites.ts +6 -3
  111. package/src/compositeRecordKey.ts +26 -0
  112. package/src/compositeRepository.ts +4 -1
  113. package/src/conditionalUpsert.ts +5 -2
  114. package/src/conflictWrites.ts +6 -3
  115. package/src/coordinateWorkerRelease.ts +1 -1
  116. package/src/initializeWorkerRelease.ts +7 -0
  117. package/src/insertFromSelect.ts +4 -1
  118. package/src/latestPerGroup.ts +7 -3
  119. package/src/makeOrderedChildren.ts +78 -0
  120. package/src/makeWorkerRelease.ts +12 -0
  121. package/src/orderedChildStatements.ts +76 -0
  122. package/src/registerWorkerRelease.ts +15 -0
  123. package/src/repository.ts +14 -13
  124. package/src/repositoryQueries.ts +18 -5
  125. package/src/repositoryUpdate.ts +3 -3
  126. package/src/repositoryWrites.ts +21 -6
  127. package/src/setWorkerReleaseActive.ts +17 -0
  128. package/src/sqlNameTransforms.ts +9 -0
  129. package/src/upsertResult.ts +4 -2
  130. package/src/versionedRepository.ts +31 -11
  131. package/src/versionedStatements.ts +14 -4
@@ -8,7 +8,8 @@ import { type SelectWrites } from "#insertFromSelect.ts";
8
8
  import { type BucketRegistrationError, type RepositoryOptions } from "#repositoryCollection.ts";
9
9
  import type { FindManyFilter, RepositoryFilter, RepositoryListFilter } from "#repositoryFilter.ts";
10
10
  import { type Queries } from "#repositoryQueries.ts";
11
- import { type VersionColumn, type VersionedWrites } from "#versionedRepository.ts";
11
+ import type { VersionedRepositoryShape } from "#VersionedRepositoryShape.ts";
12
+ import { type VersionColumn } from "#versionedRepository.ts";
12
13
  type Key<TModel extends Model.Any> = Extract<keyof TModel["fields"] & keyof Row<TModel>, string>;
13
14
  type Row<TModel extends Model.Any> = Schema.Struct.Type<TModel["fields"]>;
14
15
  export interface OrderBy<TModel extends Model.Any> {
@@ -21,6 +22,7 @@ export interface FindMany<TModel extends Model.Any, TKey extends Key<TModel>> {
21
22
  readonly select?: readonly [TKey, ...TKey[]];
22
23
  readonly where?: FindManyFilter<TModel>;
23
24
  }
25
+ export type FindOne<TModel extends Model.Any, TKey extends Key<TModel>> = Omit<FindMany<TModel, TKey>, "limit">;
24
26
  export interface LatestPerGroup<TModel extends Model.Any> {
25
27
  readonly limit: number;
26
28
  readonly orderBy: readonly [OrderBy<TModel>, ...OrderBy<TModel>[]];
@@ -37,17 +39,16 @@ export declare class OptimisticConcurrencyError extends OptimisticConcurrencyErr
37
39
  readonly reason: "missing" | "stale";
38
40
  }> {
39
41
  }
40
- type VersionedRepository<TModel extends Model.Any, TId extends PrimaryKey<TModel>> = Omit<Repository<TModel, TId>, keyof VersionedWrites<TModel, TId>> & VersionedWrites<TModel, TId> & Queries<TModel>;
41
- export declare function makeRepository<TModel extends Model.Any, const TId extends PrimaryKey<TModel>, const TConflict extends ConflictColumns<TModel>, const TWhere extends keyof RepositoryFilter<TModel> = never>(model: TModel, options: RepositoryOptions<TId> & {
42
- readonly versionColumn: VersionColumn<TModel, TId>;
42
+ export declare function makeRepository<TModel extends Model.Any, const TId extends PrimaryKey<TModel>, const TConflict extends ConflictColumns<TModel>, const TWhere extends keyof RepositoryFilter<TModel> = never, const TVersion extends VersionColumn<TModel, TId> = VersionColumn<TModel, TId>>(model: TModel, options: RepositoryOptions<TId> & {
43
+ readonly versionColumn: TVersion;
43
44
  readonly conflictColumns: TConflict;
44
45
  readonly conflictWhere?: Pick<RepositoryFilter<TModel>, TWhere>;
45
- }): Effect.Effect<VersionedRepository<TModel, TId> & Pick<ConflictWrites<TModel, never, TModel["fields"][Extract<TWhere, keyof TModel["fields"]>]["EncodingServices"]>, "insertOrIgnore">, BucketRegistrationError, SqlClient.SqlClient>;
46
- export declare function makeRepository<TModel extends Model.Any, const TId extends PrimaryKey<TModel>>(model: TModel, options: RepositoryOptions<TId> & {
47
- readonly versionColumn: VersionColumn<TModel, TId>;
46
+ }): Effect.Effect<VersionedRepositoryShape<TModel, TId, TVersion> & Pick<ConflictWrites<TModel, never, TModel["fields"][Extract<TWhere, keyof TModel["fields"]>]["EncodingServices"]>, "insertOrIgnore">, BucketRegistrationError, SqlClient.SqlClient>;
47
+ export declare function makeRepository<TModel extends Model.Any, const TId extends PrimaryKey<TModel>, const TVersion extends VersionColumn<TModel, TId> = VersionColumn<TModel, TId>>(model: TModel, options: RepositoryOptions<TId> & {
48
+ readonly versionColumn: TVersion;
48
49
  readonly conflictColumns?: never;
49
50
  readonly conflictWhere?: never;
50
- }): Effect.Effect<VersionedRepository<TModel, TId>, BucketRegistrationError, SqlClient.SqlClient>;
51
+ }): Effect.Effect<VersionedRepositoryShape<TModel, TId, TVersion>, BucketRegistrationError, SqlClient.SqlClient>;
51
52
  export declare function makeRepository<TModel extends Model.Any, const TId extends PrimaryKey<TModel>, const TConflict extends ConflictColumns<TModel>, const TWhere extends keyof RepositoryFilter<TModel> = never>(model: TModel, options: RepositoryOptions<TId> & {
52
53
  readonly versionColumn?: never;
53
54
  readonly conflictColumns: TConflict;
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { Effect, Schema } from "effect";
1
+ import { Effect, type Option, Schema } from "effect";
2
2
  import type { Model } from "effect/schema";
3
3
  import { SqlClient } from "effect/sql";
4
4
  import type { SqlError } from "effect/sql/SqlError";
5
5
  import type { Fragment } from "effect/sql/Statement";
6
6
  import type { Aggregate } from "#aggregateQuery.ts";
7
- import type { FindMany, LatestPerGroup } from "#repository.ts";
7
+ import type { FindMany, FindOne, LatestPerGroup } from "#repository.ts";
8
8
  type Key<TModel extends Model.Any> = Extract<keyof TModel["fields"] & keyof Row<TModel>, string>;
9
9
  type Row<TModel extends Model.Any> = Schema.Struct.Type<TModel["fields"]>;
10
10
  export interface RepositorySelect<TFields extends Schema.Struct.Fields, TServices = never> {
@@ -15,6 +15,7 @@ export interface Queries<TModel extends Model.Any> {
15
15
  aggregate: Aggregate<TModel>;
16
16
  count: (query?: Pick<FindMany<TModel, Key<TModel>>, "where">) => Effect.Effect<number, SqlError | Schema.SchemaError, TModel["fields"][Key<TModel>]["EncodingServices"]>;
17
17
  findMany: <TKey extends Key<TModel> = Key<TModel>>(query?: FindMany<TModel, TKey>) => Effect.Effect<Pick<Row<TModel>, TKey>[], SqlError | Schema.SchemaError, TModel["fields"][Key<TModel>]["EncodingServices"] | TModel["fields"][TKey]["DecodingServices"]>;
18
+ findOne: <TKey extends Key<TModel> = Key<TModel>>(query?: FindOne<TModel, TKey>) => Effect.Effect<Option.Option<Pick<Row<TModel>, TKey>>, SqlError | Schema.SchemaError, TModel["fields"][Key<TModel>]["EncodingServices"] | TModel["fields"][TKey]["DecodingServices"]>;
18
19
  latestPerGroup: (query: LatestPerGroup<TModel>) => Effect.Effect<Row<TModel>[], SqlError | Schema.SchemaError, TModel["fields"][Key<TModel>]["EncodingServices"] | TModel["fields"][Key<TModel>]["DecodingServices"]>;
19
20
  select: <TKey extends Key<TModel> = Key<TModel>>(query?: FindMany<TModel, TKey>) => RepositorySelect<Pick<TModel["fields"], TKey>, TModel["fields"][Key<TModel>]["EncodingServices"]>;
20
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryQueries.d.ts","sourceRoot":"","sources":["../src/repositoryQueries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repositoryQueries.d.ts","sourceRoot":"","sources":["../src/repositoryQueries.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,17 @@
1
- import { Effect, Schema } from "effect";
1
+ import { Array as Arr, Effect, Schema } from "effect";
2
2
  import { SqlClient } from "effect/sql";
3
+ import { groupColumns } from "#adapters/groupColumns.ts";
4
+ import { storageSchema } from "#adapters/storageSchema.ts";
3
5
  import { latestPerGroup as makeLatestPerGroup } from "#latestPerGroup.ts";
4
6
  import { makeAggregate } from "#makeAggregate.ts";
5
7
  import { makeQueryClauses } from "#makeQueryClauses.ts";
6
8
  import { makeFilter } from "#repositoryFilter.ts";
9
+ import { sqlNameTransforms } from "#sqlNameTransforms.ts";
7
10
  const CountResult = Schema.Tuple([Schema.Struct({ count: Schema.NumberFromString })]);
8
11
  export function makeQueries(model, options) {
9
12
  return Effect.fnUntraced(function* () {
10
13
  const sql = yield* SqlClient.SqlClient;
14
+ const nameTransforms = yield* sqlNameTransforms;
11
15
  const { fieldAt, where } = yield* makeFilter(model);
12
16
  const readLatest = yield* makeLatestPerGroup(model, options.tableName);
13
17
  const { decodeLimit, orderClause, limitClause } = yield* makeQueryClauses(fieldAt);
@@ -28,7 +32,7 @@ export function makeQueries(model, options) {
28
32
  const predicate = yield* where(query.where, true, true);
29
33
  const order = yield* orderClause(query.orderBy);
30
34
  const limit = yield* limitClause(query.limit);
31
- return sql `select ${sql.csv(keys.map((key) => sql `${sql(key)}`))} from ${sql(options.tableName)} where ${predicate} ${order} ${limit}`;
35
+ return sql `select ${sql.csv(groupColumns(model.fields, keys).map(({ column }) => sql `${sql(column)}`))} from ${sql(options.tableName)} where ${predicate} ${order} ${limit}`;
32
36
  });
33
37
  return { fields, statement };
34
38
  }
@@ -37,7 +41,7 @@ export function makeQueries(model, options) {
37
41
  return Effect.gen(function* () {
38
42
  const selected = select(query);
39
43
  const rows = yield* sql `${yield* selected.statement}`;
40
- return yield* Schema.decodeUnknownEffect(Schema.Array(Schema.Struct(selected.fields)))(rows);
44
+ return yield* Schema.decodeUnknownEffect(Schema.Array(storageSchema(Schema.Struct(selected.fields), selected.fields, nameTransforms)))(rows);
41
45
  }).pipe(Effect.withSpan(`${options.spanPrefix}.findMany`));
42
46
  }
43
47
  function latestPerGroup(query) {
@@ -47,7 +51,8 @@ export function makeQueries(model, options) {
47
51
  return yield* readLatest(query, order, rowLimit);
48
52
  }).pipe(Effect.withSpan(`${options.spanPrefix}.latestPerGroup`));
49
53
  }
50
- return { aggregate, count, findMany, latestPerGroup, select };
54
+ const findOne = (query = {}) => findMany({ ...query, limit: 1 }).pipe(Effect.map(Arr.head), Effect.withSpan(`${options.spanPrefix}.findOne`));
55
+ return { aggregate, count, findMany, findOne, latestPerGroup, select };
51
56
  })();
52
57
  }
53
58
  //# sourceMappingURL=repositoryQueries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryQueries.js","sourceRoot":"","sources":["../src/repositoryQueries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repositoryQueries.js","sourceRoot":"","sources":["../src/repositoryQueries.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,9 @@ type WithoutOverride<A> = A extends infer TValue & Brand.Brand<"Override"> ? TVa
6
6
  export type UpdateInput<TModel extends Model.Any> = {
7
7
  readonly [TKey in keyof TModel["update"]["Type"]]: WithoutOverride<TModel["update"]["Type"][TKey]>;
8
8
  };
9
- type Column<TModel extends Model.Any, TId extends PropertyKey> = Exclude<Extract<keyof UpdateInput<TModel>, string>, TId>;
10
- type Selected<TModel extends Model.Any, TId extends PropertyKey, TColumn extends PropertyKey> = Required<Pick<UpdateInput<TModel>, Extract<TId | TColumn, keyof UpdateInput<TModel>>>>;
11
- interface Columns<TColumn> {
9
+ export type Column<TModel extends Model.Any, TId extends PropertyKey> = Exclude<Extract<keyof UpdateInput<TModel>, string>, TId>;
10
+ export type Selected<TModel extends Model.Any, TId extends PropertyKey, TColumn extends PropertyKey> = Required<Pick<UpdateInput<TModel>, Extract<TId | TColumn, keyof UpdateInput<TModel>>>>;
11
+ export interface Columns<TColumn> {
12
12
  readonly columns: readonly [TColumn, ...TColumn[]];
13
13
  }
14
14
  type WriteResult<TModel extends Model.Any, A, E = never> = Effect.Effect<A, SqlError | Schema.SchemaError | E, TModel["update"]["EncodingServices"] | TModel["DecodingServices"]>;
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryUpdate.d.ts","sourceRoot":"","sources":["../src/repositoryUpdate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repositoryUpdate.d.ts","sourceRoot":"","sources":["../src/repositoryUpdate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryWrites.d.ts","sourceRoot":"","sources":["../src/repositoryWrites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAKlD,eAAO,MAAM,gBAAgB;wBAEG,SAAS,MAAM,EAAE;wBAAsB,MAAM;yBAAuB,MAAM;;;;;;;iBA8D3F,OAAO;oBACJ,OAAO;wBAEH,OAAO;oBACX,OAAO,aAAa;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE;wBAMrF,OAAO,aAAa;QAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE;8BAK/E,CAAC"}
1
+ {"version":3,"file":"repositoryWrites.d.ts","sourceRoot":"","sources":["../src/repositoryWrites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAOlD,eAAO,MAAM,gBAAgB;wBAEG,SAAS,MAAM,EAAE;wBAAsB,MAAM;yBAAuB,MAAM;;;;;;;iBA2E3F,OAAO;oBACJ,OAAO;wBAEH,OAAO;oBACX,OAAO,aAAa;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE;wBAMrF,OAAO,aAAa;QAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE;8BAK/E,CAAC"}
@@ -1,9 +1,12 @@
1
1
  import { Effect, Schema } from "effect";
2
2
  import { SqlClient, SqlSchema } from "effect/sql";
3
+ import { storageSchema } from "#adapters/storageSchema.ts";
3
4
  import { makeFilter } from "#repositoryFilter.ts";
4
5
  import { selectedUpdate } from "#repositoryUpdate.ts";
6
+ import { sqlNameTransforms } from "#sqlNameTransforms.ts";
5
7
  export const repositoryWrites = Effect.fnUntraced(function* (model, options, changes) {
6
8
  const sql = yield* SqlClient.SqlClient;
9
+ const nameTransforms = yield* sqlNameTransforms;
7
10
  const { idColumns, tableName, spanPrefix } = options;
8
11
  const { where } = yield* makeFilter(model);
9
12
  const record = Schema.decodeUnknownEffect(Schema.Record(Schema.String, Schema.Unknown));
@@ -19,17 +22,29 @@ export const repositoryWrites = Effect.fnUntraced(function* (model, options, cha
19
22
  function update(input) {
20
23
  return Effect.flatMap(record(input), (row) => sql `update ${sql(tableName)} set ${sql.update(row, idColumns)} where ${predicate(row)} returning ${changes.returning()}`.pipe(Effect.tap(changes.record)));
21
24
  }
22
- const insertRow = SqlSchema.findOne({ execute: insert, Request: model.insert, Result: model });
23
- const insertVoid = SqlSchema.void({ execute: insert, Request: model.insert });
24
- const updateRow = SqlSchema.findOne({ execute: update, Request: model.update, Result: model });
25
- const updateVoid = SqlSchema.void({ execute: update, Request: model.update });
25
+ const insertRow = SqlSchema.findOne({
26
+ execute: insert,
27
+ Request: storageSchema(model.insert, model.fields, nameTransforms),
28
+ Result: storageSchema(model, model.fields, nameTransforms),
29
+ });
30
+ const insertVoid = SqlSchema.void({ execute: insert, Request: storageSchema(model.insert, model.fields, nameTransforms) });
31
+ const updateRow = SqlSchema.findOne({
32
+ execute: update,
33
+ Request: storageSchema(model.update, model.fields, nameTransforms),
34
+ Result: storageSchema(model, model.fields, nameTransforms),
35
+ });
36
+ const updateVoid = SqlSchema.void({ execute: update, Request: storageSchema(model.update, model.fields, nameTransforms) });
26
37
  function selected(input, columns, returning) {
27
38
  return Effect.gen(function* () {
28
39
  const row = yield* record(input);
29
40
  const Request = yield* selectedUpdate(model, columns, idColumns, row);
30
41
  return yield* returning
31
- ? SqlSchema.findOne({ execute: update, Request, Result: model })(row)
32
- : SqlSchema.void({ execute: update, Request })(row);
42
+ ? SqlSchema.findOne({
43
+ execute: update,
44
+ Request: storageSchema(Request, model.fields, nameTransforms),
45
+ Result: storageSchema(model, model.fields, nameTransforms),
46
+ })(row)
47
+ : SqlSchema.void({ execute: update, Request: storageSchema(Request, model.fields, nameTransforms) })(row);
33
48
  });
34
49
  }
35
50
  const idColumn = idColumns[0] ?? "";
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryWrites.js","sourceRoot":"","sources":["../src/repositoryWrites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repositoryWrites.js","sourceRoot":"","sources":["../src/repositoryWrites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC1D,KAAgB,EAChB,OAA2G,EAC3G,OAA0B;IAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;IACvC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;IAChD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnG,SAAS,SAAS,CAAC,KAAwC;QAC1D,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAA,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IACD,SAAS,MAAM,CAAC,KAAc;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAC5C,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;YAC7B,CAAC,CAAC,GAAG,CAAA,eAAe,GAAG,CAAC,SAAS,CAAC,6BAA6B,OAAO,CAAC,SAAS,EAAE,EAAE;YACpF,CAAC,CAAC,GAAG,CAAA,eAAe,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,SAAS,EAAE,EAAE,CACxF,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAClC,CAAC;IACH,CAAC;IACD,SAAS,MAAM,CAAC,KAAc;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAC5C,GAAG,CAAA,UAAU,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,SAAS,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAC5H,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAC1B,CACD,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC;QACnC,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;QAClE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;KAC1D,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3H,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC;QACnC,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;QAClE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;KAC1D,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3H,SAAS,QAAQ,CAAC,KAAc,EAAE,OAA0B,EAAE,SAAkB;QAC/E,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YACtE,OAAO,KAAK,CAAC,CAAC,SAAS;gBACtB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,MAAM;oBACf,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;oBAC7D,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;iBAC1D,CAAC,CAAC,GAAG,CAAC;gBACR,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CACf,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CACtD,GAAG,CAAA,eAAe,GAAG,CAAC,SAAS,CAAC,UAAU,SAAS,CAAC,OAAO,CAAC,cAAc,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAChI;QACF,OAAO,EAAE,GAAG;KACZ,CAAC,CAAC;IACH,SAAS,MAAM,CAAC,KAAc;QAC7B,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;YAC5C,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAC/C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAC9C,GAAG,CAAA,eAAe,GAAG,CAAC,SAAS,CAAC,UAAU,MAAM,cAAc,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CACnI,CACD,CAAC;IACL,CAAC;IACD,OAAO;QACN,MAAM,EAAE,CAAC,EAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC;QAChG,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CAC1B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC;QACtI,UAAU,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,aAAa,CAAC,CAAC;QAClH,MAAM,EAAE,CAAC,KAAc,EAAE,QAAgF,EAAE,EAAE;YAC5G,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5G,OAAO,OAAO;iBACZ,KAAK,CAAC,QAAQ,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC/G,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,UAAU,EAAE,CAAC,KAAc,EAAE,QAAkD,EAAE,EAAE,CAClF,OAAO;aACL,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aAC5F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,aAAa,CAAC,CAAC;KACpD,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Effect } from "effect";
2
+ import type { initializeWorkerRelease } from "./initializeWorkerRelease.ts";
3
+ export declare function setWorkerReleaseActive(state: Effect.Success<typeof initializeWorkerRelease>): (next: boolean) => Effect.Effect<void, unknown, never>;
4
+ //# sourceMappingURL=setWorkerReleaseActive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setWorkerReleaseActive.d.ts","sourceRoot":"","sources":["../src/setWorkerReleaseActive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,uBAAuB,CAAC,UAC7E,OAAO,yCAYrB"}
@@ -0,0 +1,13 @@
1
+ import { Effect } from "effect";
2
+ export function setWorkerReleaseActive(state) {
3
+ return (next) => state
4
+ .locked(Effect.gen(function* () {
5
+ if (next === state.active) {
6
+ return;
7
+ }
8
+ state.active = next;
9
+ yield* Effect.forEach(state.controls, (control) => control(state.active), { concurrency: "unbounded", discard: true });
10
+ }))
11
+ .pipe(Effect.uninterruptible);
12
+ }
13
+ //# sourceMappingURL=setWorkerReleaseActive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setWorkerReleaseActive.js","sourceRoot":"","sources":["../src/setWorkerReleaseActive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,UAAU,sBAAsB,CAAC,KAAqD;IAC3F,OAAO,CAAC,IAAa,EAAE,EAAE,CACxB,KAAK;SACH,MAAM,CACN,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnB,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO;QACR,CAAC;QACD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACxH,CAAC,CAAC,CACF;SACA,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Effect } from "effect";
2
+ import { SqlClient } from "effect/sql";
3
+ import type { SqlNameTransforms } from "#clientOptions.ts";
4
+ export declare const sqlNameTransforms: Effect.Effect<SqlNameTransforms | undefined, never, SqlClient.SqlClient>;
5
+ //# sourceMappingURL=sqlNameTransforms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlNameTransforms.d.ts","sourceRoot":"","sources":["../src/sqlNameTransforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,eAAO,MAAM,iBAAiB,0EAI5B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Effect } from "effect";
2
+ import { SqlClient } from "effect/sql";
3
+ export const sqlNameTransforms = Effect.gen(function* () {
4
+ const client = yield* SqlClient.SqlClient;
5
+ const namedClient = client;
6
+ return namedClient.config;
7
+ });
8
+ //# sourceMappingURL=sqlNameTransforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlNameTransforms.js","sourceRoot":"","sources":["../src/sqlNameTransforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACpD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;IAC1C,MAAM,WAAW,GAAkE,MAAM,CAAC;IAC1F,OAAO,WAAW,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import { Effect, Schema } from "effect";
2
2
  import type { Model } from "effect/schema";
3
3
  import { SqlClient } from "effect/sql";
4
+ import type { SqlNameTransforms } from "#clientOptions.ts";
4
5
  export interface UpsertRow<TRow> {
5
6
  readonly inserted: boolean;
6
7
  readonly row: TRow;
7
8
  }
8
9
  export declare const upsertReturning: () => Effect.Effect<import("effect/sql/Statement").Statement<import("effect/sql/SqlConnection").Row>, never, SqlClient.SqlClient>;
9
- export declare function makeUpsertDecoder(model: Model.Any): (row: Readonly<Record<string, unknown>> | undefined) => Effect.Effect<{
10
+ export declare function makeUpsertDecoder(model: Model.Any, names?: SqlNameTransforms): (row: Readonly<Record<string, unknown>> | undefined) => Effect.Effect<{
10
11
  inserted: boolean;
11
12
  row: unknown;
12
13
  }, Schema.SchemaError, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"upsertResult.d.ts","sourceRoot":"","sources":["../src/upsertResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,SAAS,CAAC,IAAI;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,mIAG1B,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,SAEpC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS;;;gCAE1D"}
1
+ {"version":3,"file":"upsertResult.d.ts","sourceRoot":"","sources":["../src/upsertResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,SAAS,CAAC,IAAI;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,mIAG1B,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,iBAAiB,SAE/D,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS;;;gCAE1D"}
@@ -1,11 +1,12 @@
1
1
  import { Effect, Schema } from "effect";
2
2
  import { SqlClient } from "effect/sql";
3
+ import { storageSchema } from "#adapters/storageSchema.ts";
3
4
  export const upsertReturning = Effect.fnUntraced(function* () {
4
5
  const sql = yield* SqlClient.SqlClient;
5
6
  return sql `*, (xmax = 0) as ${sql("effectSqlInserted")}`;
6
7
  });
7
- export function makeUpsertDecoder(model) {
8
- const decode = Schema.decodeUnknownEffect(model);
8
+ export function makeUpsertDecoder(model, names) {
9
+ const decode = Schema.decodeUnknownEffect(storageSchema(model, model.fields, names));
9
10
  return (row) => Effect.map(decode(row), (decoded) => ({ inserted: row?.effectSqlInserted === true, row: decoded }));
10
11
  }
11
12
  //# sourceMappingURL=upsertResult.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upsertResult.js","sourceRoot":"","sources":["../src/upsertResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOvC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;IACzD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;IACvC,OAAO,GAAG,CAAA,oBAAoB,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,CAAC,GAAkD,EAAE,EAAE,CAC7D,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,iBAAiB,KAAK,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACtG,CAAC"}
1
+ {"version":3,"file":"upsertResult.js","sourceRoot":"","sources":["../src/upsertResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;IACzD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;IACvC,OAAO,GAAG,CAAA,oBAAoB,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,KAAgB,EAAE,KAAyB;IAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,GAAkD,EAAE,EAAE,CAC7D,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,iBAAiB,KAAK,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACtG,CAAC"}
@@ -5,7 +5,7 @@ import type { SqlError } from "effect/sql/SqlError";
5
5
  import type { PrimaryKey, Repository } from "#compositeRepository.ts";
6
6
  import type { OptimisticConcurrencyError } from "#repository.ts";
7
7
  import type { RepositoryChanges } from "#repositoryChanges.ts";
8
- import type { UpdateInput } from "#repositoryUpdate.ts";
8
+ import type { Column, Columns, Selected, UpdateInput } from "#repositoryUpdate.ts";
9
9
  import { type VersionedOptions } from "#versionedStatements.ts";
10
10
  export type IdColumn<TModel extends Model.Any> = keyof TModel["Type"] & keyof TModel["update"]["Type"] & keyof TModel["fields"];
11
11
  export type VersionColumn<TModel extends Model.Any, TId extends PrimaryKey<TModel>> = {
@@ -16,12 +16,17 @@ export type VersionColumn<TModel extends Model.Any, TId extends PrimaryKey<TMode
16
16
  export type NativeRepository<TModel extends Model.Any, TId extends IdColumn<TModel>> = Effect.Success<ReturnType<typeof SqlModel.makeRepository<TModel, TId>>>;
17
17
  type WriteError = SqlError | Schema.SchemaError | OptimisticConcurrencyError;
18
18
  type KeyColumn<TModel extends Model.Any, TId extends PrimaryKey<TModel>> = TId extends readonly IdColumn<TModel>[] ? TId[number] : Extract<TId, IdColumn<TModel>>;
19
- export interface VersionedWrites<TModel extends Model.Any, TId extends PrimaryKey<TModel>> {
19
+ type RequiredColumn<TModel extends Model.Any, TId extends PrimaryKey<TModel>, TVersion extends PropertyKey> = KeyColumn<TModel, TId> | TVersion;
20
+ interface VersionedUpdate<TModel extends Model.Any, TId extends PrimaryKey<TModel>, TVersion extends VersionColumn<TModel, TId>, A, R = TModel["update"]["EncodingServices"] | TModel["DecodingServices"]> {
21
+ <TColumn extends Column<TModel, RequiredColumn<TModel, TId, TVersion>>>(input: Selected<TModel, RequiredColumn<TModel, TId, TVersion>, TColumn>, options: Columns<TColumn>): Effect.Effect<A, WriteError, R>;
22
+ (input: UpdateInput<TModel>): Effect.Effect<A, WriteError, R>;
23
+ }
24
+ export interface VersionedWrites<TModel extends Model.Any, TId extends PrimaryKey<TModel>, TVersion extends VersionColumn<TModel, TId> = VersionColumn<TModel, TId>> {
20
25
  readonly delete: (id: TId extends readonly IdColumn<TModel>[] ? Pick<TModel["Type"], TId[number]> : TModel["fields"][Extract<TId, IdColumn<TModel>>]["Type"], expectedVersion: number) => Effect.Effect<void, WriteError, TModel["fields"][KeyColumn<TModel, TId>]["EncodingServices"]>;
21
26
  readonly insert: Repository<TModel, TId>["insert"];
22
27
  readonly insertVoid: Repository<TModel, TId>["insertVoid"];
23
- readonly update: (input: UpdateInput<TModel>) => Effect.Effect<TModel["Type"], WriteError, TModel["update"]["EncodingServices"] | TModel["DecodingServices"]>;
24
- readonly updateVoid: (input: UpdateInput<TModel>) => Effect.Effect<void, WriteError, TModel["update"]["EncodingServices"]>;
28
+ readonly update: VersionedUpdate<TModel, TId, TVersion, TModel["Type"]>;
29
+ readonly updateVoid: VersionedUpdate<TModel, TId, TVersion, void, TModel["update"]["EncodingServices"]>;
25
30
  }
26
31
  export declare const makeVersionedWrites: (model: Model.Any, options: VersionedOptions & {
27
32
  readonly changes: RepositoryChanges;
@@ -30,8 +35,12 @@ export declare const makeVersionedWrites: (model: Model.Any, options: VersionedO
30
35
  delete: (id: unknown, expected: number) => Effect.Effect<undefined, OptimisticConcurrencyError | Schema.SchemaError | SqlError, unknown>;
31
36
  insert: (input: unknown) => Effect.Effect<unknown, Schema.SchemaError | SqlError, unknown>;
32
37
  insertVoid: (input: unknown) => Effect.Effect<void, Schema.SchemaError | SqlError, unknown>;
33
- update: (input: Readonly<Record<string, unknown>>) => Effect.Effect<unknown, OptimisticConcurrencyError | Schema.SchemaError | SqlError, unknown>;
34
- updateVoid: (input: Readonly<Record<string, unknown>>) => Effect.Effect<undefined, OptimisticConcurrencyError | Schema.SchemaError | SqlError, unknown>;
38
+ update: (input: Readonly<Record<string, unknown>>, settings?: {
39
+ readonly columns: readonly string[];
40
+ }) => Effect.Effect<unknown, OptimisticConcurrencyError | Schema.SchemaError | SqlError, unknown>;
41
+ updateVoid: (input: Readonly<Record<string, unknown>>, settings?: {
42
+ readonly columns: readonly string[];
43
+ }) => Effect.Effect<undefined, OptimisticConcurrencyError | Schema.SchemaError | SqlError, unknown>;
35
44
  insertOrIgnore?: (input: unknown) => Effect.Effect<Option.None<unknown> | Option.Some<unknown>, Schema.SchemaError | SqlError, unknown>;
36
45
  }, never, SqlClient.SqlClient>;
37
46
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"versionedRepository.d.ts","sourceRoot":"","sources":["../src/versionedRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versionedRepository.d.ts","sourceRoot":"","sources":["../src/versionedRepository.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  import { Effect, Option, Schema } from "effect";
2
2
  import { SqlClient } from "effect/sql";
3
+ import { storageSchema } from "#adapters/storageSchema.ts";
4
+ import { sqlNameTransforms } from "#sqlNameTransforms.ts";
3
5
  import { versionedStatements } from "#versionedStatements.ts";
4
6
  export const makeVersionedWrites = Effect.fnUntraced(function* (model, options) {
5
7
  const sql = yield* SqlClient.SqlClient;
8
+ const nameTransforms = yield* sqlNameTransforms;
6
9
  const { spanPrefix, changes } = options;
7
10
  const statements = yield* versionedStatements(model, options);
8
- const decodeRow = Schema.decodeUnknownEffect(model);
11
+ const decodeRow = Schema.decodeUnknownEffect(storageSchema(model, model.fields, nameTransforms));
9
12
  function insert(input) {
10
13
  return Effect.gen(function* () {
11
14
  const statement = yield* statements.insert(input);
@@ -29,9 +32,9 @@ export const makeVersionedWrites = Effect.fnUntraced(function* (model, options)
29
32
  return rows.length === 0 ? Option.none() : Option.some(yield* decodeRow(rows[0]));
30
33
  }).pipe(changes.write, Effect.withSpan(`${spanPrefix}.insertOrIgnore`));
31
34
  }
32
- function update(input) {
35
+ function update(input, settings) {
33
36
  return Effect.gen(function* () {
34
- const { statement, classify } = yield* statements.update(input);
37
+ const { statement, classify } = yield* statements.update(input, settings?.columns);
35
38
  const rows = yield* sql `${statement} returning ${changes.returning()}`;
36
39
  if (rows.length === 0) {
37
40
  return yield* classify();
@@ -40,9 +43,9 @@ export const makeVersionedWrites = Effect.fnUntraced(function* (model, options)
40
43
  return yield* decodeRow(rows[0]);
41
44
  }).pipe(changes.write, Effect.withSpan(`${spanPrefix}.update`));
42
45
  }
43
- function updateVoid(input) {
46
+ function updateVoid(input, settings) {
44
47
  return Effect.gen(function* () {
45
- const { statement, classify } = yield* statements.update(input);
48
+ const { statement, classify } = yield* statements.update(input, settings?.columns);
46
49
  const rows = yield* sql `${statement} returning ${changes.returning()}`;
47
50
  if (rows.length === 0) {
48
51
  return yield* classify();
@@ -1 +1 @@
1
- {"version":3,"file":"versionedRepository.js","sourceRoot":"","sources":["../src/versionedRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versionedRepository.js","sourceRoot":"","sources":["../src/versionedRepository.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export declare const versionedStatements: (model: Model.Any, options: VersionedO
16
16
  classify: () => Effect.Effect<never, OptimisticConcurrencyError | import("effect/sql/SqlError").SqlError, never>;
17
17
  statement: import("effect/sql/Statement").Statement<import("effect/sql/SqlConnection").Row>;
18
18
  }, Schema.SchemaError, unknown>;
19
- update: (input: Readonly<Record<string, unknown>>) => Effect.Effect<{
19
+ update: (input: Readonly<Record<string, unknown>>, columns?: readonly string[]) => Effect.Effect<{
20
20
  classify: () => Effect.Effect<never, OptimisticConcurrencyError | import("effect/sql/SqlError").SqlError, never>;
21
21
  statement: import("effect/sql/Statement").Statement<import("effect/sql/SqlConnection").Row>;
22
22
  }, Schema.SchemaError, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"versionedStatements.d.ts","sourceRoot":"","sources":["../src/versionedStatements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAGjE,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,KAAK,0BAA0B,CAAC;IACrH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,mBAAmB;oBAsCR,OAAO;iBAsBV,OAAO,YAAY,MAAM;;;;oBAftB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;8BA2BvD,CAAC"}
1
+ {"version":3,"file":"versionedStatements.d.ts","sourceRoot":"","sources":["../src/versionedStatements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAKjE,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,KAAK,0BAA0B,CAAC;IACrH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,mBAAmB;oBAuCR,OAAO;iBA4BV,OAAO,YAAY,MAAM;;;;oBArBtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,YAAY,SAAS,MAAM,EAAE;;;;8BAiCpF,CAAC"}