effect-app 0.180.10 → 0.181.1
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 +12 -0
- package/_cjs/service.cjs +15 -8
- package/_cjs/service.cjs.map +1 -1
- package/_cjs/services/FiberBag.cjs.map +1 -1
- package/dist/Request.d.ts +2 -2
- package/dist/client/errors.d.ts +30 -30
- package/dist/client/fetch.d.ts +4 -4
- package/dist/service.d.ts +21 -23
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +16 -9
- package/dist/services/FiberBag.d.ts +9 -6
- package/dist/services/FiberBag.d.ts.map +1 -1
- package/dist/services/FiberBag.js +1 -1
- package/package.json +1 -1
- package/src/service.ts +28 -19
- package/src/services/FiberBag.ts +1 -1
package/CHANGELOG.md
CHANGED
package/_cjs/service.cjs
CHANGED
|
@@ -70,21 +70,28 @@ function assignTag(key, creationError) {
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
const proxify = TagClass => () => {
|
|
73
|
-
|
|
74
|
-
TagClass["$"] = new Proxy({}, {
|
|
75
|
-
get(_target, prop, _receiver) {
|
|
76
|
-
// @ts-expect-error abc
|
|
77
|
-
return _core.Effect.andThen(TagClass, s => s[prop]);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
73
|
+
const cache = new Map();
|
|
80
74
|
const done = new Proxy(TagClass, {
|
|
81
75
|
get(_target, prop, _receiver) {
|
|
76
|
+
if (prop === "use") {
|
|
77
|
+
// @ts-expect-error abc
|
|
78
|
+
return body => _core.Effect.andThen(TagClass, body);
|
|
79
|
+
}
|
|
82
80
|
if (prop in TagClass) {
|
|
83
81
|
// @ts-expect-error abc
|
|
84
82
|
return TagClass[prop];
|
|
85
83
|
}
|
|
84
|
+
if (cache.has(prop)) {
|
|
85
|
+
return cache.get(prop);
|
|
86
|
+
}
|
|
87
|
+
// @ts-expect-error abc
|
|
88
|
+
const fn = (...args) => _core.Effect.andThen(TagClass, s => s[prop](...args));
|
|
86
89
|
// @ts-expect-error abc
|
|
87
|
-
|
|
90
|
+
const cn = _core.Effect.andThen(TagClass, s => s[prop]);
|
|
91
|
+
Object.assign(fn, cn);
|
|
92
|
+
Object.setPrototypeOf(fn, Object.getPrototypeOf(cn));
|
|
93
|
+
cache.set(prop, fn);
|
|
94
|
+
return fn;
|
|
88
95
|
}
|
|
89
96
|
});
|
|
90
97
|
return done;
|
package/_cjs/service.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.cjs","names":["_core","require","ServiceTag","exports","Symbol","PhantomTypeParameter","ServiceTagged","makeService","_","make","t","i","randomId","assignTag","key","creationError","cls","tag","Context","GenericTag","fields","Reflect","ownKeys","includes","rest","Object","assign","getPrototypeOf","limit","Error","stackTraceLimit","defineProperty","get","stack","proxify","TagClass","Proxy","_target","prop","_receiver","Effect","andThen","
|
|
1
|
+
{"version":3,"file":"service.cjs","names":["_core","require","ServiceTag","exports","Symbol","PhantomTypeParameter","ServiceTagged","makeService","_","make","t","i","randomId","assignTag","key","creationError","cls","tag","Context","GenericTag","fields","Reflect","ownKeys","includes","rest","Object","assign","getPrototypeOf","limit","Error","stackTraceLimit","defineProperty","get","stack","proxify","TagClass","cache","Map","done","Proxy","_target","prop","_receiver","body","Effect","andThen","has","fn","args","s","cn","setPrototypeOf","set","TagMake","c","toLayer","Layer","effect","toLayerScoped","scoped","constructor","service","_key","eff","map","split","name","TagClassMake","TagClassId","create","wrap","TagClassMakeId","arg"],"sources":["../src/service.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiberBag.cjs","names":["_core","require","_service","make","Effect","gen","$","set","FiberSet","join","sync","pipe","tap","bag","logDebug","length","andThen","Fiber","joinAll","add","fibers","forEach","_","unsafeAdd","addAll","run","FiberBag","TagClassMakeId","Live","toLayerScoped","JoinLive","Layer","effectDiscard","provide","self"],"sources":["../../src/services/FiberBag.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,MAAME,IAAI,GAAGC,YAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;EACjC,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,cAAQ,CAACL,IAAI,EAAgB,CAAC;EACnD,MAAMM,IAAI,GAAGL,YAAM,CAACM,IAAI,CAAC,MAAM,CAAC,GAAGH,GAAG,CAAC,CAAC,CAACI,IAAI,CAC3CP,YAAM,CAACQ,GAAG,CAAEC,GAAG,IAAKT,YAAM,CAACU,QAAQ,CAAC,qBAAqB,GAAGD,GAAG,CAACE,MAAM,GAAG,SAAS,CAAC,CAAC,EACpFX,YAAM,CAACY,OAAO,CAACC,WAAK,CAACC,OAAO,CAAC,CAC9B;EACD,MAAMC,GAAG,GAAGA,CAAC,GAAGC,MAA0C,KACxDhB,YAAM,CAACM,IAAI,CAAC,MAAMU,MAAM,CAACC,OAAO,CAAEC,CAAC,IAAKd,cAAQ,CAACe,SAAS,CAAChB,GAAG,EAAEe,CAAC,CAAC,CAAC,CAAC;EACtE,MAAME,MAAM,GAAIJ,MAAmD,IACjEhB,YAAM,CAACM,IAAI,CAAC,MAAMU,MAAM,CAACC,OAAO,CAAEC,CAAC,IAAKd,cAAQ,CAACe,SAAS,CAAChB,GAAG,EAAEe,CAAC,CAAC,CAAC,CAAC;EAEtE,MAAMG,GAAG,GAAGjB,cAAQ,CAACiB,GAAG,CAAClB,GAAG,CAAC;EAE7B,OAAO;IACLE,IAAI;IACJgB,GAAG;IACHN,GAAG;IACHK;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOE,QAAS,SAAQ,IAAAC,uBAAc,EAAC,UAAU,EAAExB,IAAI,CAAC,EAAY;EACxE,OAAgByB,IAAI,GAAG,IAAI,CAACC,aAAa,EAAE;EAC3C,OAAgBC,QAAQ,GAAG,IAAI,CAACnB,IAAI,CAACP,YAAM,CAACY,OAAO,CAAEM,CAAC,IAAKA,CAAC,CAACb,IAAI,CAAC,EAAEsB,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC;EAClH,
|
|
1
|
+
{"version":3,"file":"FiberBag.cjs","names":["_core","require","_service","make","Effect","gen","$","set","FiberSet","join","sync","pipe","tap","bag","logDebug","length","andThen","Fiber","joinAll","add","fibers","forEach","_","unsafeAdd","addAll","run","FiberBag","TagClassMakeId","Live","toLayerScoped","JoinLive","Layer","effectDiscard","provide","self"],"sources":["../../src/services/FiberBag.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,MAAME,IAAI,GAAGC,YAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;EACjC,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,cAAQ,CAACL,IAAI,EAAgB,CAAC;EACnD,MAAMM,IAAI,GAAGL,YAAM,CAACM,IAAI,CAAC,MAAM,CAAC,GAAGH,GAAG,CAAC,CAAC,CAACI,IAAI,CAC3CP,YAAM,CAACQ,GAAG,CAAEC,GAAG,IAAKT,YAAM,CAACU,QAAQ,CAAC,qBAAqB,GAAGD,GAAG,CAACE,MAAM,GAAG,SAAS,CAAC,CAAC,EACpFX,YAAM,CAACY,OAAO,CAACC,WAAK,CAACC,OAAO,CAAC,CAC9B;EACD,MAAMC,GAAG,GAAGA,CAAC,GAAGC,MAA0C,KACxDhB,YAAM,CAACM,IAAI,CAAC,MAAMU,MAAM,CAACC,OAAO,CAAEC,CAAC,IAAKd,cAAQ,CAACe,SAAS,CAAChB,GAAG,EAAEe,CAAC,CAAC,CAAC,CAAC;EACtE,MAAME,MAAM,GAAIJ,MAAmD,IACjEhB,YAAM,CAACM,IAAI,CAAC,MAAMU,MAAM,CAACC,OAAO,CAAEC,CAAC,IAAKd,cAAQ,CAACe,SAAS,CAAChB,GAAG,EAAEe,CAAC,CAAC,CAAC,CAAC;EAEtE,MAAMG,GAAG,GAAGjB,cAAQ,CAACiB,GAAG,CAAClB,GAAG,CAAC;EAE7B,OAAO;IACLE,IAAI;IACJgB,GAAG;IACHN,GAAG;IACHK;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOE,QAAS,SAAQ,IAAAC,uBAAc,EAAC,UAAU,EAAExB,IAAI,CAAC,EAAY;EACxE,OAAgByB,IAAI,GAAG,IAAI,CAACC,aAAa,EAAE;EAC3C,OAAgBC,QAAQ,GAAG,IAAI,CAACnB,IAAI,CAACP,YAAM,CAACY,OAAO,CAAEM,CAAC,IAAKA,CAAC,CAACb,IAAI,CAAC,EAAEsB,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC;EAClH,OAAgBH,GAAG,GAAOS,IAA6B,IAAK,IAAI,CAACvB,IAAI,CAACP,YAAM,CAACY,OAAO,CAAEM,CAAC,IAAKA,CAAC,CAACG,GAAG,CAACS,IAAI,CAAC,CAAC,CAAC"}
|
package/dist/Request.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare const responseWithJsonBody: (response: ClientResponse) => Effect.
|
|
|
13
13
|
/**
|
|
14
14
|
* @tsplus fluent effect/platform/Http/Client schemaJsonBody
|
|
15
15
|
*/
|
|
16
|
-
export declare const schemaJsonBody: <R, To, From, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | S.ParseResult.ParseError
|
|
16
|
+
export declare const schemaJsonBody: <R, To, From, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | B | S.ParseResult.ParseError, To>;
|
|
17
17
|
/**
|
|
18
18
|
* @tsplus fluent effect/platform/Http/Client schemaJsonBodyUnsafe
|
|
19
19
|
*/
|
|
@@ -25,7 +25,7 @@ export declare const responseWithSchemaBody: <R, From extends {
|
|
|
25
25
|
readonly status?: number;
|
|
26
26
|
readonly headers?: Headers;
|
|
27
27
|
readonly body?: unknown;
|
|
28
|
-
}, To, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | S.ParseResult.ParseError
|
|
28
|
+
}, To, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | B | S.ParseResult.ParseError, {
|
|
29
29
|
body: To;
|
|
30
30
|
headers: Headers;
|
|
31
31
|
status: number;
|
package/dist/client/errors.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { S } from "../lib.js";
|
|
2
2
|
declare const NotFoundError_base: import("@effect/schema/Schema").Class<{
|
|
3
3
|
readonly _tag: "NotFoundError";
|
|
4
|
-
readonly type: string;
|
|
5
4
|
readonly id: unknown;
|
|
5
|
+
readonly type: string;
|
|
6
6
|
}, {
|
|
7
7
|
readonly _tag: "NotFoundError";
|
|
8
|
-
readonly type: string;
|
|
9
8
|
readonly id: unknown;
|
|
10
|
-
}, never, {
|
|
11
9
|
readonly type: string;
|
|
10
|
+
}, never, {
|
|
12
11
|
readonly id: unknown;
|
|
12
|
+
readonly type: string;
|
|
13
13
|
}, NotFoundError<ItemType>, {
|
|
14
14
|
type: S.Schema<string, string, never>;
|
|
15
15
|
id: S.Schema<unknown, unknown, never>;
|
|
@@ -130,16 +130,16 @@ export declare class OptimisticConcurrencyException extends OptimisticConcurrenc
|
|
|
130
130
|
message: string;
|
|
131
131
|
}, disableValidation?: boolean);
|
|
132
132
|
}
|
|
133
|
-
export declare const SupportedErrors: S.Schema<
|
|
134
|
-
readonly _tag: "
|
|
135
|
-
readonly
|
|
133
|
+
export declare const SupportedErrors: S.Schema<NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | LoginError | UnauthorizedError | OptimisticConcurrencyException, {
|
|
134
|
+
readonly _tag: "NotFoundError";
|
|
135
|
+
readonly id: unknown;
|
|
136
|
+
readonly type: string;
|
|
136
137
|
} | {
|
|
137
|
-
readonly _tag: "
|
|
138
|
+
readonly _tag: "InvalidStateError";
|
|
138
139
|
readonly message: string;
|
|
139
140
|
} | {
|
|
140
|
-
readonly _tag: "
|
|
141
|
-
readonly
|
|
142
|
-
readonly id: unknown;
|
|
141
|
+
readonly _tag: "ValidationError";
|
|
142
|
+
readonly errors: readonly unknown[];
|
|
143
143
|
} | {
|
|
144
144
|
readonly _tag: "NotLoggedInError";
|
|
145
145
|
readonly message?: string | undefined;
|
|
@@ -150,20 +150,20 @@ export declare const SupportedErrors: S.Schema<InvalidStateError | OptimisticCon
|
|
|
150
150
|
readonly _tag: "UnauthorizedError";
|
|
151
151
|
readonly message?: string | undefined;
|
|
152
152
|
} | {
|
|
153
|
-
readonly _tag: "
|
|
154
|
-
readonly
|
|
153
|
+
readonly _tag: "OptimisticConcurrencyException";
|
|
154
|
+
readonly message: string;
|
|
155
155
|
}, never>;
|
|
156
156
|
export type SupportedErrors = S.Schema.To<typeof SupportedErrors>;
|
|
157
|
-
export declare const MutationErrors: S.Schema<
|
|
158
|
-
readonly _tag: "
|
|
159
|
-
readonly
|
|
157
|
+
export declare const MutationErrors: S.Schema<NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | LoginError | UnauthorizedError | OptimisticConcurrencyException, {
|
|
158
|
+
readonly _tag: "NotFoundError";
|
|
159
|
+
readonly id: unknown;
|
|
160
|
+
readonly type: string;
|
|
160
161
|
} | {
|
|
161
|
-
readonly _tag: "
|
|
162
|
+
readonly _tag: "InvalidStateError";
|
|
162
163
|
readonly message: string;
|
|
163
164
|
} | {
|
|
164
|
-
readonly _tag: "
|
|
165
|
-
readonly
|
|
166
|
-
readonly id: unknown;
|
|
165
|
+
readonly _tag: "ValidationError";
|
|
166
|
+
readonly errors: readonly unknown[];
|
|
167
167
|
} | {
|
|
168
168
|
readonly _tag: "NotLoggedInError";
|
|
169
169
|
readonly message?: string | undefined;
|
|
@@ -173,20 +173,20 @@ export declare const MutationErrors: S.Schema<InvalidStateError | OptimisticConc
|
|
|
173
173
|
} | {
|
|
174
174
|
readonly _tag: "UnauthorizedError";
|
|
175
175
|
readonly message?: string | undefined;
|
|
176
|
-
} | {
|
|
177
|
-
readonly _tag: "ValidationError";
|
|
178
|
-
readonly errors: readonly unknown[];
|
|
179
|
-
}, never>;
|
|
180
|
-
export declare const QueryErrors: S.Schema<InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | NotLoggedInError | LoginError | UnauthorizedError | ValidationError, {
|
|
181
|
-
readonly _tag: "InvalidStateError";
|
|
182
|
-
readonly message: string;
|
|
183
176
|
} | {
|
|
184
177
|
readonly _tag: "OptimisticConcurrencyException";
|
|
185
178
|
readonly message: string;
|
|
186
|
-
}
|
|
179
|
+
}, never>;
|
|
180
|
+
export declare const QueryErrors: S.Schema<NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | LoginError | UnauthorizedError | OptimisticConcurrencyException, {
|
|
187
181
|
readonly _tag: "NotFoundError";
|
|
188
|
-
readonly type: string;
|
|
189
182
|
readonly id: unknown;
|
|
183
|
+
readonly type: string;
|
|
184
|
+
} | {
|
|
185
|
+
readonly _tag: "InvalidStateError";
|
|
186
|
+
readonly message: string;
|
|
187
|
+
} | {
|
|
188
|
+
readonly _tag: "ValidationError";
|
|
189
|
+
readonly errors: readonly unknown[];
|
|
190
190
|
} | {
|
|
191
191
|
readonly _tag: "NotLoggedInError";
|
|
192
192
|
readonly message?: string | undefined;
|
|
@@ -197,8 +197,8 @@ export declare const QueryErrors: S.Schema<InvalidStateError | OptimisticConcurr
|
|
|
197
197
|
readonly _tag: "UnauthorizedError";
|
|
198
198
|
readonly message?: string | undefined;
|
|
199
199
|
} | {
|
|
200
|
-
readonly _tag: "
|
|
201
|
-
readonly
|
|
200
|
+
readonly _tag: "OptimisticConcurrencyException";
|
|
201
|
+
readonly message: string;
|
|
202
202
|
}, never>;
|
|
203
203
|
export type MutationErrors = S.Schema.To<typeof MutationErrors>;
|
|
204
204
|
export type QueryErrors = S.Schema.To<typeof QueryErrors>;
|
package/dist/client/fetch.d.ts
CHANGED
|
@@ -16,12 +16,12 @@ export declare function fetchApi(method: Method, path: string, body?: unknown):
|
|
|
16
16
|
status: number;
|
|
17
17
|
body: unknown;
|
|
18
18
|
headers: import("@effect/platform/Http/Headers").Headers;
|
|
19
|
-
} | FetchResponse<unknown>,
|
|
19
|
+
} | FetchResponse<unknown>, NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, ApiConfig | HttpClient.Client.Default>;
|
|
20
20
|
export declare function fetchApi2S<RequestR, RequestFrom, RequestTo, ResponseR, ResponseFrom, ResponseTo>(request: Schema<RequestTo, RequestFrom, RequestR>, response: Schema<ResponseTo, ResponseFrom, ResponseR>): (method: Method, path: Path) => (req: RequestTo) => Effect.Effect<{
|
|
21
21
|
body: ResponseTo;
|
|
22
22
|
headers: Headers;
|
|
23
23
|
status: number;
|
|
24
|
-
},
|
|
24
|
+
}, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, ApiConfig | HttpClient.Client.Default | RequestR | ResponseR>;
|
|
25
25
|
export declare function fetchApi3S<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
|
|
26
26
|
Request: REST.RequestSchemed<RequestA, RequestE>;
|
|
27
27
|
Response: REST.ReqRes<ResponseA, ResponseE, any>;
|
|
@@ -29,11 +29,11 @@ export declare function fetchApi3S<RequestA, RequestE, ResponseE = unknown, Resp
|
|
|
29
29
|
body: ResponseA;
|
|
30
30
|
headers: Headers;
|
|
31
31
|
status: number;
|
|
32
|
-
},
|
|
32
|
+
}, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, any>;
|
|
33
33
|
export declare function fetchApi3SE<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
|
|
34
34
|
Request: REST.RequestSchemed<RequestA, RequestE>;
|
|
35
35
|
Response: REST.ReqRes<ResponseA, ResponseE, any>;
|
|
36
|
-
}): (req: RequestA) => Effect.Effect<FetchResponse<ResponseE>,
|
|
36
|
+
}): (req: RequestA) => Effect.Effect<FetchResponse<ResponseE>, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, any>;
|
|
37
37
|
export declare function makePathWithQuery(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
38
38
|
export declare function makePathWithBody(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
39
39
|
export declare function mapResponse<T, A>(map: (t: T) => A): (r: FetchResponse<T>) => FetchResponse<A>;
|
package/dist/service.d.ts
CHANGED
|
@@ -27,46 +27,44 @@ export declare function makeService<T extends ServiceTagged<any>>(_: Omit<T, Ser
|
|
|
27
27
|
*/
|
|
28
28
|
export declare function make<T extends ServiceTagged<any>, I = T>(_: Context.Tag<I, T>, t: Omit<T, ServiceTag>): T;
|
|
29
29
|
export declare function assignTag<Id, Service = Id>(key?: string, creationError?: Error): <S extends object>(cls: S) => S & Context.Tag<Id, Service>;
|
|
30
|
-
export type ServiceAcessorShape<Self,
|
|
31
|
-
|
|
32
|
-
[k in keyof Shape as Shape[k] extends (...args: Array<any>) => any ? never : k]: Shape[k] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, Self | R> : Effect.Effect<Shape[k], never, Self>;
|
|
33
|
-
};
|
|
30
|
+
export type ServiceAcessorShape<Self, Type> = {
|
|
31
|
+
[k in keyof Type as Type[k] extends ((...args: [...infer Args]) => infer Ret) ? ((...args: Readonly<Args>) => Ret) extends Type[k] ? k : never : k]: Type[k] extends (...args: [...infer Args]) => Effect<infer A, infer E, infer R> ? (...args: Readonly<Args>) => Effect<A, E, Self | R> : Type[k] extends (...args: [...infer Args]) => infer A ? (...args: Readonly<Args>) => Effect<A, never, Self> : Type[k] extends Effect<infer A, infer E, infer R> ? Effect<A, E, Self | R> : Effect<Type[k], never, Self>;
|
|
34
32
|
} & {
|
|
35
|
-
|
|
33
|
+
use: <X>(body: (_: Type) => X) => X extends Effect<infer A, infer E, infer R> ? Effect<A, E, R | Self> : Effect<X, never, Self>;
|
|
34
|
+
};
|
|
35
|
+
export declare const proxify: <T extends object>(TagClass: T) => <Self, Shape>() => T & { [k in keyof Shape as Shape[k] extends (...args_0: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends Shape[k] ? k : never : k]: Shape[k] extends (...args_0: infer Args_1) => Effect<infer A, infer E, infer R> ? (...args: Readonly<Args_1>) => Effect<A, E, R | Self> : Shape[k] extends (...args_0: infer Args_2) => infer A_1 ? (...args: Readonly<Args_2>) => Effect<A_1, never, Self> : Shape[k] extends Effect<infer A_2, infer E_1, infer R_1> ? Effect<A_2, E_1, R_1 | Self> : Effect<Shape[k], never, Self>; } & {
|
|
36
|
+
use: <X>(body: (_: Shape) => X) => X extends Effect<infer A_3, infer E_2, infer R_2> ? Effect<A_3, E_2, R_2 | Self> : Effect<X, never, Self>;
|
|
36
37
|
};
|
|
37
|
-
export declare const proxify: <T extends object>(TagClass: T) => <Self, Shape>() => T & {
|
|
38
|
-
$: { [k in keyof Shape as Shape[k] extends (...args: Array<any>) => any ? never : k]: Shape[k] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | Self> : Effect.Effect<Shape[k], never, Self>; };
|
|
39
|
-
} & { [k_1 in keyof Shape as Shape[k_1] extends (...args: Array<any>) => any ? k_1 : never]: Shape[k_1] extends (...args: infer Args) => Effect.Effect<infer A_1, infer E_1, infer R_1> ? (...args: Args) => Effect.Effect<A_1, E_1, R_1 | Self> : Shape[k_1] extends (...args: infer Args_1) => infer A_2 ? (...args: Args_1) => Effect.Effect<A_2, never, Self> : never; };
|
|
40
38
|
export declare const TagMake: <ServiceImpl, R, E, const Key extends string>(key: Key, make: Effect<ServiceImpl, E, R>) => <Id>() => {
|
|
41
39
|
new (): Context.TagClassShape<Key, ServiceImpl>;
|
|
42
40
|
toLayer: () => Layer<Id, E, R>;
|
|
43
41
|
toLayerScoped: () => Layer<Id, E, Exclude<R, Scope.Scope>>;
|
|
44
|
-
} & Context.Tag<Id, ServiceImpl> & {
|
|
45
|
-
|
|
46
|
-
}
|
|
42
|
+
} & Context.Tag<Id, ServiceImpl> & { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args_0: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends ServiceImpl[k] ? k : never : k]: ServiceImpl[k] extends (...args_0: infer Args_1) => Effect<infer A, infer E_1, infer R_1> ? (...args: Readonly<Args_1>) => Effect<A, E_1, R_1 | Id> : ServiceImpl[k] extends (...args_0: infer Args_2) => infer A_1 ? (...args: Readonly<Args_2>) => Effect<A_1, never, Id> : ServiceImpl[k] extends Effect<infer A_2, infer E_2, infer R_2> ? Effect<A_2, E_2, R_2 | Id> : Effect<ServiceImpl[k], never, Id>; } & {
|
|
43
|
+
use: <X>(body: (_: ServiceImpl) => X) => X extends Effect<infer A_3, infer E_3, infer R_3> ? Effect<A_3, E_3, R_3 | Id> : Effect<X, never, Id>;
|
|
44
|
+
};
|
|
47
45
|
export declare function TagClass<Id, ServiceImpl, Service = Id>(key?: string): {
|
|
48
46
|
new (service: ServiceImpl): Readonly<ServiceImpl>;
|
|
49
47
|
toLayer: <E, R>(eff: Effect<ServiceImpl, E, R>) => Layer<Id, E, R>;
|
|
50
48
|
toLayerScoped: <E_1, R_1>(eff: Effect<ServiceImpl, E_1, R_1>) => Layer<Id, E_1, Exclude<R_1, Scope.Scope>>;
|
|
51
|
-
} & Context.Tag<Id, Service> & {
|
|
52
|
-
|
|
53
|
-
}
|
|
49
|
+
} & Context.Tag<Id, Service> & { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args_0: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends ServiceImpl[k] ? k : never : k]: ServiceImpl[k] extends (...args_0: infer Args_1) => Effect<infer A, infer E_2, infer R_2> ? (...args: Readonly<Args_1>) => Effect<A, E_2, R_2 | Id> : ServiceImpl[k] extends (...args_0: infer Args_2) => infer A_1 ? (...args: Readonly<Args_2>) => Effect<A_1, never, Id> : ServiceImpl[k] extends Effect<infer A_2, infer E_3, infer R_3> ? Effect<A_2, E_3, R_3 | Id> : Effect<ServiceImpl[k], never, Id>; } & {
|
|
50
|
+
use: <X>(body: (_: ServiceImpl) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, R_4 | Id> : Effect<X, never, Id>;
|
|
51
|
+
};
|
|
54
52
|
export declare const TagClassMake: <ServiceImpl, R, E>(make: Effect<ServiceImpl, E, R>, key?: string) => <Id, Service = Id>() => {
|
|
55
53
|
new (service: ServiceImpl): Readonly<ServiceImpl>;
|
|
56
54
|
toLayer: () => Layer<Id, E, R>;
|
|
57
55
|
toLayerScoped: () => Layer<Id, E, Exclude<R, Scope.Scope>>;
|
|
58
56
|
make: Effect<Id, E, R>;
|
|
59
|
-
} & Context.Tag<Id, Service> & {
|
|
60
|
-
|
|
61
|
-
}
|
|
57
|
+
} & Context.Tag<Id, Service> & { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args_0: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends ServiceImpl[k] ? k : never : k]: ServiceImpl[k] extends (...args_0: infer Args_1) => Effect<infer A, infer E_1, infer R_1> ? (...args: Readonly<Args_1>) => Effect<A, E_1, R_1 | Id> : ServiceImpl[k] extends (...args_0: infer Args_2) => infer A_1 ? (...args: Readonly<Args_2>) => Effect<A_1, never, Id> : ServiceImpl[k] extends Effect<infer A_2, infer E_2, infer R_2> ? Effect<A_2, E_2, R_2 | Id> : Effect<ServiceImpl[k], never, Id>; } & {
|
|
58
|
+
use: <X>(body: (_: ServiceImpl) => X) => X extends Effect<infer A_3, infer E_3, infer R_3> ? Effect<A_3, E_3, R_3 | Id> : Effect<X, never, Id>;
|
|
59
|
+
};
|
|
62
60
|
export declare function TagClassId<const Key extends string>(key: Key): <Id, ServiceImpl>() => {
|
|
63
61
|
new (service: ServiceImpl): Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>;
|
|
64
62
|
toLayer: <E, R>(eff: Effect<ServiceImpl, E, R>) => Layer<Id, E, R>;
|
|
65
63
|
toLayerScoped: <E_1, R_1>(eff: Effect<ServiceImpl, E_1, R_1>) => Layer<Id, E_1, Exclude<R_1, Scope.Scope>>;
|
|
66
64
|
wrap: (service: ServiceImpl) => Id;
|
|
67
|
-
} & Context.Tag<Id, Id> & {
|
|
68
|
-
|
|
69
|
-
}
|
|
65
|
+
} & Context.Tag<Id, Id> & { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args_0: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends ServiceImpl[k] ? k : never : k]: ServiceImpl[k] extends (...args_0: infer Args_1) => Effect<infer A, infer E_2, infer R_2> ? (...args: Readonly<Args_1>) => Effect<A, E_2, R_2 | Id> : ServiceImpl[k] extends (...args_0: infer Args_2) => infer A_1 ? (...args: Readonly<Args_2>) => Effect<A_1, never, Id> : ServiceImpl[k] extends Effect<infer A_2, infer E_3, infer R_3> ? Effect<A_2, E_3, R_3 | Id> : Effect<ServiceImpl[k], never, Id>; } & {
|
|
66
|
+
use: <X>(body: (_: ServiceImpl) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, R_4 | Id> : Effect<X, never, Id>;
|
|
67
|
+
};
|
|
70
68
|
export declare const TagClassMakeId: <ServiceImpl, R, E, const Key extends string>(key: Key, make: Effect<ServiceImpl, E, R>) => <Id>() => {
|
|
71
69
|
new (service: ServiceImpl): Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>;
|
|
72
70
|
toLayer: {
|
|
@@ -79,7 +77,7 @@ export declare const TagClassMakeId: <ServiceImpl, R, E, const Key extends strin
|
|
|
79
77
|
};
|
|
80
78
|
wrap: (service: ServiceImpl) => Id;
|
|
81
79
|
make: Effect<Id, E, R>;
|
|
82
|
-
} & Context.Tag<Id, Id> & {
|
|
83
|
-
|
|
84
|
-
}
|
|
80
|
+
} & Context.Tag<Id, Id> & { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args_0: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends ServiceImpl[k] ? k : never : k]: ServiceImpl[k] extends (...args_0: infer Args_1) => Effect<infer A, infer E_3, infer R_3> ? (...args: Readonly<Args_1>) => Effect<A, E_3, R_3 | Id> : ServiceImpl[k] extends (...args_0: infer Args_2) => infer A_1 ? (...args: Readonly<Args_2>) => Effect<A_1, never, Id> : ServiceImpl[k] extends Effect<infer A_2, infer E_4, infer R_4> ? Effect<A_2, E_4, R_4 | Id> : Effect<ServiceImpl[k], never, Id>; } & {
|
|
81
|
+
use: <X>(body: (_: ServiceImpl) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, R_5 | Id> : Effect<X, never, Id>;
|
|
82
|
+
};
|
|
85
83
|
//# sourceMappingURL=service.d.ts.map
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAEzD,eAAO,MAAM,UAAU,eAAW,CAAA;AAClC,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAA;AAE1C,8BAAsB,oBAAoB,CAAC,UAAU,SAAS,MAAM,GAAG,EAAE,gBAAgB;IACvF,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;QACxC,QAAQ,EAAE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,gBAAgB,KAAK,gBAAgB;KAC1E,CAAA;CACF;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CACxE,CAAC,EACD,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CACtC,CAAA;AAED;;GAEG;AACH,8BAAsB,aAAa,CAAC,UAAU,CAAE,SAAQ,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC;CAAG;AAEnG;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,KAE/E;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,KAErG;AAKD,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,8DAuB9E;AAED,MAAM,MAAM,mBAAmB,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/service.js
CHANGED
|
@@ -53,21 +53,28 @@ export function assignTag(key, creationError) {
|
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
export const proxify = (TagClass) => () => {
|
|
56
|
-
|
|
57
|
-
TagClass["$"] = new Proxy({}, {
|
|
58
|
-
get(_target, prop, _receiver) {
|
|
59
|
-
// @ts-expect-error abc
|
|
60
|
-
return Effect.andThen(TagClass, (s) => s[prop]);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
56
|
+
const cache = new Map();
|
|
63
57
|
const done = new Proxy(TagClass, {
|
|
64
58
|
get(_target, prop, _receiver) {
|
|
59
|
+
if (prop === "use") {
|
|
60
|
+
// @ts-expect-error abc
|
|
61
|
+
return (body) => Effect.andThen(TagClass, body);
|
|
62
|
+
}
|
|
65
63
|
if (prop in TagClass) {
|
|
66
64
|
// @ts-expect-error abc
|
|
67
65
|
return TagClass[prop];
|
|
68
66
|
}
|
|
67
|
+
if (cache.has(prop)) {
|
|
68
|
+
return cache.get(prop);
|
|
69
|
+
}
|
|
70
|
+
// @ts-expect-error abc
|
|
71
|
+
const fn = (...args) => Effect.andThen(TagClass, (s) => s[prop](...args));
|
|
69
72
|
// @ts-expect-error abc
|
|
70
|
-
|
|
73
|
+
const cn = Effect.andThen(TagClass, (s) => s[prop]);
|
|
74
|
+
Object.assign(fn, cn);
|
|
75
|
+
Object.setPrototypeOf(fn, Object.getPrototypeOf(cn));
|
|
76
|
+
cache.set(prop, fn);
|
|
77
|
+
return fn;
|
|
71
78
|
}
|
|
72
79
|
});
|
|
73
80
|
return done;
|
|
@@ -177,4 +184,4 @@ export const TagClassMakeId = (key, make) => () => {
|
|
|
177
184
|
};
|
|
178
185
|
return proxify(assignTag(key, creationError)(c))();
|
|
179
186
|
};
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxpREFBaUQ7QUFDakQ7Ozs7R0FJRztBQUdILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRXpELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUdsQyxNQUFNLE9BQWdCLG9CQUFvQjtDQUl6QztBQU9EOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixhQUEwQixTQUFRLG9CQUF3QztDQUFHO0FBRW5HOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBK0IsQ0FBc0I7SUFDOUUsT0FBTyxDQUFNLENBQUE7QUFDZixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFzQyxDQUFvQixFQUFFLENBQXNCO0lBQ3BHLE9BQU8sQ0FBTSxDQUFBO0FBQ2YsQ0FBQztBQUVELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNULE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixHQUFHLENBQUMsRUFBRSxDQUFBO0FBRS9DLE1BQU0sVUFBVSxTQUFTLENBQW1CLEdBQVksRUFBRSxhQUFxQjtJQUM3RSxPQUFPLENBQW1CLEdBQU0sRUFBZ0MsRUFBRTtRQUNoRSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFjLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzlELElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQTtRQUNoQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQTtZQUM1QixN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
|
|
@@ -42,13 +42,16 @@ declare const FiberBag_base: {
|
|
|
42
42
|
}) => FiberBag;
|
|
43
43
|
make: Effect<FiberBag, never, import("effect/Scope").Scope>;
|
|
44
44
|
} & import("effect/Context").Tag<FiberBag, FiberBag> & {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
join: Effect<void, never, FiberBag>;
|
|
46
|
+
add: (...args: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, FiberBag>;
|
|
47
|
+
addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, FiberBag>;
|
|
48
48
|
} & {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
use: <X>(body: (_: {
|
|
50
|
+
join: Effect.Effect<void, never, never>;
|
|
51
|
+
run: <R, XE extends never, XA extends never>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
52
|
+
add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
53
|
+
addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
54
|
+
}) => X) => X extends Effect<infer A, infer E_2, infer R_3> ? Effect<A, E_2, R_3 | FiberBag> : Effect<X, never, FiberBag>;
|
|
52
55
|
};
|
|
53
56
|
/**
|
|
54
57
|
* Whenever you fork long running fibers e.g via `Effect.forkScoped` or `Effect.forkDaemon`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiberBag.d.ts","sourceRoot":"","sources":["../../src/services/FiberBag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,kBAAkB,CAAA
|
|
1
|
+
{"version":3,"file":"FiberBag.d.ts","sourceRoot":"","sources":["../../src/services/FiberBag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BjE;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,aAA4C;IACxE,MAAM,CAAC,QAAQ,CAAC,IAAI,gCAAuB;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAA0F;IAClH,MAAM,CAAC,QAAQ,CAAC,GAAG,6GAAsF;CAC1G"}
|
|
@@ -23,4 +23,4 @@ export class FiberBag extends TagClassMakeId("FiberBag", make)() {
|
|
|
23
23
|
static JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
|
|
24
24
|
static run = (self) => this.pipe(Effect.andThen((_) => _.run(self)));
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmliZXJCYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvRmliZXJCYWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFLOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO0lBQ2pDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFnQixDQUFDLENBQUE7SUFDbkQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMscUJBQXFCLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxFQUNwRixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDOUIsQ0FBQTtJQUNELE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxNQUEwQyxFQUFFLEVBQUUsQ0FDNUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFtRCxFQUFFLEVBQUUsQ0FDckUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFdEUsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUU3QixPQUFPO1FBQ0wsSUFBSTtRQUNKLEdBQUc7UUFDSCxHQUFHO1FBQ0gsTUFBTTtLQUNQLENBQUE7QUFDSCxDQUFDLENBQUMsQ0FBQTtBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sUUFBUyxTQUFRLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQVk7SUFDeEUsTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDM0MsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEgsTUFBTSxDQUFVLEdBQUcsR0FBRyxDQUFJLElBQTZCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEifQ==
|
package/package.json
CHANGED
package/src/service.ts
CHANGED
|
@@ -70,20 +70,22 @@ export function assignTag<Id, Service = Id>(key?: string, creationError?: Error)
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
export type ServiceAcessorShape<Self,
|
|
73
|
+
export type ServiceAcessorShape<Self, Type> =
|
|
74
74
|
& {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
:
|
|
79
|
-
|
|
75
|
+
[
|
|
76
|
+
k in keyof Type as Type[k] extends ((...args: [...infer Args]) => infer Ret)
|
|
77
|
+
? ((...args: Readonly<Args>) => Ret) extends Type[k] ? k : never
|
|
78
|
+
: k
|
|
79
|
+
]: Type[k] extends (...args: [...infer Args]) => Effect<infer A, infer E, infer R>
|
|
80
|
+
? (...args: Readonly<Args>) => Effect<A, E, Self | R>
|
|
81
|
+
: Type[k] extends (...args: [...infer Args]) => infer A ? (...args: Readonly<Args>) => Effect<A, never, Self>
|
|
82
|
+
: Type[k] extends Effect<infer A, infer E, infer R> ? Effect<A, E, Self | R>
|
|
83
|
+
: Effect<Type[k], never, Self>
|
|
80
84
|
}
|
|
81
85
|
& {
|
|
82
|
-
|
|
83
|
-
(
|
|
84
|
-
|
|
85
|
-
: Shape[k] extends (...args: infer Args) => infer A ? (...args: Args) => Effect.Effect<A, never, Self>
|
|
86
|
-
: never
|
|
86
|
+
use: <X>(
|
|
87
|
+
body: (_: Type) => X
|
|
88
|
+
) => X extends Effect<infer A, infer E, infer R> ? Effect<A, E, R | Self> : Effect<X, never, Self>
|
|
87
89
|
}
|
|
88
90
|
|
|
89
91
|
export const proxify = <T extends object>(TagClass: T) =>
|
|
@@ -91,21 +93,28 @@ export const proxify = <T extends object>(TagClass: T) =>
|
|
|
91
93
|
& T
|
|
92
94
|
& ServiceAcessorShape<Self, Shape> =>
|
|
93
95
|
{
|
|
94
|
-
|
|
95
|
-
TagClass["$"] = new Proxy({}, {
|
|
96
|
-
get(_target: any, prop: any, _receiver) {
|
|
97
|
-
// @ts-expect-error abc
|
|
98
|
-
return Effect.andThen(TagClass, (s) => s[prop])
|
|
99
|
-
}
|
|
100
|
-
})
|
|
96
|
+
const cache = new Map()
|
|
101
97
|
const done = new Proxy(TagClass, {
|
|
102
98
|
get(_target: any, prop: any, _receiver) {
|
|
99
|
+
if (prop === "use") {
|
|
100
|
+
// @ts-expect-error abc
|
|
101
|
+
return (body) => Effect.andThen(TagClass, body)
|
|
102
|
+
}
|
|
103
103
|
if (prop in TagClass) {
|
|
104
104
|
// @ts-expect-error abc
|
|
105
105
|
return TagClass[prop]
|
|
106
106
|
}
|
|
107
|
+
if (cache.has(prop)) {
|
|
108
|
+
return cache.get(prop)
|
|
109
|
+
}
|
|
110
|
+
// @ts-expect-error abc
|
|
111
|
+
const fn = (...args: Array<any>) => Effect.andThen(TagClass, (s: any) => s[prop](...args))
|
|
107
112
|
// @ts-expect-error abc
|
|
108
|
-
|
|
113
|
+
const cn = Effect.andThen(TagClass, (s) => s[prop])
|
|
114
|
+
Object.assign(fn, cn)
|
|
115
|
+
Object.setPrototypeOf(fn, Object.getPrototypeOf(cn))
|
|
116
|
+
cache.set(prop, fn)
|
|
117
|
+
return fn
|
|
109
118
|
}
|
|
110
119
|
})
|
|
111
120
|
return done
|
package/src/services/FiberBag.ts
CHANGED
|
@@ -33,5 +33,5 @@ const make = Effect.gen(function*($) {
|
|
|
33
33
|
export class FiberBag extends TagClassMakeId("FiberBag", make)<FiberBag>() {
|
|
34
34
|
static readonly Live = this.toLayerScoped()
|
|
35
35
|
static readonly JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live))
|
|
36
|
-
static
|
|
36
|
+
static readonly run = <R>(self: Effect<never, never, R>) => this.pipe(Effect.andThen((_) => _.run(self)))
|
|
37
37
|
}
|