@effect-app/infra 4.0.0-beta.266 → 4.0.0-beta.268
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 +22 -0
- package/dist/ClusterCosmos.d.ts +16 -16
- package/dist/Store/Cosmos.d.ts +1 -1
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +64 -31
- package/dist/Store/Disk.d.ts +2 -2
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +2 -2
- package/dist/Store/Memory.d.ts +2 -3
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +3 -6
- package/dist/Store/SQL.d.ts +1 -1
- package/dist/Store/SQL.d.ts.map +1 -1
- package/dist/Store/SQL.js +14 -7
- package/dist/Store/codeFilter.d.ts +1 -1
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +2 -3
- package/dist/Store/index.js +1 -1
- package/dist/Store/utils.d.ts +3 -1
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +5 -1
- package/dist/WorkflowEngineCosmos.d.ts +1 -1
- package/dist/routing/middleware.d.ts +2 -2
- package/package.json +3 -3
- package/src/CUPS.ts +1 -1
- package/src/ClusterCosmos.ts +2 -2
- package/src/ContextProvider.ts +1 -1
- package/src/Emailer/Sendgrid.ts +1 -1
- package/src/Emailer/fake.ts +1 -1
- package/src/MainFiberSet.ts +3 -3
- package/src/QueueMaker/SQLQueue.ts +3 -3
- package/src/QueueMaker/memQueue.ts +4 -4
- package/src/QueueMaker/sbqueue.ts +4 -4
- package/src/RequestFiberSet.ts +2 -2
- package/src/SQL/Model.ts +1 -1
- package/src/SQL.ts +1 -1
- package/src/ServiceBus.ts +1 -1
- package/src/Store/Cosmos/query.ts +2 -2
- package/src/Store/Cosmos.ts +88 -64
- package/src/Store/Disk.ts +6 -4
- package/src/Store/Memory.ts +5 -8
- package/src/Store/SQL/Pg.ts +5 -5
- package/src/Store/SQL/query.ts +2 -2
- package/src/Store/SQL.ts +23 -12
- package/src/Store/codeFilter.ts +1 -2
- package/src/Store/index.test.ts.bak +2 -2
- package/src/Store/index.ts +6 -6
- package/src/Store/utils.ts +6 -1
- package/src/WorkflowEngineCosmos.ts +3 -3
- package/src/WorkflowEngineSqlite.ts +2 -2
- package/src/errorReporter.ts +2 -2
- package/src/index.ts +2 -2
- package/src/internal/events.ts +1 -1
- package/src/layerUtils.ts +1 -1
- package/src/logger/jsonLogger.ts +1 -1
- package/src/logger/logFmtLogger.ts +1 -1
- package/src/middlewares.ts +4 -4
- package/src/reportError.ts +1 -1
- package/src/routing/middleware/middleware.ts +3 -3
- package/src/routing.ts +3 -3
- package/src/test.ts +2 -2
- package/src/vitest.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.268
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 38289e0: Break the circular dependency between the memory store and code filter modules.
|
|
8
|
+
- acfdc9e: Point development package exports at TypeScript sources while keeping published exports on compiled dist files.
|
|
9
|
+
- Updated dependencies [acfdc9e]
|
|
10
|
+
- effect-app@4.0.0-beta.268
|
|
11
|
+
|
|
12
|
+
## 4.0.0-beta.267
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- 23a7167: Add a typed, serializable `DatabaseError { message, transient, cause }` for store adapter failures.
|
|
17
|
+
|
|
18
|
+
Store adapters wrapped DB calls in bare `Effect.promise` / `.orDie`, so a transient infra failure (request timeout, throttle, 5xx, dropped socket) became a raw-`Error` defect — which `Effect.retry` can't retry and which breaks JSON encoding of a workflow exit cause ("Expected JSON value, got Error"). `DatabaseError` is now exposed on all `Store` and `Repository` method error channels (writes: `OptimisticConcurrencyException | DatabaseError`) and added to `SupportedErrors` so the api/client/FE treat it as a 500-class error. Each adapter wraps its db-call failures into `DatabaseError` with a `transient` flag (timeout/throttle/5xx ⇒ retryable); the `cause` serializes via `Schema.Defect`. Construction/seed/DDL paths stay `orDie`.
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [23a7167]
|
|
23
|
+
- effect-app@4.0.0-beta.267
|
|
24
|
+
|
|
3
25
|
## 4.0.0-beta.266
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/dist/ClusterCosmos.d.ts
CHANGED
|
@@ -18,25 +18,25 @@ export interface ClusterCosmosConfig {
|
|
|
18
18
|
export declare const makeMessageStorage: (options?: {
|
|
19
19
|
readonly prefix?: string | undefined;
|
|
20
20
|
} | undefined) => Effect.Effect<{
|
|
21
|
-
readonly saveRequest: <R extends import("effect/unstable/rpc/Rpc").Any>(envelope: import("effect/unstable/cluster/Message").OutgoingRequest<R>) => Effect.Effect<MessageStorage.SaveResult<R>,
|
|
22
|
-
readonly saveEnvelope: (envelope: import("effect/unstable/cluster/Message").OutgoingEnvelope) => Effect.Effect<void,
|
|
23
|
-
readonly saveReply: <R extends import("effect/unstable/rpc/Rpc").Any>(reply: Reply.ReplyWithContext<R>) => Effect.Effect<void,
|
|
24
|
-
readonly clearReplies: (requestId: Snowflake.Snowflake) => Effect.Effect<void, PersistenceError>;
|
|
25
|
-
readonly repliesFor: <R extends import("effect/unstable/rpc/Rpc").Any>(requests: Iterable<import("effect/unstable/cluster/Message").OutgoingRequest<R>>) => Effect.Effect<
|
|
26
|
-
readonly repliesForUnfiltered: (requestIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<
|
|
21
|
+
readonly saveRequest: <R extends import("effect/unstable/rpc/Rpc").Any>(envelope: import("effect/unstable/cluster/Message").OutgoingRequest<R>) => Effect.Effect<MessageStorage.SaveResult<R>, import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
22
|
+
readonly saveEnvelope: (envelope: import("effect/unstable/cluster/Message").OutgoingEnvelope) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
23
|
+
readonly saveReply: <R extends import("effect/unstable/rpc/Rpc").Any>(reply: Reply.ReplyWithContext<R>) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
24
|
+
readonly clearReplies: (requestId: Snowflake.Snowflake) => Effect.Effect<void, PersistenceError, never>;
|
|
25
|
+
readonly repliesFor: <R extends import("effect/unstable/rpc/Rpc").Any>(requests: Iterable<import("effect/unstable/cluster/Message").OutgoingRequest<R>>) => Effect.Effect<Reply.Reply<R>[], import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
26
|
+
readonly repliesForUnfiltered: (requestIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<Reply.Encoded[], import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
27
27
|
readonly requestIdForPrimaryKey: (options: {
|
|
28
28
|
readonly address: import("effect/unstable/cluster/EntityAddress").EntityAddress;
|
|
29
29
|
readonly tag: string;
|
|
30
30
|
readonly id: string;
|
|
31
|
-
}) => Effect.Effect<Option.Option<Snowflake.Snowflake>, PersistenceError>;
|
|
32
|
-
readonly registerReplyHandler: <R extends import("effect/unstable/rpc/Rpc").Any>(message: import("effect/unstable/cluster/Message").OutgoingRequest<R> | import("effect/unstable/cluster/Message").IncomingRequest<R>) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").EntityNotAssignedToRunner>;
|
|
33
|
-
readonly unregisterReplyHandler: (requestId: Snowflake.Snowflake) => Effect.Effect<void>;
|
|
34
|
-
readonly unregisterShardReplyHandlers: (shardId: ShardId.ShardId) => Effect.Effect<void>;
|
|
35
|
-
readonly unprocessedMessages: (shardIds: Iterable<ShardId.ShardId>) => Effect.Effect<
|
|
36
|
-
readonly unprocessedMessagesById: <R extends import("effect/unstable/rpc/Rpc").Any>(messageIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<
|
|
37
|
-
readonly resetShards: (shardIds: Iterable<ShardId.ShardId>) => Effect.Effect<void, PersistenceError>;
|
|
38
|
-
readonly resetAddress: (address: import("effect/unstable/cluster/EntityAddress").EntityAddress) => Effect.Effect<void, PersistenceError>;
|
|
39
|
-
readonly clearAddress: (address: import("effect/unstable/cluster/EntityAddress").EntityAddress) => Effect.Effect<void, PersistenceError>;
|
|
31
|
+
}) => Effect.Effect<Option.Option<Snowflake.Snowflake>, PersistenceError, never>;
|
|
32
|
+
readonly registerReplyHandler: <R extends import("effect/unstable/rpc/Rpc").Any>(message: import("effect/unstable/cluster/Message").OutgoingRequest<R> | import("effect/unstable/cluster/Message").IncomingRequest<R>) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").EntityNotAssignedToRunner, never>;
|
|
33
|
+
readonly unregisterReplyHandler: (requestId: Snowflake.Snowflake) => Effect.Effect<void, never, never>;
|
|
34
|
+
readonly unregisterShardReplyHandlers: (shardId: ShardId.ShardId) => Effect.Effect<void, never, never>;
|
|
35
|
+
readonly unprocessedMessages: (shardIds: Iterable<ShardId.ShardId>) => Effect.Effect<import("effect/unstable/cluster/Message").Incoming<any>[], PersistenceError, never>;
|
|
36
|
+
readonly unprocessedMessagesById: <R extends import("effect/unstable/rpc/Rpc").Any>(messageIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<import("effect/unstable/cluster/Message").Incoming<R>[], PersistenceError, never>;
|
|
37
|
+
readonly resetShards: (shardIds: Iterable<ShardId.ShardId>) => Effect.Effect<void, PersistenceError, never>;
|
|
38
|
+
readonly resetAddress: (address: import("effect/unstable/cluster/EntityAddress").EntityAddress) => Effect.Effect<void, PersistenceError, never>;
|
|
39
|
+
readonly clearAddress: (address: import("effect/unstable/cluster/EntityAddress").EntityAddress) => Effect.Effect<void, PersistenceError, never>;
|
|
40
40
|
readonly withTransaction: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
41
41
|
}, never, CosmosClient | Snowflake.Generator>;
|
|
42
42
|
export declare const makeRunnerStorage: (options?: {
|
|
@@ -61,4 +61,4 @@ export declare const layerStorage: (options?: {
|
|
|
61
61
|
readonly prefix?: string | undefined;
|
|
62
62
|
}) => Layer.Layer<MessageStorage.MessageStorage | RunnerStorage.RunnerStorage, never, CosmosClient | ShardingConfig.ShardingConfig>;
|
|
63
63
|
export declare const layerCosmos: (config: ClusterCosmosConfig) => Layer.Layer<MessageStorage.MessageStorage | RunnerStorage.RunnerStorage, never, ShardingConfig.ShardingConfig>;
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlckNvc21vcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0NsdXN0ZXJDb3Ntb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFHM0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUV2RSxPQUFPLEtBQUssY0FBYyxNQUFNLHdDQUF3QyxDQUFBO0FBRXhFLE9BQU8sS0FBSyxLQUFLLEtBQUssTUFBTSwrQkFBK0IsQ0FBQTtBQUMzRCxPQUFPLEtBQUssYUFBYSxNQUFNLHVDQUF1QyxDQUFBO0FBQ3RFLE9BQU8sS0FBSyxPQUFPLE1BQU0saUNBQWlDLENBQUE7QUFDMUQsT0FBTyxLQUFLLGNBQWMsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN4RSxPQUFPLEtBQUssU0FBUyxNQUFNLG1DQUFtQyxDQUFBO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sb0JBQW9CLENBQUE7QUFHcEUsTUFBTSxXQUFXLG1CQUFtQjtJQUNsQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdkMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7SUFDdkIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUN6QjtBQWlWRCxlQUFPLE1BQU0sa0JBQWtCO3NCQUNYLE1BQU0sR0FBRyxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzZDQStWcEMsQ0FBQTtBQXVGRixlQUFPLE1BQU0saUJBQWlCO3NCQUNWLE1BQU0sR0FBRyxTQUFTOzs7Ozs7Ozs7O3VEQStScEMsQ0FBQTtBQUVGLGVBQU8sTUFBTSxtQkFBbUIsYUFBYztJQUM1QyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQTtDQUNyQyxLQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUUsWUFBWSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBRy9GLENBQUE7QUFFSCxlQUFPLE1BQU0sa0JBQWtCLGFBQWM7SUFDM0MsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUE7Q0FDckMsS0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFlBQVksR0FBRyxjQUFjLENBQUMsY0FBYyxDQUN6QixDQUFBO0FBRXZFLGVBQU8sTUFBTSxZQUFZLGFBQWM7SUFDckMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUE7Q0FDckMsS0FBRyxLQUFLLENBQUMsS0FBSyxDQUNiLGNBQWMsQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLGFBQWEsRUFDM0QsS0FBSyxFQUNMLFlBQVksR0FBRyxjQUFjLENBQUMsY0FBYyxDQUM2QixDQUFBO0FBRTNFLGVBQU8sTUFBTSxXQUFXLFdBQVksbUJBQW1CLEtBQUcsS0FBSyxDQUFDLEtBQUssQ0FDbkUsY0FBYyxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUMsYUFBYSxFQUMzRCxLQUFLLEVBQ0wsY0FBYyxDQUFDLGNBQWMsQ0FJNUIsQ0FBQSJ9
|
package/dist/Store/Cosmos.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as Layer from "effect-app/Layer";
|
|
2
2
|
import { type StorageConfig, StoreMaker } from "effect-app/Store";
|
|
3
3
|
export declare function CosmosStoreLayer(cfg: StorageConfig): Layer.Layer<StoreMaker, never, never>;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RvcmUvQ29zbW9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFJekMsT0FBTyxFQUE4QyxLQUFLLGFBQWEsRUFBeUMsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFpbkJwSix3QkFBZ0IsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLGFBQWEseUNBSWxEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../src/Store/Cosmos.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,EAA8C,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../src/Store/Cosmos.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,EAA8C,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAinBpJ,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,yCAIlD"}
|
package/dist/Store/Cosmos.js
CHANGED
|
@@ -11,7 +11,7 @@ import { pipe } from "effect/Function";
|
|
|
11
11
|
import * as Redacted from "effect/Redacted";
|
|
12
12
|
import * as Struct from "effect/Struct";
|
|
13
13
|
import { CosmosClient, CosmosClientLayer } from "../cosmos-client.js";
|
|
14
|
-
import { OptimisticConcurrencyException } from "../errors.js";
|
|
14
|
+
import { DatabaseError, OptimisticConcurrencyException } from "../errors.js";
|
|
15
15
|
import { InfraLogger } from "../logger.js";
|
|
16
16
|
import { annotateCosmosResponse, annotateDb } from "../otel.js";
|
|
17
17
|
import { buildWhereCosmosQuery3, logQuery } from "./Cosmos/query.js";
|
|
@@ -20,14 +20,31 @@ const makeMapId = (idKey) => ({ [idKey]: id, ...e }) => ({
|
|
|
20
20
|
id
|
|
21
21
|
});
|
|
22
22
|
const makeReverseMapId = (idKey) => ({ id, ...t }) => ({ ...t, [idKey]: id });
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
// Cosmos statuses worth retrying: request timeout, throttle, retry-with,
|
|
24
|
+
// internal, and service unavailable.
|
|
25
|
+
const RETRYABLE_COSMOS_STATUS = new Set([408, 429, 449, 500, 503]);
|
|
26
|
+
const statusIsTransient = (code) => RETRYABLE_COSMOS_STATUS.has(code);
|
|
27
|
+
// A thrown SDK error is transient if its status/code is retryable or its message
|
|
28
|
+
// looks like a timeout / throttle / dropped connection.
|
|
29
|
+
const thrownIsTransient = (e) => {
|
|
30
|
+
const code = e?.code ?? e?.statusCode;
|
|
31
|
+
if (typeof code === "number" && RETRYABLE_COSMOS_STATUS.has(code))
|
|
32
|
+
return true;
|
|
33
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
34
|
+
return /request timed out|timed out|\btimeout\b|ETIMEDOUT|ECONNRESET|ECONNREFUSED|EAI_AGAIN|socket hang up|ServiceUnavailable|RequestTimeout|TooManyRequests|throttl/i
|
|
35
|
+
.test(msg);
|
|
36
|
+
};
|
|
37
|
+
// Wrap a Cosmos SDK promise so a rejection becomes a typed, serializable
|
|
38
|
+
// `DatabaseError` (transient-classified) instead of a bare-`Error` defect — the
|
|
39
|
+
// latter both bypasses retry and breaks JSON encoding of the failure channel.
|
|
40
|
+
const tryCosmos = (f) => Effect.tryPromise({
|
|
41
|
+
try: f,
|
|
42
|
+
catch: (e) => new DatabaseError({
|
|
43
|
+
message: `Cosmos request failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
44
|
+
transient: thrownIsTransient(e),
|
|
45
|
+
cause: e
|
|
46
|
+
})
|
|
47
|
+
});
|
|
31
48
|
const respBytes = (resp) => resp.diagnostics?.clientSideRequestStatistics?.totalResponsePayloadLengthInBytes ?? 0;
|
|
32
49
|
const annotateFeed = (resp) => annotateCosmosResponse({
|
|
33
50
|
requestCharge: resp.requestCharge,
|
|
@@ -147,8 +164,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
147
164
|
]);
|
|
148
165
|
const batches = Array.chunksOf(b, config?.maxBulkSize ?? 10);
|
|
149
166
|
const batchResult = yield* Effect.forEach(batches
|
|
150
|
-
.map((x, i) => [i, x]), ([i, batch]) =>
|
|
151
|
-
.promise(() => bulk(batch.map(([, op]) => op)))
|
|
167
|
+
.map((x, i) => [i, x]), ([i, batch]) => tryCosmos(() => bulk(batch.map(([, op]) => op)))
|
|
152
168
|
.pipe(Effect
|
|
153
169
|
.delay(Duration.millis(i === 0 ? 0 : 150)), Effect
|
|
154
170
|
.flatMap((responses) => Effect.gen(function* () {
|
|
@@ -163,11 +179,19 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
163
179
|
}
|
|
164
180
|
const r2 = responses.find((x) => x.statusCode !== 424 && (x.statusCode > 299 || x.statusCode < 200));
|
|
165
181
|
if (r2) {
|
|
166
|
-
return yield*
|
|
182
|
+
return yield* new DatabaseError({
|
|
183
|
+
message: "not able to update records: " + r2.statusCode,
|
|
184
|
+
transient: statusIsTransient(r2.statusCode),
|
|
185
|
+
cause: responses
|
|
186
|
+
});
|
|
167
187
|
}
|
|
168
188
|
const r3 = responses.find((x) => x.statusCode > 299 || x.statusCode < 200);
|
|
169
189
|
if (r3) {
|
|
170
|
-
return yield*
|
|
190
|
+
return yield* new DatabaseError({
|
|
191
|
+
message: "not able to update records: " + r3.statusCode,
|
|
192
|
+
transient: statusIsTransient(r3.statusCode),
|
|
193
|
+
cause: responses
|
|
194
|
+
});
|
|
171
195
|
}
|
|
172
196
|
return batch.map(([e], i) => ({
|
|
173
197
|
...e,
|
|
@@ -217,8 +241,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
217
241
|
})
|
|
218
242
|
]);
|
|
219
243
|
const ex = batch.map(([, c]) => c);
|
|
220
|
-
return
|
|
221
|
-
.promise(() => execBatch(ex, ex[0]?.resourceBody._partitionKey))
|
|
244
|
+
return tryCosmos(() => execBatch(ex, ex[0]?.resourceBody._partitionKey))
|
|
222
245
|
.pipe(Effect.flatMap(Effect.fnUntraced(function* (x) {
|
|
223
246
|
const result = x.result ?? [];
|
|
224
247
|
const firstFailed = result.find((x) => x.statusCode > 299 || x.statusCode < 200);
|
|
@@ -227,7 +250,11 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
227
250
|
if (code === 412 || code === 404 || code === 409) {
|
|
228
251
|
return yield* new OptimisticConcurrencyException({ type: name, id: "batch", code });
|
|
229
252
|
}
|
|
230
|
-
return yield*
|
|
253
|
+
return yield* new DatabaseError({
|
|
254
|
+
message: "not able to update record: " + code,
|
|
255
|
+
transient: statusIsTransient(code),
|
|
256
|
+
cause: x
|
|
257
|
+
});
|
|
231
258
|
}
|
|
232
259
|
return batch.map(([e], i) => ({
|
|
233
260
|
...e,
|
|
@@ -249,7 +276,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
249
276
|
.all({ q: Effect.sync(() => query.cosmos({ name })), ns: resolveNamespace })
|
|
250
277
|
.pipe(Effect.tap(({ q }) => logQuery(q)), Effect.flatMap(({ ns, q }) => Effect
|
|
251
278
|
.gen(function* () {
|
|
252
|
-
const response = yield*
|
|
279
|
+
const response = yield* tryCosmos(() => container.items.query(q, { partitionKey: nsBasePartitionKey(ns) }).fetchAll());
|
|
253
280
|
yield* annotateFeed(response);
|
|
254
281
|
return response.resources.map((_) => ({ ...defaultValues, ...mapReverseId(_) }));
|
|
255
282
|
})
|
|
@@ -261,8 +288,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
261
288
|
entity: name,
|
|
262
289
|
query: q.query
|
|
263
290
|
})))),
|
|
264
|
-
batchRemove: (ids, partitionKey) => resolveNamespace.pipe(Effect.flatMap((ns) =>
|
|
265
|
-
.promise(() => execBatch(mutable(ids.map((id) => dropUndefinedT({
|
|
291
|
+
batchRemove: (ids, partitionKey) => resolveNamespace.pipe(Effect.flatMap((ns) => tryCosmos(() => execBatch(mutable(ids.map((id) => dropUndefinedT({
|
|
266
292
|
operationType: "Delete",
|
|
267
293
|
id
|
|
268
294
|
// don't use this or we get an error that the request and some item partition key dont match - makese no sense
|
|
@@ -285,7 +311,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
285
311
|
})
|
|
286
312
|
.pipe(Effect.tap(({ q }) => logQuery(q)), Effect.flatMap(({ ns, q }) => Effect
|
|
287
313
|
.gen(function* () {
|
|
288
|
-
const response = yield*
|
|
314
|
+
const response = yield* tryCosmos(() => container.items.query(q, { partitionKey: nsBasePartitionKey(ns) }).fetchAll());
|
|
289
315
|
yield* annotateFeed(response);
|
|
290
316
|
return response.resources.map((_) => ({ ...defaultValues, ...mapReverseId(_) }));
|
|
291
317
|
})
|
|
@@ -313,14 +339,14 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
313
339
|
.flatMap(({ ns, q }) => Effect
|
|
314
340
|
.gen(function* () {
|
|
315
341
|
if (f.select) {
|
|
316
|
-
const response = yield*
|
|
342
|
+
const response = yield* tryCosmos(() => container.items.query(q, { partitionKey: nsBasePartitionKey(ns) }).fetchAll());
|
|
317
343
|
yield* annotateFeed(response);
|
|
318
344
|
return response.resources.map((_) => ({
|
|
319
345
|
...pipe(defaultValues, Struct.pick(f.select.filter((_) => typeof _ === "string"))),
|
|
320
346
|
...mapReverseId(_)
|
|
321
347
|
}));
|
|
322
348
|
}
|
|
323
|
-
const response = yield*
|
|
349
|
+
const response = yield* tryCosmos(() => container.items.query(q, { partitionKey: nsBasePartitionKey(ns) }).fetchAll());
|
|
324
350
|
yield* annotateFeed(response);
|
|
325
351
|
return response.resources.map(({ f }) => ({ ...defaultValues, ...mapReverseId(f) }));
|
|
326
352
|
})
|
|
@@ -335,7 +361,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
335
361
|
},
|
|
336
362
|
find: (id) => resolveNamespace.pipe(Effect.flatMap((ns) => Effect
|
|
337
363
|
.gen(function* () {
|
|
338
|
-
const response = yield*
|
|
364
|
+
const response = yield* tryCosmos(() => container
|
|
339
365
|
.item(id, nsPartitionValue(ns, { [idKey]: id }))
|
|
340
366
|
.read());
|
|
341
367
|
yield* annotateItem(response);
|
|
@@ -352,27 +378,34 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
352
378
|
"app.entity.id": id
|
|
353
379
|
}
|
|
354
380
|
})))),
|
|
355
|
-
set: (e) => resolveNamespace.pipe(Effect.flatMap((ns) =>
|
|
381
|
+
set: (e) => resolveNamespace.pipe(Effect.flatMap((ns) =>
|
|
382
|
+
// Annotate the result so the create/replace promise union collapses to
|
|
383
|
+
// one type (otherwise `A` infers as `unknown` and the chain degrades).
|
|
384
|
+
tryCosmos(() => Option
|
|
356
385
|
.match(Option
|
|
357
386
|
.fromNullishOr(e._etag), {
|
|
358
|
-
onNone: () =>
|
|
387
|
+
onNone: () => container.items.create({
|
|
359
388
|
...mapId(e),
|
|
360
389
|
_partitionKey: nsPartitionValue(ns, e)
|
|
361
|
-
})
|
|
362
|
-
onSome: (eTag) =>
|
|
390
|
+
}),
|
|
391
|
+
onSome: (eTag) => container.item(e[idKey], nsPartitionValue(ns, e)).replace({ ...mapId(e), _partitionKey: nsPartitionValue(ns, e) }, {
|
|
363
392
|
accessCondition: {
|
|
364
393
|
type: "IfMatch",
|
|
365
394
|
condition: eTag
|
|
366
395
|
}
|
|
367
|
-
})
|
|
368
|
-
})
|
|
396
|
+
})
|
|
397
|
+
}))
|
|
369
398
|
.pipe(Effect
|
|
370
399
|
.flatMap((x) => {
|
|
371
400
|
if (x.statusCode === 412 || x.statusCode === 404 || x.statusCode === 409) {
|
|
372
401
|
return Effect.fail(new OptimisticConcurrencyException({ type: name, id: e[idKey], code: x.statusCode }));
|
|
373
402
|
}
|
|
374
403
|
if (x.statusCode > 299 || x.statusCode < 200) {
|
|
375
|
-
return Effect.
|
|
404
|
+
return Effect.fail(new DatabaseError({
|
|
405
|
+
message: "not able to update record: " + x.statusCode,
|
|
406
|
+
transient: statusIsTransient(x.statusCode),
|
|
407
|
+
cause: x
|
|
408
|
+
}));
|
|
376
409
|
}
|
|
377
410
|
return Effect.sync(() => ({
|
|
378
411
|
...e,
|
|
@@ -400,4 +433,4 @@ export function CosmosStoreLayer(cfg) {
|
|
|
400
433
|
.toLayer(makeCosmosStore(cfg))
|
|
401
434
|
.pipe(Layer.provide(CosmosClientLayer(Redacted.value(cfg.url), cfg.dbName)));
|
|
402
435
|
}
|
|
403
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL0Nvc21vcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBR3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFnRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDcEosT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUVwRSxNQUFNLFNBQVMsR0FDYixDQUEyRCxLQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxF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
|
|
436
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL0Nvc21vcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBR3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFnRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDcEosT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLDhCQUE4QixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFcEUsTUFBTSxTQUFTLEdBQ2IsQ0FBMkQsS0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxL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
|
package/dist/Store/Disk.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { type PersistenceModelType, type StorageConfig, type Store, type StoreCo
|
|
|
6
6
|
* and should therefore be as fast as the Memory Store.
|
|
7
7
|
*/
|
|
8
8
|
export declare function makeDiskStore({ prefix }: StorageConfig, dir: string): Effect.Effect<{
|
|
9
|
-
make: <IdKey extends keyof Encoded, Encoded extends FieldValues, R, E>(name: string, idKey: IdKey, seed?: Effect.Effect<Iterable<Encoded>, E, R> | undefined, config?: StoreConfig<Encoded> | undefined) => Effect.Effect<Store<IdKey, Encoded, PersistenceModelType<Encoded>>,
|
|
9
|
+
make: <IdKey extends keyof Encoded, Encoded extends FieldValues, R, E>(name: string, idKey: IdKey, seed?: Effect.Effect<Iterable<Encoded>, E, R> | undefined, config?: StoreConfig<Encoded> | undefined) => Effect.Effect<Store<IdKey, Encoded, PersistenceModelType<Encoded>>, never, R>;
|
|
10
10
|
}, never, never>;
|
|
11
11
|
export declare function DiskStoreLayer(config: StorageConfig, dir: string): import("effect/Layer").Layer<StoreMaker, never, never>;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL0Rpc2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsS0FBSyxvQkFBb0IsRUFBRSxLQUFLLGFBQWEsRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLFdBQVcsRUFBVyxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQTBKbkk7OztHQUdHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTTtXQU01QixLQUFLLFNBQVMsTUFBTSxPQUFPLEVBQUUsT0FBTyxTQUFTLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztpQkErRHJHO0FBRUQsd0JBQWdCLGNBQWMsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLDBEQUVoRSJ9
|
package/dist/Store/Disk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../src/Store/Disk.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAW,UAAU,EAAE,MAAM,kBAAkB,CAAA;AA0JnI;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM;WAM5B,KAAK,SAAS,MAAM,OAAO,EAAE,OAAO,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../src/Store/Disk.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAW,UAAU,EAAE,MAAM,kBAAkB,CAAA;AA0JnI;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM;WAM5B,KAAK,SAAS,MAAM,OAAO,EAAE,OAAO,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;iBA+DrG;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,0DAEhE"}
|
package/dist/Store/Disk.js
CHANGED
|
@@ -108,7 +108,7 @@ export function makeDiskStore({ prefix }, dir) {
|
|
|
108
108
|
}
|
|
109
109
|
return {
|
|
110
110
|
make: Effect.fnUntraced(function* (name, idKey, seed, config) {
|
|
111
|
-
const primary = yield* makeDiskStoreInt(prefix, idKey, "primary", dir, name, seed, config?.defaultValues);
|
|
111
|
+
const primary = yield* makeDiskStoreInt(prefix, idKey, "primary", dir, name, seed, config?.defaultValues).pipe(Effect.orDie);
|
|
112
112
|
const stores = new Map([["primary", primary]]);
|
|
113
113
|
const ctx = yield* Effect.context();
|
|
114
114
|
const semaphores = new Map();
|
|
@@ -152,4 +152,4 @@ export function makeDiskStore({ prefix }, dir) {
|
|
|
152
152
|
export function DiskStoreLayer(config, dir) {
|
|
153
153
|
return StoreMaker.toLayer(makeDiskStore(config, dir));
|
|
154
154
|
}
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TdG9yZS9EaXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXBDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUVuQixPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBRTNDLE9BQU8sRUFBK0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ25JLE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUE7QUFDekMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFaEQsU0FBUyxnQkFBZ0IsQ0FDdkIsTUFBYyxFQUNkLEtBQVksRUFDWixTQUFpQixFQUNqQixHQUFXLEVBQ1gsSUFBWSxFQUNaLElBQTZDLEVBQzdDLGFBQWdDO0lBR2hDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDekIsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFBO1lBQzNCLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEdBQUcsT0FBTyxDQUFBO1FBQ2hELE1BQU0s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
|
package/dist/Store/Memory.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import * as Effect from "effect-app/Effect";
|
|
2
2
|
import type { FieldValues } from "effect-app/Model/filter/types";
|
|
3
3
|
import { type FilterArgs, type PersistenceModelType, type Store, type StoreConfig, StoreMaker } from "effect-app/Store";
|
|
4
|
-
|
|
5
|
-
export declare function get(obj: any, path: string): any;
|
|
4
|
+
export { get } from "./utils.js";
|
|
6
5
|
export declare function memFilter<T extends FieldValues, U extends keyof T = never>(f: FilterArgs<T, U>): (c: T[]) => (U extends undefined ? T : Pick<T, U>)[];
|
|
7
6
|
export declare function makeMemoryStoreInt<IdKey extends keyof Encoded, Encoded extends FieldValues, R = never, E = never>(modelName: string, idKey: IdKey, namespace: string, seed?: Effect.Effect<Iterable<Encoded>, E, R>, _defaultValues?: Partial<Encoded>): Effect.Effect<Store<IdKey, Encoded, PersistenceModelType<Encoded>>, E, R>;
|
|
8
7
|
export declare const makeMemoryStore: () => {
|
|
9
8
|
make: <IdKey extends keyof Encoded, Encoded extends FieldValues, R, E>(modelName: string, idKey: IdKey, seed?: Effect.Effect<Iterable<Encoded>, E, R> | undefined, config?: StoreConfig<Encoded> | undefined) => Effect.Effect<Store<IdKey, Encoded, PersistenceModelType<Encoded>>, E, R>;
|
|
10
9
|
};
|
|
11
10
|
export declare const MemoryStoreLive: import("effect/Layer").Layer<StoreMaker, never, never>;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtb3J5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RvcmUvTWVtb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFFM0MsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFHaEUsT0FBTyxFQUFFLEtBQUssVUFBVSxFQUFFLEtBQUssb0JBQW9CLEVBQUUsS0FBSyxLQUFLLEVBQUUsS0FBSyxXQUFXLEVBQVcsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFhaEksT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQTBMaEMsd0JBQWdCLFNBQVMsQ0FBQyxDQUFDLFNBQVMsV0FBVyxFQUFFLENBQUMsU0FBUyxNQUFNLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BRWpGLENBQUMsRUFBRSxLQUFHLHdDQUFHLENBb0d0QjtBQW1CRCx3QkFBZ0Isa0JBQWtCLENBQUMsS0FBSyxTQUFTLE1BQU0sT0FBTyxFQUFFLE9BQU8sU0FBUyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUMvRyxTQUFTLEVBQUUsTUFBTSxFQUNqQixLQUFLLEVBQUUsS0FBSyxFQUNaLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDN0MsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyw2RUFpTGxDO0FBRUQsZUFBTyxNQUFNLGVBQWU7SUFDMUIsSUFBSSxHQUE4QixLQUFLLFNBQVMsTUFBTSxPQUFPLEVBQUUsT0FBTyxTQUFTLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQXNEaEcsQ0FBQTtBQUVGLGVBQU8sTUFBTSxlQUFlLHdEQUEyRCxDQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../src/Store/Memory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAGhE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,oBAAoB,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAW,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAahI,
|
|
1
|
+
{"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../src/Store/Memory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAGhE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,oBAAoB,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAW,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAahI,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AA0LhC,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,OAEjF,CAAC,EAAE,KAAG,wCAAG,CAoGtB;AAmBD,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,MAAM,OAAO,EAAE,OAAO,SAAS,WAAW,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAC/G,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7C,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,6EAiLlC;AAED,eAAO,MAAM,eAAe;IAC1B,IAAI,GAA8B,KAAK,SAAS,MAAM,OAAO,EAAE,OAAO,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;CAsDhG,CAAA;AAEF,eAAO,MAAM,eAAe,wDAA2D,CAAA"}
|