effect-app 4.0.0-beta.247 → 4.0.0-beta.249
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 +16 -0
- package/dist/Emailer.d.ts +51 -0
- package/dist/Emailer.d.ts.map +1 -0
- package/dist/Emailer.js +7 -0
- package/dist/Model/Repository/Registry.d.ts +21 -0
- package/dist/Model/Repository/Registry.d.ts.map +1 -0
- package/dist/Model/Repository/Registry.js +18 -0
- package/dist/Model/Repository/ext.d.ts +60 -0
- package/dist/Model/Repository/ext.d.ts.map +1 -0
- package/dist/Model/Repository/ext.js +122 -0
- package/dist/Model/Repository/internal/internal.d.ts +62 -0
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
- package/dist/Model/Repository/internal/internal.js +413 -0
- package/dist/Model/Repository/legacy.d.ts +21 -0
- package/dist/Model/Repository/legacy.d.ts.map +1 -0
- package/dist/Model/Repository/legacy.js +2 -0
- package/dist/Model/Repository/makeRepo.d.ts +53 -0
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
- package/dist/Model/Repository/makeRepo.js +27 -0
- package/dist/Model/Repository/service.d.ts +97 -0
- package/dist/Model/Repository/service.d.ts.map +1 -0
- package/dist/Model/Repository/service.js +2 -0
- package/dist/Model/Repository/validation.d.ts +71 -0
- package/dist/Model/Repository/validation.d.ts.map +1 -0
- package/dist/Model/Repository/validation.js +32 -0
- package/dist/Model/Repository.d.ts +7 -0
- package/dist/Model/Repository.d.ts.map +1 -0
- package/dist/Model/Repository.js +7 -0
- package/dist/Model/dsl.d.ts +33 -0
- package/dist/Model/dsl.d.ts.map +1 -0
- package/dist/Model/dsl.js +43 -0
- package/dist/Model/filter/filterApi.d.ts +30 -0
- package/dist/Model/filter/filterApi.d.ts.map +1 -0
- package/dist/Model/filter/filterApi.js +2 -0
- package/dist/Model/filter/types/errors.d.ts +29 -0
- package/dist/Model/filter/types/errors.d.ts.map +1 -0
- package/dist/Model/filter/types/errors.js +2 -0
- package/dist/Model/filter/types/fields.d.ts +15 -0
- package/dist/Model/filter/types/fields.d.ts.map +1 -0
- package/dist/Model/filter/types/fields.js +2 -0
- package/dist/Model/filter/types/path/common.d.ts +316 -0
- package/dist/Model/filter/types/path/common.d.ts.map +1 -0
- package/dist/Model/filter/types/path/common.js +2 -0
- package/dist/Model/filter/types/path/eager.d.ts +95 -0
- package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
- package/dist/Model/filter/types/path/eager.js +31 -0
- package/dist/Model/filter/types/path/index.d.ts +4 -0
- package/dist/Model/filter/types/path/index.d.ts.map +1 -0
- package/dist/Model/filter/types/path/index.js +3 -0
- package/dist/Model/filter/types/utils.d.ts +79 -0
- package/dist/Model/filter/types/utils.d.ts.map +1 -0
- package/dist/Model/filter/types/utils.js +2 -0
- package/dist/Model/filter/types/validator.d.ts +30 -0
- package/dist/Model/filter/types/validator.d.ts.map +1 -0
- package/dist/Model/filter/types/validator.js +2 -0
- package/dist/Model/filter/types.d.ts +5 -0
- package/dist/Model/filter/types.d.ts.map +1 -0
- package/dist/Model/filter/types.js +7 -0
- package/dist/Model/query/dsl.d.ts +446 -0
- package/dist/Model/query/dsl.d.ts.map +1 -0
- package/dist/Model/query/dsl.js +342 -0
- package/dist/Model/query/new-kid-interpreter.d.ts +136 -0
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
- package/dist/Model/query/new-kid-interpreter.js +336 -0
- package/dist/Model/query.d.ts +15 -0
- package/dist/Model/query.d.ts.map +1 -0
- package/dist/Model/query.js +3 -0
- package/dist/Model.d.ts +5 -0
- package/dist/Model.d.ts.map +1 -0
- package/dist/Model.js +5 -0
- package/dist/QueueMaker.d.ts +13 -0
- package/dist/QueueMaker.d.ts.map +1 -0
- package/dist/QueueMaker.js +4 -0
- package/dist/RequestContext.d.ts +103 -0
- package/dist/RequestContext.d.ts.map +1 -0
- package/dist/RequestContext.js +49 -0
- package/dist/Schema/ext.d.ts +9 -9
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +1 -1
- package/dist/Store.d.ts +147 -0
- package/dist/Store.d.ts.map +1 -0
- package/dist/Store.js +95 -0
- package/dist/client/apiClientFactory.d.ts +1 -1
- package/dist/client/clientFor.d.ts +5 -5
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/makeClient.d.ts +36 -36
- package/dist/client/makeClient.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/rpc/MiddlewareMaker.d.ts +2 -2
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.d.ts +2 -2
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/runtime.d.ts +19 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +40 -0
- package/dist/toast.d.ts +51 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +34 -0
- package/dist/withToast.d.ts +30 -0
- package/dist/withToast.d.ts.map +1 -0
- package/dist/withToast.js +64 -0
- package/package.json +113 -1
- package/src/Emailer.ts +51 -0
- package/src/Model/Repository/Registry.ts +34 -0
- package/src/Model/Repository/ext.ts +375 -0
- package/src/Model/Repository/internal/internal.ts +708 -0
- package/src/Model/Repository/legacy.ts +29 -0
- package/src/Model/Repository/makeRepo.ts +144 -0
- package/src/Model/Repository/service.ts +639 -0
- package/src/Model/Repository/validation.ts +31 -0
- package/src/Model/Repository.ts +6 -0
- package/src/Model/dsl.ts +129 -0
- package/src/Model/filter/filterApi.ts +60 -0
- package/src/Model/filter/types/errors.ts +47 -0
- package/src/Model/filter/types/fields.ts +50 -0
- package/src/Model/filter/types/path/common.ts +404 -0
- package/src/Model/filter/types/path/eager.ts +297 -0
- package/src/Model/filter/types/path/index.ts +4 -0
- package/src/Model/filter/types/utils.ts +128 -0
- package/src/Model/filter/types/validator.ts +46 -0
- package/src/Model/filter/types.ts +6 -0
- package/src/Model/query/dsl.ts +2546 -0
- package/src/Model/query/new-kid-interpreter.ts +484 -0
- package/src/Model/query.ts +13 -0
- package/src/Model.ts +4 -0
- package/src/QueueMaker.ts +19 -0
- package/src/RequestContext.ts +62 -0
- package/src/Schema/ext.ts +6 -6
- package/src/Store.ts +243 -0
- package/src/client/clientFor.ts +8 -8
- package/src/client/makeClient.ts +11 -11
- package/src/index.ts +2 -0
- package/src/rpc/MiddlewareMaker.ts +1 -1
- package/src/rpc/RpcMiddleware.ts +1 -1
- package/src/runtime.ts +56 -0
- package/src/toast.ts +54 -0
- package/src/withToast.ts +133 -0
- package/test/dist/rpc-dynamic-middleware.test.d.ts.map +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @effect-app/prelude
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.249
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ba789a2: Move core service contracts and runtime-agnostic modules into `effect-app`, keep `infra` and `vue` focused on adapters, and drop the temporary `infra` compatibility re-export paths in favor of the new canonical imports.
|
|
8
|
+
|
|
9
|
+
`@effect-app/infra` no longer re-exports moved core modules such as `./Model`, `./Emailer/service`, `./QueueMaker/service`, `./Store/service`, `./adapters/*`, or `./api/*` entrypoints.
|
|
10
|
+
|
|
11
|
+
## 4.0.0-beta.248
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 2a86a17: improve tsgo compat: avoid deferred `Schema.Type`/`Codec.Encoded`/`Codec.DecodingServices`/`Codec.EncodingServices` conditional helpers in generic positions where the type parameter is already constrained to `Schema.Top`. Index the property directly (`X["Type"]`, `X["Encoded"]`, `X["DecodingServices"]`, …) so tsgo doesn't leak `unknown` into `Effect` channels (notably `R`).
|
|
16
|
+
|
|
17
|
+
Sites: `client/clientFor.ts` (`RequestHandlerFor`, `FinalTypeOf`, `ExtractResponse`, `ExtractEResponse`), `client/makeClient.ts` (`InputFromPayload`, `OutputFromSuccess`, `InvalidationConfigForCommand`, `TaggedRequestWithMeta` overloads), `rpc/MiddlewareMaker.ts` (`Errors`), `rpc/RpcMiddleware.ts` (`Failure`, `FailureContext`), `Schema/ext.ts` (`ReadonlySetFromArray`, `ReadonlyMapFromArray`), `infra/routing.ts` (`GetSuccessShape`, handlers, route matcher), `vue/makeClient.ts` (`MutationExt.project`, `MutationWithExtensions`, `QueryProjection`), `vue/routeParams.ts` (`parseRouteParams*`).
|
|
18
|
+
|
|
3
19
|
## 4.0.0-beta.247
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { NonEmptyReadonlyArray } from "./Array.js";
|
|
2
|
+
import * as Context from "./Context.js";
|
|
3
|
+
import type * as Effect from "./Effect.js";
|
|
4
|
+
import type { Email } from "./Schema.js";
|
|
5
|
+
declare const SendMailError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
6
|
+
readonly _tag: "SendMailError";
|
|
7
|
+
} & Readonly<A>;
|
|
8
|
+
export declare class SendMailError extends SendMailError_base<{
|
|
9
|
+
readonly raw: Error;
|
|
10
|
+
}> {
|
|
11
|
+
}
|
|
12
|
+
declare const Emailer_base: Context.OpaqueClass<Emailer, "effect-app/Emailer", {
|
|
13
|
+
sendMail: (msg: EmailMsgOptionalFrom) => Effect.Effect<void, SendMailError>;
|
|
14
|
+
}>;
|
|
15
|
+
export declare class Emailer extends Emailer_base {
|
|
16
|
+
}
|
|
17
|
+
export type EmailData = Email | {
|
|
18
|
+
name?: string;
|
|
19
|
+
email: Email;
|
|
20
|
+
};
|
|
21
|
+
export interface EmailContentPart {
|
|
22
|
+
type: string;
|
|
23
|
+
value: string;
|
|
24
|
+
}
|
|
25
|
+
export type EmailRecipients = EmailData | NonEmptyReadonlyArray<EmailData>;
|
|
26
|
+
export interface EmailMsgBase {
|
|
27
|
+
readonly to: EmailRecipients;
|
|
28
|
+
readonly cc?: EmailRecipients;
|
|
29
|
+
readonly bcc?: EmailRecipients;
|
|
30
|
+
readonly from: EmailData;
|
|
31
|
+
readonly replyTo?: EmailData;
|
|
32
|
+
readonly subject?: string;
|
|
33
|
+
/**
|
|
34
|
+
* should multiple `to` addresess be considered multiple emails?
|
|
35
|
+
* defaults to `true`, not to leak email addresses
|
|
36
|
+
*/
|
|
37
|
+
readonly isMultiple?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export type EmailContent = {
|
|
40
|
+
text: string;
|
|
41
|
+
} | {
|
|
42
|
+
html: string;
|
|
43
|
+
} | {
|
|
44
|
+
templateId: string;
|
|
45
|
+
} | {
|
|
46
|
+
content: NonEmptyReadonlyArray<EmailContentPart>;
|
|
47
|
+
};
|
|
48
|
+
export type EmailMsg = EmailMsgBase & EmailContent;
|
|
49
|
+
export type EmailMsgOptionalFrom = Omit<EmailMsgBase, "from"> & Partial<Pick<EmailMsg, "from">> & EmailContent;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1haWxlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VtYWlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkQsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFDdkMsT0FBTyxLQUFLLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7Ozs7QUFFeEMscUJBQWEsYUFBYyxTQUFRLG1CQUFrQztJQUNuRSxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQTtDQUNwQixDQUFDO0NBQUc7O2NBR08sQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDOztBQUQ3RSxxQkFBYSxPQUFRLFNBQVEsWUFFSDtDQUFHO0FBRTdCLE1BQU0sTUFBTSxTQUFTLEdBQUcsS0FBSyxHQUFHO0lBQzlCLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQTtJQUNiLEtBQUssRUFBRSxLQUFLLENBQUE7Q0FDYixDQUFBO0FBRUQsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixJQUFJLEVBQUUsTUFBTSxDQUFBO0lBQ1osS0FBSyxFQUFFLE1BQU0sQ0FBQTtDQUNkO0FBRUQsTUFBTSxNQUFNLGVBQWUsR0FBRyxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFMUUsTUFBTSxXQUFXLFlBQVk7SUFDM0IsUUFBUSxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUE7SUFDNUIsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQTtJQUM3QixRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsZUFBZSxDQUFBO0lBQzlCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFBO0lBQ3hCLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLENBQUE7SUFDNUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtJQUN6Qjs7O09BR0c7SUFDSCxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFBO0NBQzlCO0FBRUQsTUFBTSxNQUFNLFlBQVksR0FDcEI7SUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDaEI7SUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDaEI7SUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDdEI7SUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtDQUFFLENBQUE7QUFFeEQsTUFBTSxNQUFNLFFBQVEsR0FDaEIsWUFBWSxHQUNaLFlBQVksQ0FBQTtBQUVoQixNQUFNLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Emailer.d.ts","sourceRoot":"","sources":["../src/Emailer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;;;;AAExC,qBAAa,aAAc,SAAQ,mBAAkC;IACnE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAA;CACpB,CAAC;CAAG;;cAGO,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;;AAD7E,qBAAa,OAAQ,SAAQ,YAEH;CAAG;AAE7B,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;AAE1E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,CAAA;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GACtB;IAAE,OAAO,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAA;CAAE,CAAA;AAExD,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,YAAY,CAAA;AAEhB,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,YAAY,CAAA"}
|
package/dist/Emailer.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as Data from "effect/Data";
|
|
2
|
+
import * as Context from "./Context.js";
|
|
3
|
+
export class SendMailError extends Data.TaggedError("SendMailError") {
|
|
4
|
+
}
|
|
5
|
+
export class Emailer extends Context.Opaque()("effect-app/Emailer") {
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1haWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9FbWFpbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sYUFBYSxDQUFBO0FBRW5DLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFBO0FBSXZDLE1BQU0sT0FBTyxhQUFjLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBRWpFO0NBQUc7QUFFTCxNQUFNLE9BQU8sT0FBUSxTQUFRLE9BQU8sQ0FBQyxNQUFNLEVBRXZDLENBQUMsb0JBQW9CLENBQUM7Q0FBRyJ9
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as Context from "../../Context.js";
|
|
2
|
+
import * as Effect from "../../Effect.js";
|
|
3
|
+
export interface RegisteredRepository {
|
|
4
|
+
readonly seedNamespace: (namespace: string) => Effect.Effect<void>;
|
|
5
|
+
}
|
|
6
|
+
declare const RepositoryRegistry_base: Context.OpaqueClass<RepositoryRegistry, "effect-app/RepositoryRegistry", {
|
|
7
|
+
readonly register: (modelName: string, repo: RegisteredRepository) => void;
|
|
8
|
+
readonly seedNamespace: (namespace: string) => Effect.Effect<void>;
|
|
9
|
+
readonly entries: ReadonlyMap<string, RegisteredRepository>;
|
|
10
|
+
}> & {
|
|
11
|
+
readonly make: Effect.Effect<{
|
|
12
|
+
readonly register: (modelName: string, repo: RegisteredRepository) => void;
|
|
13
|
+
readonly seedNamespace: (namespace: string) => Effect.Effect<void>;
|
|
14
|
+
readonly entries: ReadonlyMap<string, RegisteredRepository>;
|
|
15
|
+
}, never, never>;
|
|
16
|
+
};
|
|
17
|
+
export declare class RepositoryRegistry extends RepositoryRegistry_base {
|
|
18
|
+
}
|
|
19
|
+
export declare const RepositoryRegistryLive: import("effect/Layer").Layer<RepositoryRegistry, never, never>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaXN0cnkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9Nb2RlbC9SZXBvc2l0b3J5L1JlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQTtBQUV6QyxNQUFNLFdBQVcsb0JBQW9CO0lBQ25DLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7Q0FDbkU7O3VCQXVCb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxvQkFBb0IsS0FBSyxJQUFJOzRCQUNsRCxDQUFDLFNBQVMsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7c0JBQ2hELFdBQVcsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUM7OzsyQkFGeEMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxvQkFBb0IsS0FBSyxJQUFJO2dDQUNsRCxDQUFDLFNBQVMsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7MEJBQ2hELFdBQVcsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUM7OztBQUg3RCxxQkFBYSxrQkFBbUIsU0FBUSx1QkFJTztDQUFHO0FBRWxELGVBQU8sTUFBTSxzQkFBc0IsZ0VBQXNELENBQUEifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/Registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAEzC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACnE;;uBAuBoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,KAAK,IAAI;4BAClD,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;sBAChD,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC;;;2BAFxC,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,KAAK,IAAI;gCAClD,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;0BAChD,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC;;;AAH7D,qBAAa,kBAAmB,SAAQ,uBAIO;CAAG;AAElD,eAAO,MAAM,sBAAsB,gEAAsD,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as Context from "../../Context.js";
|
|
2
|
+
import * as Effect from "../../Effect.js";
|
|
3
|
+
const make = Effect.sync(() => {
|
|
4
|
+
const repos = new Map();
|
|
5
|
+
return {
|
|
6
|
+
register(modelName, repo) {
|
|
7
|
+
repos.set(modelName, repo);
|
|
8
|
+
},
|
|
9
|
+
seedNamespace: (namespace) => Effect.suspend(() => Effect.forEach(repos.values(), (r) => r.seedNamespace(namespace), { concurrency: "unbounded", discard: true })),
|
|
10
|
+
get entries() {
|
|
11
|
+
return repos;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
});
|
|
15
|
+
export class RepositoryRegistry extends Context.Opaque()("effect-app/RepositoryRegistry", { make }) {
|
|
16
|
+
}
|
|
17
|
+
export const RepositoryRegistryLive = RepositoryRegistry.toLayer(RepositoryRegistry.make);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9SZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFNekMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWdDLENBQUE7SUFDckQsT0FBTztRQUNMLFFBQVEsQ0FBQyxTQUFpQixFQUFFLElBQTBCO1lBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQzVCLENBQUM7UUFDRCxhQUFhLEVBQUUsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDbEIsTUFBTSxDQUFDLE9BQU8sQ0FDWixLQUFLLENBQUMsTUFBTSxFQUFFLEVBQ2QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQ2pDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQzVDLENBQ0Y7UUFDSCxJQUFJLE9BQU87WUFDVCxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsT0FBTyxDQUFDLE1BQU0sRUFJbEQsQ0FBQywrQkFBK0IsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0NBQUc7QUFFbEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { NonEmptyArray } from "../../Array.js";
|
|
2
|
+
import { type InvalidStateError, NotFoundError, type OptimisticConcurrencyException } from "../../client/errors.js";
|
|
3
|
+
import * as Effect from "../../Effect.js";
|
|
4
|
+
import { type FixEnv, type PureEnv } from "../../Pure.js";
|
|
5
|
+
import type { FieldValues } from "../filter/types.js";
|
|
6
|
+
import type { Query, QueryEnd, QueryWhere } from "../query.js";
|
|
7
|
+
import type { Repository } from "./service.js";
|
|
8
|
+
interface BatchOptions {
|
|
9
|
+
readonly batch?: true | number;
|
|
10
|
+
}
|
|
11
|
+
export declare const extendRepo: <T, Encoded extends FieldValues, Evt, ItemType extends string, IdKey extends keyof T & keyof Encoded, RSchema, RPublish, RProvided = never>(repo: Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish, RProvided>) => Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish, RProvided> & {
|
|
12
|
+
request: (id: T[IdKey]) => Effect.Effect<T, NotFoundError<ItemType>, never>;
|
|
13
|
+
get: (id: T[IdKey]) => Effect.Effect<T, NotFoundError<ItemType>, RSchema>;
|
|
14
|
+
log: (evt: Evt) => import("../../Pure.js").PureLogT<any>;
|
|
15
|
+
/**
|
|
16
|
+
* Enables chunked writes for large batches via `options.batch`.
|
|
17
|
+
* Note: batching breaks transactional properties because chunks are saved independently.
|
|
18
|
+
*/
|
|
19
|
+
save: (itemOrItems: T | ReadonlyArray<T>, options?: BatchOptions) => Effect.Effect<void, InvalidStateError | OptimisticConcurrencyException, RSchema | RPublish>;
|
|
20
|
+
saveWithEvents: (events: Iterable<Evt>) => (...items: NonEmptyArray<T>) => Effect.Effect<void, InvalidStateError | OptimisticConcurrencyException, RPublish | RSchema>;
|
|
21
|
+
/**
|
|
22
|
+
* Enables chunked deletes for large batches via `options.batch`.
|
|
23
|
+
* Note: batching breaks transactional properties because chunks are removed independently.
|
|
24
|
+
*/
|
|
25
|
+
remove: (itemOrItems: T | ReadonlyArray<T>, options?: BatchOptions) => Effect.Effect<void, never, RSchema | RPublish>;
|
|
26
|
+
/**
|
|
27
|
+
* Enables chunked deletes for large batches via `options.batch`.
|
|
28
|
+
* Note: batching breaks transactional properties because chunks are removed independently.
|
|
29
|
+
*/
|
|
30
|
+
removeById: (idOrIds: T[IdKey] | ReadonlyArray<T[IdKey]>, options?: BatchOptions) => Effect.Effect<void, never, RSchema>;
|
|
31
|
+
queryAndSavePure: {
|
|
32
|
+
<A, E2, R2, T2 extends T>(q: (q: Query<Encoded>) => QueryEnd<Encoded, "one">, pure: Effect.Effect<A, E2, FixEnv<R2, Evt, T, T2>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | E2, Exclude<R2, {
|
|
33
|
+
env: PureEnv<Evt, T, T2>;
|
|
34
|
+
}>>;
|
|
35
|
+
<A, E2, R2, T2 extends T>(q: (q: Query<Encoded>) => Query<Encoded> | QueryWhere<Encoded> | QueryEnd<Encoded>, pure: Effect.Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | E2, RSchema | RPublish | Exclude<R2, {
|
|
36
|
+
env: PureEnv<Evt, readonly T[], readonly T2[]>;
|
|
37
|
+
}>>;
|
|
38
|
+
<A, E2, R2, T2 extends T>(q: (q: Query<Encoded>) => Query<Encoded> | QueryWhere<Encoded> | QueryEnd<Encoded>, pure: Effect.Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>, batch: "batched" | number): Effect.Effect<A[], InvalidStateError | OptimisticConcurrencyException | E2, RSchema | RPublish | Exclude<R2, {
|
|
39
|
+
env: PureEnv<Evt, readonly T[], readonly T2[]>;
|
|
40
|
+
}>>;
|
|
41
|
+
};
|
|
42
|
+
saveManyWithPure: {
|
|
43
|
+
<R, A, E, S1 extends T, S2 extends T>(items: Iterable<S1>, pure: Effect.Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | E, RSchema | RPublish | Exclude<R, {
|
|
44
|
+
env: PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
45
|
+
}>>;
|
|
46
|
+
<R, A, E, S1 extends T, S2 extends T>(items: Iterable<S1>, pure: Effect.Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>, batch: "batched" | number): Effect.Effect<A[], InvalidStateError | OptimisticConcurrencyException | E, RSchema | RPublish | Exclude<R, {
|
|
47
|
+
env: PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
48
|
+
}>>;
|
|
49
|
+
};
|
|
50
|
+
byIdAndSaveWithPure: <R, A, E, S2 extends T>(id: T[IdKey], pure: Effect.Effect<A, E, FixEnv<R, Evt, T, S2>>) => Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | E, RSchema | RPublish | Exclude<R, {
|
|
51
|
+
env: PureEnv<Evt, T, S2>;
|
|
52
|
+
}>>;
|
|
53
|
+
saveWithPure: <R, A, E, S1 extends T, S2 extends T>(item: S1, pure: Effect.Effect<A, E, FixEnv<R, Evt, S1, S2>>) => Effect.Effect<A, E | InvalidStateError | OptimisticConcurrencyException, RPublish | RSchema | Exclude<R, {
|
|
54
|
+
env: PureEnv<Evt, S1, S2>;
|
|
55
|
+
}>>;
|
|
56
|
+
};
|
|
57
|
+
export interface ExtendedRepository<T, Encoded extends FieldValues, Evt, ItemType extends string, IdKey extends keyof T & keyof Encoded, RSchema, RPublish, RProvided = never> extends ReturnType<typeof extendRepo<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish, RProvided>> {
|
|
58
|
+
}
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9leHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkQsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQUUsYUFBYSxFQUFFLEtBQUssOEJBQThCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNuSCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxLQUFLLE9BQU8sRUFBVyxNQUFNLGVBQWUsQ0FBQTtBQUVsRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNyRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUU5RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFOUMsVUFBVSxZQUFZO0lBQ3BCLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUcsTUFBTSxDQUFBO0NBQy9CO0FBY0QsZUFBTyxNQUFNLFVBQVUsR0FDckIsQ0FBQyxFQUNELE9BQU8sU0FBUyxXQUFXLEVBQzNCLEdBQUcsRUFDSCxRQUFRLFNBQVMsTUFBTSxFQUN2QixLQUFLLFNBQVMsTUFBTSxDQUFDLEdBQUcsTUFBTSxPQUFPLEVBQ3JDLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxHQUFHLEtBQUssUUFFWCxVQUFVLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxLQThUM0UsVUFBVSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ext.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/ext.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
|
+
import * as Exit from "effect/Exit";
|
|
4
|
+
import * as Request from "effect/Request";
|
|
5
|
+
import * as RequestResolver from "effect/RequestResolver";
|
|
6
|
+
import * as Array from "../../Array.js";
|
|
7
|
+
import { NotFoundError } from "../../client/errors.js";
|
|
8
|
+
import * as Effect from "../../Effect.js";
|
|
9
|
+
import * as Option from "../../Option.js";
|
|
10
|
+
import { runTerm } from "../../Pure.js";
|
|
11
|
+
import { AnyPureDSL } from "../dsl.js";
|
|
12
|
+
import * as Q from "../query.js";
|
|
13
|
+
const asReadonlyArray = (itemOrItems) => globalThis.Array.isArray(itemOrItems)
|
|
14
|
+
? itemOrItems
|
|
15
|
+
: [itemOrItems];
|
|
16
|
+
const getBatchSize = (batch) => batch === true
|
|
17
|
+
? 100
|
|
18
|
+
: typeof batch === "number" && Number.isFinite(batch) && batch > 0
|
|
19
|
+
? Math.floor(batch)
|
|
20
|
+
: undefined;
|
|
21
|
+
export const extendRepo = (repo) => {
|
|
22
|
+
const get = (id) => repo.find(id).pipe(Effect.flatMap(Option.match({
|
|
23
|
+
onNone: () => Effect.fail(new NotFoundError({ type: repo.itemType, id })),
|
|
24
|
+
onSome: Effect.succeed
|
|
25
|
+
})));
|
|
26
|
+
function saveManyWithPure_(items, pure) {
|
|
27
|
+
return saveAllWithEffectInt(runTerm(pure, [...items]));
|
|
28
|
+
}
|
|
29
|
+
function saveWithPure_(item, pure) {
|
|
30
|
+
return saveAllWithEffectInt(runTerm(pure, item)
|
|
31
|
+
.pipe(Effect
|
|
32
|
+
.map(([item, events, a]) => [[item], events, a])));
|
|
33
|
+
}
|
|
34
|
+
function saveAllWithEffectInt(gen) {
|
|
35
|
+
return Effect.flatMap(gen, ([items, events, a]) => repo.saveAndPublish(items, events).pipe(Effect.map(() => a)));
|
|
36
|
+
}
|
|
37
|
+
function saveManyWithPureBatched_(items, pure, batchSize = 100) {
|
|
38
|
+
return Effect.forEach(Array.chunksOf(items, batchSize), (batch) => saveAllWithEffectInt(runTerm(pure, batch)));
|
|
39
|
+
}
|
|
40
|
+
const queryAndSavePure = (q, pure, batch) => repo.query(q).pipe(Effect.andThen((_) => Array.isArray(_)
|
|
41
|
+
? batch === undefined
|
|
42
|
+
? saveManyWithPure_(_, pure)
|
|
43
|
+
: saveManyWithPureBatched_(_, pure, batch === "batched" ? 100 : batch)
|
|
44
|
+
: saveWithPure_(_, pure)));
|
|
45
|
+
const saveManyWithPure = (items, pure, batch) => batch
|
|
46
|
+
? Effect.forEach(Array.chunksOf(items, batch === "batched" ? 100 : batch), (batch) => saveAllWithEffectInt(runTerm(pure, batch)))
|
|
47
|
+
: saveAllWithEffectInt(runTerm(pure, [...items]));
|
|
48
|
+
const byIdAndSaveWithPure = (id, pure) => get(id).pipe(Effect.flatMap((item) => saveWithPure_(item, pure)));
|
|
49
|
+
const _request = Request.tagged(`Get${repo.itemType}`);
|
|
50
|
+
const requestResolver = RequestResolver
|
|
51
|
+
.make((entries, _key) => repo.query(Q.where(repo.idKey, "in", entries.map((_) => _.request.id)))
|
|
52
|
+
// TODO
|
|
53
|
+
.pipe(Effect.andThen((items) => Effect.forEach(entries, (entry) => Request.complete(Array
|
|
54
|
+
.findFirst(items, (_) => _[repo.idKey] === entry.request.id)
|
|
55
|
+
.pipe(Option.match({
|
|
56
|
+
onNone: () => Exit.fail(new NotFoundError({ type: repo.itemType, id: entry.request.id })),
|
|
57
|
+
onSome: Exit.succeed
|
|
58
|
+
})))(entry), { discard: true })), Effect
|
|
59
|
+
.catchCause((cause) => Effect.forEach(entries, (entry) => Request.complete(Exit.failCause(cause))(entry), { discard: true }))))
|
|
60
|
+
.pipe(RequestResolver.batchN(20));
|
|
61
|
+
const exts = {
|
|
62
|
+
request: (id) => Effect.request(_request({ id }), requestResolver),
|
|
63
|
+
get,
|
|
64
|
+
log: (evt) => AnyPureDSL.log(evt),
|
|
65
|
+
/**
|
|
66
|
+
* Enables chunked writes for large batches via `options.batch`.
|
|
67
|
+
* Note: batching breaks transactional properties because chunks are saved independently.
|
|
68
|
+
*/
|
|
69
|
+
save: ((itemOrItems, options) => {
|
|
70
|
+
const items = asReadonlyArray(itemOrItems);
|
|
71
|
+
if (!Array.isReadonlyArrayNonEmpty(items)) {
|
|
72
|
+
return Effect.void;
|
|
73
|
+
}
|
|
74
|
+
const batchSize = getBatchSize(options?.batch);
|
|
75
|
+
if (batchSize === undefined) {
|
|
76
|
+
return repo.saveAndPublish(items);
|
|
77
|
+
}
|
|
78
|
+
return Effect.forEach(Array.chunksOf(items, batchSize), (batch) => repo.saveAndPublish(batch), { discard: true });
|
|
79
|
+
}),
|
|
80
|
+
saveWithEvents: (events) => (...items) => repo.saveAndPublish(items, events),
|
|
81
|
+
/**
|
|
82
|
+
* Enables chunked deletes for large batches via `options.batch`.
|
|
83
|
+
* Note: batching breaks transactional properties because chunks are removed independently.
|
|
84
|
+
*/
|
|
85
|
+
remove: ((itemOrItems, options) => {
|
|
86
|
+
const items = asReadonlyArray(itemOrItems);
|
|
87
|
+
if (!Array.isReadonlyArrayNonEmpty(items)) {
|
|
88
|
+
return Effect.void;
|
|
89
|
+
}
|
|
90
|
+
const batchSize = getBatchSize(options?.batch);
|
|
91
|
+
if (batchSize === undefined) {
|
|
92
|
+
return repo.removeAndPublish(items);
|
|
93
|
+
}
|
|
94
|
+
return Effect.forEach(Array.chunksOf(items, batchSize), (batch) => repo.removeAndPublish(batch), { discard: true });
|
|
95
|
+
}),
|
|
96
|
+
/**
|
|
97
|
+
* Enables chunked deletes for large batches via `options.batch`.
|
|
98
|
+
* Note: batching breaks transactional properties because chunks are removed independently.
|
|
99
|
+
*/
|
|
100
|
+
removeById: ((idOrIds, options) => {
|
|
101
|
+
const ids = asReadonlyArray(idOrIds);
|
|
102
|
+
if (!Array.isReadonlyArrayNonEmpty(ids)) {
|
|
103
|
+
return Effect.void;
|
|
104
|
+
}
|
|
105
|
+
const batchSize = getBatchSize(options?.batch);
|
|
106
|
+
if (batchSize === undefined) {
|
|
107
|
+
return repo.removeById(ids);
|
|
108
|
+
}
|
|
109
|
+
return Effect.forEach(Array.chunksOf(ids, batchSize), (batch) => repo.removeById(batch), { discard: true });
|
|
110
|
+
}),
|
|
111
|
+
queryAndSavePure,
|
|
112
|
+
saveManyWithPure,
|
|
113
|
+
byIdAndSaveWithPure,
|
|
114
|
+
saveWithPure: (item, pure) => saveAllWithEffectInt(runTerm(pure, item)
|
|
115
|
+
.pipe(Effect.map(([item, events, a]) => [[item], events, a])))
|
|
116
|
+
};
|
|
117
|
+
return {
|
|
118
|
+
...repo,
|
|
119
|
+
...exts
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL01vZGVsL1JlcG9zaXRvcnkvZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx3REFBd0Q7QUFDeEQsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUE7QUFDbkMsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEtBQUssZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBQ3pELE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkMsT0FBTyxFQUEwQixhQUFhLEVBQXVDLE1BQU0sd0JBQXdCLENBQUE7QUFDbkgsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3pDLE9BQU8sRUFBNkIsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFHdEMsT0FBTyxLQUFLLENBQUMsTUFBTSxhQUFhLENBQUE7QUFPaEMsTUFBTSxlQUFlLEdBQUcsQ0FBSSxXQUFpQyxFQUFvQixFQUFFLENBQ2pGLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNuQyxDQUFDLENBQUMsV0FBK0I7SUFDakMsQ0FBQyxDQUFDLENBQUMsV0FBZ0IsQ0FBQyxDQUFBO0FBRXhCLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQzdDLEtBQUssS0FBSyxJQUFJO0lBQ1osQ0FBQyxDQUFDLEdBQUc7SUFDTCxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUM7UUFDbEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFD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
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { NonEmptyReadonlyArray } from "../../../Array.js";
|
|
2
|
+
import * as Context from "../../../Context.js";
|
|
3
|
+
import * as Effect from "../../../Effect.js";
|
|
4
|
+
import * as S from "../../../Schema.js";
|
|
5
|
+
import { type PersistenceModelType, type StoreConfig, StoreMaker } from "../../../Store.js";
|
|
6
|
+
import type { FieldValues } from "../../filter/types.js";
|
|
7
|
+
import * as Q from "../../query.js";
|
|
8
|
+
import type { Repository } from "../service.js";
|
|
9
|
+
/**
|
|
10
|
+
* A base implementation to create a repository.
|
|
11
|
+
*/
|
|
12
|
+
export declare function makeRepoInternal<Evt = never>(): <ItemType extends string, R, Encoded extends FieldValues, T, IdKey extends keyof T & keyof Encoded>(name: ItemType, schema: S.Codec<T, Encoded, R>, mapFrom: (pm: Encoded) => Encoded, mapTo: (e: Encoded, etag: string | undefined) => PersistenceModelType<Encoded>, idKey: IdKey) => {
|
|
13
|
+
make: <RInitial = never, E = never, RPublish = never, RCtx = never>(args: [Evt] extends [never] ? {
|
|
14
|
+
schemaContext?: Context.Context<RCtx>;
|
|
15
|
+
makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined;
|
|
16
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
17
|
+
partitionValue?: (e?: Encoded) => string;
|
|
18
|
+
};
|
|
19
|
+
} : {
|
|
20
|
+
schemaContext?: Context.Context<RCtx>;
|
|
21
|
+
publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect.Effect<void, never, RPublish>;
|
|
22
|
+
makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined;
|
|
23
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
24
|
+
partitionValue?: (e?: Encoded) => string;
|
|
25
|
+
};
|
|
26
|
+
}) => Effect.Effect<Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<R, RCtx>, RPublish, RCtx>, E, R | RInitial | StoreMaker>;
|
|
27
|
+
Q: Q.Query<Encoded>;
|
|
28
|
+
};
|
|
29
|
+
export declare function makeStore<Encoded extends FieldValues>(): <ItemType extends string, R, E, T, IdKey extends keyof Encoded>(name: ItemType, schema: S.Codec<T, E, R>, mapTo: (e: E, etag: string | undefined) => Encoded, idKey: IdKey) => <RInitial = never, EInitial = never>(makeInitial?: Effect.Effect<readonly T[], EInitial, RInitial>, config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
30
|
+
partitionValue?: (e?: Encoded) => string;
|
|
31
|
+
}) => Effect.Effect<import("../../../Store.js").Store<IdKey, Encoded, PersistenceModelType<Encoded>>, EInitial, R | RInitial | StoreMaker>;
|
|
32
|
+
export interface Repos<T, Encoded extends {
|
|
33
|
+
id: string;
|
|
34
|
+
}, RSchema, Evt, ItemType extends string, IdKey extends keyof T, RPublish> {
|
|
35
|
+
make<RInitial = never, E = never, R2 = never>(args: [Evt] extends [never] ? {
|
|
36
|
+
makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined;
|
|
37
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
38
|
+
partitionValue?: (e?: Encoded) => string;
|
|
39
|
+
};
|
|
40
|
+
} : {
|
|
41
|
+
publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect.Effect<void, never, R2>;
|
|
42
|
+
makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined;
|
|
43
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
44
|
+
partitionValue?: (e?: Encoded) => string;
|
|
45
|
+
};
|
|
46
|
+
}): Effect.Effect<Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish>, E, StoreMaker | RInitial | R2>;
|
|
47
|
+
makeWith<Out, RInitial = never, E = never, R2 = never>(args: [Evt] extends [never] ? {
|
|
48
|
+
makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined;
|
|
49
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
50
|
+
partitionValue?: (e?: Encoded) => string;
|
|
51
|
+
};
|
|
52
|
+
} : {
|
|
53
|
+
publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect.Effect<void, never, R2>;
|
|
54
|
+
makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined;
|
|
55
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
56
|
+
partitionValue?: (e?: Encoded) => string;
|
|
57
|
+
};
|
|
58
|
+
}, f: (r: Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish>) => Out): Effect.Effect<Out, E, StoreMaker | RInitial | R2>;
|
|
59
|
+
readonly Q: ReturnType<typeof Q.make<Encoded>>;
|
|
60
|
+
readonly type: Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Nb2RlbC9SZXBvc2l0b3J5L2ludGVybmFsL2ludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFJOUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQTtBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLG9CQUFvQixDQUFBO0FBRzVDLE9BQU8sS0FBSyxDQUFDLE1BQU0sb0JBQW9CLENBQUE7QUFFdkMsT0FBTyxFQUErQixLQUFLLG9CQUFvQixFQUFFLEtBQUssV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3hILE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3hELE9BQU8sS0FBSyxDQUFDLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkMsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSy9DOztHQUVHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUM5QixHQUFHLEdBQUcsS0FBSyxNQUdULFFBQVEsU0FBUyxNQUFNLEVBQ3ZCLENBQUMsRUFDRCxPQUFPLFNBQVMsV0FBVyxFQUMzQixDQUFDLEVBQ0QsS0FBSyxTQUFTLE1BQU0sQ0FBQyxHQUFHLE1BQU0sT0FBTyxRQUUvQixRQUFRLFVBQ04sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxXQUNyQixDQUFDLEVBQUUsRUFBRSxPQUFPLEtBQUssT0FBTyxTQUMxQixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxTQUFTLEtBQUssb0JBQW9CLENBQUMsT0FBTyxDQUFDLFNBQ3ZFLEtBQUs7V0FvQkUsUUFBUSxVQUFVLENBQUMsVUFBVSxRQUFRLFVBQVUs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../src/Model/Repository/internal/internal.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAI9D,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAG5C,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAEvC,OAAO,EAA+B,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACxH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAK/C;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAG,KAAK,MAGT,QAAQ,SAAS,MAAM,EACvB,CAAC,EACD,OAAO,SAAS,WAAW,EAC3B,CAAC,EACD,KAAK,SAAS,MAAM,CAAC,GAAG,MAAM,OAAO,QAE/B,QAAQ,UACN,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,WACrB,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,SAC1B,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,oBAAoB,CAAC,OAAO,CAAC,SACvE,KAAK;WAoBE,QAAQ,UAAU,CAAC,UAAU,QAAQ,UAAU,IAAI,gBACzD,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;QAC1B,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAA;QAClE,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG;YACtD,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;SACzC,CAAA;KACF,GACC;QACA,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,aAAa,EAAE,CAAC,GAAG,EAAE,qBAAqB,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QACxF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAA;QAClE,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG;YACtD,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;SACzC,CAAA;KACF;;EA6fR;AASD,wBAAgB,SAAS,CAAC,OAAO,SAAS,WAAW,MAEjD,QAAQ,SAAS,MAAM,EACvB,CAAC,EACD,CAAC,EACD,CAAC,EACD,KAAK,SAAS,MAAM,OAAO,QAErB,QAAQ,UACN,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SACjB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,SAC3C,KAAK,MAEO,QAAQ,UAAU,QAAQ,wBAC7B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,WACpD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG;IACtD,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;CACzC,0IAgDN;AAED,MAAM,WAAW,KAAK,CACpB,CAAC,EACD,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC9B,OAAO,EACP,GAAG,EACH,QAAQ,SAAS,MAAM,EACvB,KAAK,SAAS,MAAM,CAAC,EACrB,QAAQ;IAER,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAC1C,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAA;QAClE,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG;YACtD,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;SACzC,CAAA;KACF,GACC;QACA,aAAa,EAAE,CAAC,GAAG,EAAE,qBAAqB,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QAClF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAA;QAClE,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG;YACtD,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;SACzC,CAAA;KACF,GACF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAA;IAChH,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EACnD,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAA;QAClE,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG;YACtD,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;SACzC,CAAA;KACF,GACC;QACA,aAAa,EAAE,CAAC,GAAG,EAAE,qBAAqB,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QAClF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAA;QAClE,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG;YACtD,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;SACzC,CAAA;KACF,EACH,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,GAAG,GAC7E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAA;IACpD,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;CAC/E"}
|