@effect-app/infra 0.196.6 → 0.197.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 (36) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/_cjs/services/Store/Cosmos/query.cjs +3 -3
  3. package/_cjs/services/Store/Cosmos/query.cjs.map +1 -1
  4. package/_cjs/services/Store/Cosmos.cjs +1 -1
  5. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  6. package/_cjs/services/Store/Memory.cjs +56 -39
  7. package/_cjs/services/Store/Memory.cjs.map +1 -1
  8. package/_cjs/services/Store/service.cjs.map +1 -1
  9. package/_cjs/services/query.cjs +5 -2
  10. package/_cjs/services/query.cjs.map +1 -1
  11. package/dist/services/QueueMaker/service.d.ts +2 -2
  12. package/dist/services/Store/Cosmos/query.d.ts +4 -1
  13. package/dist/services/Store/Cosmos/query.d.ts.map +1 -1
  14. package/dist/services/Store/Cosmos/query.js +4 -4
  15. package/dist/services/Store/Cosmos.d.ts.map +1 -1
  16. package/dist/services/Store/Cosmos.js +2 -2
  17. package/dist/services/Store/Memory.d.ts.map +1 -1
  18. package/dist/services/Store/Memory.js +62 -45
  19. package/dist/services/Store/service.d.ts +6 -1
  20. package/dist/services/Store/service.d.ts.map +1 -1
  21. package/dist/services/Store/service.js +1 -1
  22. package/dist/services/query.d.ts +1 -1
  23. package/dist/services/query.d.ts.map +1 -1
  24. package/dist/services/query.js +6 -3
  25. package/dist/services/simpledb/cosmosdb.d.ts +2 -2
  26. package/dist/services/simpledb/diskdb.d.ts +1 -1
  27. package/dist/services/simpledb/memdb.d.ts +1 -1
  28. package/dist/services/simpledb/redisdb.d.ts +5 -5
  29. package/dist/services/simpledb/shared.d.ts +5 -5
  30. package/dist/services/simpledb/simpledb.d.ts +2 -2
  31. package/package.json +4 -4
  32. package/src/services/Store/Cosmos/query.ts +3 -3
  33. package/src/services/Store/Cosmos.ts +1 -0
  34. package/src/services/Store/Memory.ts +21 -1
  35. package/src/services/Store/service.ts +7 -1
  36. package/src/services/query.ts +7 -4
@@ -37,7 +37,7 @@ const wh = (...operation) => (current) => new Where({ current, operation });
37
37
  export const where = wh;
38
38
  export const and = (...operation) => (current) => new And({ current, operation: typeof operation[0] === "function" ? operation[0] : operation });
39
39
  export const or = (...operation) => (current) => new Or({ current, operation: typeof operation[0] === "function" ? operation[0] : operation });
40
- export const order = (field, desc) => (current) => new Order({ current, field, desc });
40
+ export const order = (field, desc) => (current) => new Order({ current, field, direction: desc ? "DESC" : "ASC" });
41
41
  export const page = ({ limit, skip }) => (current) => new Page({
42
42
  current,
43
43
  limit,
@@ -51,8 +51,10 @@ const interpret = (_) => {
51
51
  let schema = undefined;
52
52
  let limit = undefined;
53
53
  let skip = undefined;
54
+ const order = [];
54
55
  const upd = (v) => {
55
56
  values.push(...v.filter);
57
+ order.push(...v.order);
56
58
  limit = v.limit;
57
59
  skip = v.skip;
58
60
  schema = v.schema;
@@ -117,7 +119,8 @@ const interpret = (_) => {
117
119
  filter: values,
118
120
  limit,
119
121
  skip,
120
- schema
122
+ schema,
123
+ order
121
124
  };
122
125
  };
123
126
  export const query = ((repo, q) => {
@@ -150,4 +153,4 @@ export const query = ((repo, q) => {
150
153
  ? repo.utils.parseMany2(_, schema)
151
154
  : repo.utils.parseMany(_))));
152
155
  });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBc0NoRSxNQUFNLE9BQU8sT0FBMEMsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBdUI7SUFHbkcsR0FBRyxDQUFLO0lBQ1IsSUFBSSxDQUFLO0lBQ2xCO1FBQ0UsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxLQUF3QyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUduRjtJQUNBLElBQUksQ0FBTTtJQUNWLEdBQUcsQ0FBSztJQUNDLElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxHQUFzQyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUcvRTtJQUNBLElBQUksQ0FBTTtJQUNWLEdBQUcsQ0FBSztJQUNDLElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxFQUFxQyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUc3RTtJQUNBLElBQUksQ0FBTTtJQUNWLEdBQUcsQ0FBSztJQUNDLElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxJQUF1QyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUlqRjtJQUNBLElBQUksQ0FBTTtJQUNELElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxLQUNYLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBSTlCO0lBR0YsSUFBSSxDQUFNO0lBQ0QsSUFBSSxDQUFLO0NBQ25CO0FBRUQsTUFBTSxPQUFPLE9BQWdELFNBQVEs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
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBc0NoRSxNQUFNLE9BQU8sT0FBMEMsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBdUI7SUFHbkcsR0FBRyxDQUFLO0lBQ1IsSUFBSSxDQUFLO0lBQ2xCO1FBQ0UsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxLQUF3QyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUduRjtJQUNBLElBQUksQ0FBTTtJQUNWLEdBQUcsQ0FBSztJQUNDLElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxHQUFzQyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUcvRTtJQUNBLElBQUksQ0FBTTtJQUNWLEdBQUcsQ0FBSztJQUNDLElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxFQUFxQyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUc3RTtJQUNBLElBQUksQ0FBTTtJQUNWLEdBQUcsQ0FBSztJQUNDLElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxJQUF1QyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUlqRjtJQUNBLElBQUksQ0FBTTtJQUNELElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxLQUNYLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBSTlCO0lBR0YsSUFBSSxDQUFNO0lBQ0QsSUFBSSxDQUFLO0NBQ25CO0FBRUQsTUFBTSxPQUFPLE9BQWdELFNBQVEs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
@@ -7,8 +7,8 @@ import type { DBRecord } from "./shared.js";
7
7
  import { OptimisticLockException } from "./shared.js";
8
8
  import * as simpledb from "./simpledb.js";
9
9
  export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<EA, never, REncode>, decode: (d: EA) => Effect<A, EDecode, RDecode>, indexes: IndexingPolicy) => import("effect/Effect").Effect<{
10
- find: (id: string) => import("effect/Effect").Effect<import("effect/Option").Option<A>, import("effect/Cause").UnknownException | simpledb.InvalidStateError, simpledb.RecordCache | RDecode | Cosmos.CosmosClient>;
10
+ find: (id: string) => import("effect/Effect").Effect<import("effect/Option").Option<A>, import("effect/Cause").UnknownException | simpledb.InvalidStateError, Cosmos.CosmosClient | simpledb.RecordCache | RDecode>;
11
11
  findBy: (parameters: Record<string, string>) => import("effect/Effect").Effect<import("effect/Option").Option<any>, import("effect/Cause").UnknownException, Cosmos.CosmosClient>;
12
- save: (record: A) => import("effect/Effect").Effect<A, OptimisticLockException, simpledb.RecordCache | REncode | Cosmos.CosmosClient>;
12
+ save: (record: A) => import("effect/Effect").Effect<A, OptimisticLockException, Cosmos.CosmosClient | simpledb.RecordCache | REncode>;
13
13
  }, import("effect/Cause").UnknownException, Cosmos.CosmosClient>;
14
14
  //# sourceMappingURL=cosmosdb.d.ts.map
@@ -6,7 +6,7 @@ import * as simpledb from "./simpledb.js";
6
6
  export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<EA, never, REncode>, decode: (d: EA) => Effect<A, EDecode, RDecode>, schemaVersion: string, makeIndexKey: (r: A) => Index, dir?: string) => {
7
7
  find: (id: string) => import("effect/Effect").Effect<import("effect/Option").Option<A>, simpledb.InvalidStateError, simpledb.RecordCache | RDecode>;
8
8
  findByIndex: (index: Index) => import("effect/Effect").Effect<import("effect/Option").Option<TKey>, never, never>;
9
- save: (record: A) => import("effect/Effect").Effect<A, CouldNotAquireDbLockException | simpledb.InvalidStateError | import("./shared.js").OptimisticLockException, simpledb.RecordCache | REncode>;
9
+ save: (record: A) => import("effect/Effect").Effect<A, CouldNotAquireDbLockException | import("./shared.js").OptimisticLockException | simpledb.InvalidStateError, simpledb.RecordCache | REncode>;
10
10
  };
11
11
  export declare function initialise(dir: string): void;
12
12
  //# sourceMappingURL=diskdb.d.ts.map
@@ -6,6 +6,6 @@ import * as simpledb from "./simpledb.js";
6
6
  export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<EA, never, REncode>, decode: (d: EA) => Effect<A, EDecode, RDecode>) => {
7
7
  find: (id: string) => import("effect/Effect").Effect<import("effect/Option").Option<A>, import("@effect/schema/ParseResult").ParseError | simpledb.InvalidStateError, simpledb.RecordCache | RDecode>;
8
8
  findBy: <V extends Partial<A>>(keys: V, eq: Equivalence<V>) => import("effect/Effect").Effect<import("effect/Option").Option<A & {}>, import("@effect/schema/ParseResult").ParseError, RDecode>;
9
- save: (record: A) => import("effect/Effect").Effect<A, import("@effect/schema/ParseResult").ParseError | simpledb.InvalidStateError | import("./shared.js").OptimisticLockException, simpledb.RecordCache | REncode>;
9
+ save: (record: A) => import("effect/Effect").Effect<A, import("@effect/schema/ParseResult").ParseError | import("./shared.js").OptimisticLockException | simpledb.InvalidStateError, simpledb.RecordCache | REncode>;
10
10
  };
11
11
  //# sourceMappingURL=memdb.d.ts.map
@@ -6,22 +6,22 @@ import type { DBRecord, Index } from "./shared.js";
6
6
  import { CouldNotAquireDbLockException } from "./shared.js";
7
7
  import * as simpledb from "./simpledb.js";
8
8
  export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<EA, never, REncode>, decode: (d: EA) => Effect<A, EDecode, RDecode>, schemaVersion: string, makeIndexKey: (r: A) => Index) => {
9
- find: (id: string) => import("effect/Effect").Effect<import("effect/Option").Option<A>, simpledb.InvalidStateError, RDecode | RedisClient | simpledb.RecordCache>;
9
+ find: (id: string) => import("effect/Effect").Effect<import("effect/Option").Option<A>, simpledb.InvalidStateError, RedisClient | simpledb.RecordCache | RDecode>;
10
10
  findByIndex: (index: Index) => import("effect/Effect").Effect<import("effect/Option").Option<TKey>, import("@effect-app/infra-adapters/redis-client").ConnectionException, RedisClient>;
11
- save: (record: A) => import("effect/Effect").Effect<A, CouldNotAquireDbLockException | simpledb.InvalidStateError | import("./shared.js").OptimisticLockException, REncode | RedisClient | simpledb.RecordCache>;
11
+ save: (record: A) => import("effect/Effect").Effect<A, CouldNotAquireDbLockException | import("./shared.js").OptimisticLockException | simpledb.InvalidStateError, RedisClient | simpledb.RecordCache | REncode>;
12
12
  };
13
13
  declare const RedisSerializedDBRecord_base: S.EnhancedClass<{
14
+ readonly data: string;
14
15
  readonly version: string;
15
16
  readonly timestamp: Date;
16
- readonly data: string;
17
17
  }, {
18
+ readonly data: string;
18
19
  readonly version: string;
19
20
  readonly timestamp: string;
20
- readonly data: string;
21
21
  }, never, {
22
+ readonly data: string;
22
23
  readonly version: string;
23
24
  readonly timestamp: Date;
24
- readonly data: string;
25
25
  }, RedisSerializedDBRecord, {
26
26
  version: S.Schema<string, string, never>;
27
27
  timestamp: S.Schema<Date, string, never> & {
@@ -38,17 +38,17 @@ export interface DBRecord<TKey extends string> {
38
38
  id: TKey;
39
39
  }
40
40
  declare const SerializedDBRecord_base: S.EnhancedClass<{
41
+ readonly data: string;
41
42
  readonly version: string;
42
43
  readonly timestamp: Date;
43
- readonly data: string;
44
44
  }, {
45
+ readonly data: string;
45
46
  readonly version: string;
46
47
  readonly timestamp: string;
47
- readonly data: string;
48
48
  }, never, {
49
+ readonly data: string;
49
50
  readonly version: string;
50
51
  readonly timestamp: Date;
51
- readonly data: string;
52
52
  }, SerializedDBRecord, {
53
53
  version: S.Schema<string, string, never>;
54
54
  timestamp: S.Schema<Date, string, never> & {
@@ -59,13 +59,13 @@ declare const SerializedDBRecord_base: S.EnhancedClass<{
59
59
  export declare class SerializedDBRecord extends SerializedDBRecord_base {
60
60
  }
61
61
  export declare function makeSerialisedDBRecord(s: Schema<any>): S.Schema<{
62
+ readonly data: any;
62
63
  readonly version: number;
63
64
  readonly timestamp: Date;
64
- readonly data: any;
65
65
  }, {
66
+ readonly data: any;
66
67
  readonly version: number;
67
68
  readonly timestamp: string;
68
- readonly data: any;
69
69
  }, never>;
70
70
  export interface CachedRecord<T> {
71
71
  version: string;
@@ -17,7 +17,7 @@ export interface RecordCache extends ReturnType<typeof makeLiveRecordCache> {
17
17
  }
18
18
  export declare const RecordCache: import("effect/Context").Tag<RecordCache, RecordCache>;
19
19
  export declare const LiveRecordCache: import("effect/Layer").Layer<RecordCache, never, never>;
20
- export declare function find<R, RDecode, EDecode, E, EA, A>(tryRead: (id: string) => Effect<Option<CachedRecord<EA>>, E, R>, decode: (d: EA) => Effect<A, EDecode, RDecode>, type: string): (id: string) => import("effect/Effect").Effect<import("effect/Option").Option<A>, E | InvalidStateError, R | RDecode | RecordCache>;
20
+ export declare function find<R, RDecode, EDecode, E, EA, A>(tryRead: (id: string) => Effect<Option<CachedRecord<EA>>, E, R>, decode: (d: EA) => Effect<A, EDecode, RDecode>, type: string): (id: string) => import("effect/Effect").Effect<import("effect/Option").Option<A>, InvalidStateError | E, RecordCache | R | RDecode>;
21
21
  export declare function storeDirectly<R, E, TKey extends string, A extends DBRecord<TKey>>(save: (r: A, version: Option<Version>) => Effect<CachedRecord<A>, E, R>, type: string): (record: A) => import("effect/Effect").Effect<A, E, RecordCache | R>;
22
- export declare function store<R, E, R2, E2, TKey extends string, EA, A extends DBRecord<TKey>>(tryRead: (id: string) => Effect<Option<CachedRecord<EA>>, E, R>, save: (r: A, version: Option<Version>) => Effect<CachedRecord<A>, E, R>, lock: (id: string) => Effect<unknown, E2, R2 | Scope>, type: string): (record: A) => import("effect/Effect").Effect<A, E | E2 | InvalidStateError | OptimisticLockException, R | RecordCache | Exclude<R2, import("effect/Scope").Scope>>;
22
+ export declare function store<R, E, R2, E2, TKey extends string, EA, A extends DBRecord<TKey>>(tryRead: (id: string) => Effect<Option<CachedRecord<EA>>, E, R>, save: (r: A, version: Option<Version>) => Effect<CachedRecord<A>, E, R>, lock: (id: string) => Effect<unknown, E2, R2 | Scope>, type: string): (record: A) => import("effect/Effect").Effect<A, OptimisticLockException | InvalidStateError | E | E2, RecordCache | R | Exclude<R2, import("effect/Scope").Scope>>;
23
23
  //# sourceMappingURL=simpledb.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "0.196.6",
3
+ "version": "0.197.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -19,10 +19,10 @@
19
19
  "pure-rand": "6.0.4",
20
20
  "redlock": "^4.2.0",
21
21
  "@effect-app/core": "0.146.1",
22
- "@effect-app/fluent-extensions": "0.139.0",
23
22
  "@effect-app/infra-adapters": "0.133.3",
24
- "effect-app": "0.173.3",
25
- "@effect-app/schema": "0.197.1"
23
+ "@effect-app/fluent-extensions": "0.139.0",
24
+ "@effect-app/schema": "0.197.1",
25
+ "effect-app": "0.173.3"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@babel/cli": "^7.23.9",
@@ -230,11 +230,10 @@ export function buildWhereCosmosQuery3(
230
230
  importedMarkerId: string,
231
231
  defaultValues: Record<string, unknown>,
232
232
  select?: NonEmptyReadonlyArray<string>,
233
+ order?: NonEmptyReadonlyArray<{ key: string; direction: "ASC" | "DESC" }>,
233
234
  skip?: number,
234
235
  limit?: number
235
236
  ) {
236
- const lm = skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : ""
237
-
238
237
  const statement = (x: FilterR, i: number) => {
239
238
  let k = x.path.includes(".-1.")
240
239
  ? `${x.path.split(".-1.")[0]}.${x.path.split(".-1.")[1]!}`
@@ -378,7 +377,8 @@ export function buildWhereCosmosQuery3(
378
377
  }
379
378
 
380
379
  WHERE f.id != @id ${filter.length ? `AND ${print(filter)}` : ""}
381
- ${lm}`,
380
+ ${order ? `ORDER BY ${order.map((_) => `f.${_.key} ${_.direction}`).join(", ")}` : ""}
381
+ ${skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : ""}`,
382
382
  parameters: [
383
383
  { name: "@id", value: importedMarkerId },
384
384
  ...values
@@ -291,6 +291,7 @@ function makeCosmosStore({ prefix }: StorageConfig) {
291
291
  importedMarkerId,
292
292
  defaultValues,
293
293
  f.select as NonEmptyReadonlyArray<string> | undefined,
294
+ f.order as NonEmptyReadonlyArray<{ key: string; direction: "ASC" | "DESC" }> | undefined,
294
295
  skip,
295
296
  limit
296
297
  )
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { pick } from "effect-app/utils"
3
+ import { get, pick } from "effect-app/utils"
4
4
  import type { RequestContext } from "../../RequestContext.js"
5
5
  import type { FilterArgs, FilterJoinSelect, PersistenceModelType, Store, StoreConfig } from "./service.js"
6
6
  import { StoreMaker } from "./service.js"
@@ -12,6 +12,25 @@ export function memFilter<T extends PersistenceModelType<string>, U extends keyo
12
12
  const select = (r: T[]): M[] => (f.select ? r.map((_) => pick(_, f.select!)) : r) as any
13
13
  const skip = f?.skip
14
14
  const limit = f?.limit
15
+ const ords = Option.fromNullable(f.order).map((_) =>
16
+ _.map((_) =>
17
+ Order.make<T>((self, that) => {
18
+ // TODO: inspect data types for the right comparison?
19
+ const selfV = get(self, _.key) ?? false
20
+ const thatV = get(that, _.key) ?? false
21
+ if (selfV === thatV) {
22
+ return 0
23
+ }
24
+ if (_.direction === "ASC") {
25
+ return selfV < thatV ? -1 : 1
26
+ }
27
+ return selfV < thatV ? 1 : -1
28
+ })
29
+ )
30
+ )
31
+ if (ords.value) {
32
+ c = c.sortBy(...ords.value)
33
+ }
15
34
  if (!skip && limit === 1) {
16
35
  return select(
17
36
  c.findFirstMap(f.filter ? codeFilter(f.filter) : (_) => Option.some(_)).map(ReadonlyArray.make).getOrElse(
@@ -47,6 +66,7 @@ function logQuery(f: FilterArgs<any, any>, defaultValues?: any) {
47
66
  undefined,
48
67
  2
49
68
  ),
69
+ order: JSON.stringify(f.order, undefined, 2),
50
70
  select: JSON.stringify(f.select, undefined, 2),
51
71
  defaultValues: JSON.stringify(defaultValues, undefined, 2),
52
72
  skip: f.skip,
@@ -63,9 +63,15 @@ export type FilterJoinSelect = {
63
63
  value: any /* value path[valueKey] of E */
64
64
  }
65
65
 
66
+ export interface O<PM extends PersistenceModelType<unknown>> {
67
+ key: keyof PM
68
+ direction: "ASC" | "DESC"
69
+ }
70
+
66
71
  export interface FilterArgs<PM extends PersistenceModelType<unknown>, U extends keyof PM = never> {
67
72
  filter?: Filter<PM> | undefined
68
73
  select?: NonEmptyReadonlyArray<U> | undefined
74
+ order?: NonEmptyReadonlyArray<O<PM>>
69
75
  limit?: number | undefined
70
76
  skip?: number | undefined
71
77
  }
@@ -182,7 +188,7 @@ const makeMap = Effect.sync(() => makeContextMap())
182
188
  export class ContextMap extends TagClassMakeId("effect-app/ContextMap", makeMap)<ContextMap>() {
183
189
  }
184
190
 
185
- export interface PersistenceModelType<Id> {
191
+ export interface PersistenceModelType<Id> extends Record<string, any> {
186
192
  id: Id
187
193
  _etag: string | undefined
188
194
  }
@@ -93,7 +93,7 @@ export class Order<TFieldValues extends FieldValues, TFieldName extends FieldPat
93
93
  extends Data.TaggedClass("order")<{
94
94
  current: Query<TFieldValues> | QueryEnd<TFieldValues>
95
95
  field: TFieldName
96
- desc?: boolean | undefined
96
+ direction: "ASC" | "DESC"
97
97
  }>
98
98
  implements QueryEnd<TFieldValues>
99
99
  {
@@ -122,7 +122,7 @@ export const order: <TFieldValues extends FieldValues, TFieldName extends FieldP
122
122
  field: TFieldName,
123
123
  desc?: boolean
124
124
  ) => (current: Query<TFieldValues> | QueryEnd<TFieldValues>) => QueryEnd<TFieldValues> = (field, desc) => (current) =>
125
- new Order({ current, field, desc })
125
+ new Order({ current, field, direction: desc ? "DESC" : "ASC" })
126
126
 
127
127
  export const page: <TFieldValues extends FieldValues>(
128
128
  page: { limit?: number; skip?: number }
@@ -304,9 +304,11 @@ const interpret = <TFieldValues extends FieldValues, A = TFieldValues, R = never
304
304
  let schema: S.Schema<A, TFieldValues, R> | undefined = undefined as any
305
305
  let limit: number | undefined = undefined as any
306
306
  let skip: number | undefined = undefined as any
307
+ const order: { field: FieldPath<TFieldValues>; direction: "ASC" | "DESC" }[] = []
307
308
 
308
- const upd = (v: { schema: any; limit: any; skip: any; filter: readonly FilterResult[] }) => {
309
+ const upd = (v: { schema: any; limit: any; skip: any; filter: readonly FilterResult[]; order: any[] }) => {
309
310
  values.push(...v.filter)
311
+ order.push(...v.order)
310
312
  limit = v.limit
311
313
  skip = v.skip
312
314
  schema = v.schema
@@ -384,7 +386,8 @@ const interpret = <TFieldValues extends FieldValues, A = TFieldValues, R = never
384
386
  filter: values,
385
387
  limit,
386
388
  skip,
387
- schema
389
+ schema,
390
+ order
388
391
  }
389
392
  }
390
393