@effect-app/infra 2.54.2 → 2.54.4
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/dist/QueueMaker/memQueue.d.ts +1 -1
- package/dist/QueueMaker/sbqueue.d.ts +2 -2
- package/dist/adapters/ServiceBus.d.ts +1 -1
- package/dist/adapters/ServiceBus.d.ts.map +1 -1
- package/dist/adapters/ServiceBus.js +16 -10
- package/package.json +2 -2
- package/src/adapters/ServiceBus.ts +45 -27
- package/test/dist/controller.test copy.js +23 -46
- package/test/dist/controller5.test.d.ts.map +1 -0
- package/test/dist/controller6.test.d.ts.map +1 -1
- package/test/dist/controller7.test.d.ts.map +1 -1
- package/vitest.config.ts.timestamp-1711656440838-19c636fe320df.mjs +0 -0
- package/vitest.config.ts.timestamp-1711724061890-6ecedb0a07fdd.mjs +0 -0
- package/vitest.config.ts.timestamp-1711743489537-da8d9e5f66c9f.mjs +0 -0
- package/vitest.config.ts.timestamp-1711744615239-dcf257a844e01.mjs +37 -0
- package/test/dist/controller.test copy.d.ts +0 -169
- package/test/dist/controller.test copy.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,6 @@ export declare function makeMemQueue<Evt extends {
|
|
|
9
9
|
_tag: string;
|
|
10
10
|
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
11
11
|
publish: (messages_0: Evt, ...messages: Evt[]) => Effect.Effect<void, never, never>;
|
|
12
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, import("../RequestContext.js").LocaleRef | import("../Store/
|
|
12
|
+
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, import("../RequestContext.js").LocaleRef | import("../Store/ContextMapContainer.js").ContextMapContainer | import("../Store/Memory.js").storeId>, Tracer.ParentSpan>>;
|
|
13
13
|
}, never, MemQueue>;
|
|
14
14
|
//# sourceMappingURL=memQueue.d.ts.map
|
|
@@ -11,6 +11,6 @@ export declare function makeServiceBusQueue<Evt extends {
|
|
|
11
11
|
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
12
12
|
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope | Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, import("../RequestContext.js").LocaleRef | import("../Store/Memory.js").storeId | import("../Store/ContextMapContainer.js").ContextMapContainer>, ServiceBusReceiverFactory>>;
|
|
13
13
|
publish: (messages_0: Evt, ...messages: Evt[]) => Effect.Effect<void, never, never>;
|
|
14
|
-
}, never,
|
|
15
|
-
export declare function makeServiceBusLayers(url: string, queueName: string, queueDrainName: string): Layer.Layer<
|
|
14
|
+
}, never, import("@azure/service-bus").ServiceBusSender | ServiceBusReceiverFactory>;
|
|
15
|
+
export declare function makeServiceBusLayers(url: string, queueName: string, queueDrainName: string): Layer.Layer<import("@azure/service-bus").ServiceBusSender | ServiceBusReceiverFactory, never, never>;
|
|
16
16
|
//# sourceMappingURL=sbqueue.d.ts.map
|
|
@@ -23,7 +23,7 @@ declare const ServiceBusReceiverFactory_base: (abstract new (service: {
|
|
|
23
23
|
use: <X>(body: (_: {
|
|
24
24
|
make: (waitTillEmpty: Effect<void>) => Effect<ServiceBusReceiver, never, Scope>;
|
|
25
25
|
makeSession: (sessionId: string, waitTillEmpty: Effect<void>) => Effect<ServiceBusReceiver, never, Scope>;
|
|
26
|
-
}) => X) => X extends Effect.Effect<infer A_1, infer E_1, infer R_3> ? Effect.Effect<A_1, E_1,
|
|
26
|
+
}) => X) => X extends Effect.Effect<infer A_1, infer E_1, infer R_3> ? Effect.Effect<A_1, E_1, ServiceBusReceiverFactory | R_3> : Effect.Effect<X, never, ServiceBusReceiverFactory>;
|
|
27
27
|
};
|
|
28
28
|
export declare class ServiceBusReceiverFactory extends ServiceBusReceiverFactory_base {
|
|
29
29
|
static readonly Live: (queueName: string) => Layer.Layer<ServiceBusReceiverFactory, never, ServiceBusClient>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceBus.d.ts","sourceRoot":"","sources":["../../src/adapters/ServiceBus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC5O,OAAO,EAAS,OAAO,EAAE,MAAM,EAAkB,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"ServiceBus.d.ts","sourceRoot":"","sources":["../../src/adapters/ServiceBus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC5O,OAAO,EAAS,OAAO,EAAE,MAAM,EAAkB,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AActF,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,gDAA0C,CAAA;AAc1F,eAAO,MAAM,MAAM,iDAA2D,CAAA;AAE9E,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,0DAG3C;;UA0BO,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;iBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;UADnG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;iBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;UADnG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;iBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;;;;;;;;;cADnG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;qBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;;AAJ3G,qBAAa,yBAA0B,SAAQ,8BAK3C;IACF,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAI,WAAW,MAAM,qEAMlC;CACR;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,sBAAsB,EAC1E,OAAO,CAAC,EAAE,oBAAoB,gDAM/B;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,qFAmD3F;AAED,MAAM,WAAW,eAAe,CAAC,IAAI,EAAE,IAAI;IACzC;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7E;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAChE"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/prefer-promise-reject-errors */
|
|
2
2
|
import { ServiceBusClient } from "@azure/service-bus";
|
|
3
3
|
import { Cause, Context, Effect, Exit, FiberSet, Layer } from "effect-app";
|
|
4
|
-
import { InfraLogger } from "
|
|
4
|
+
import { InfraLogger } from "../logger.js";
|
|
5
|
+
const withSpanAndLog = (name) => (self) => self.pipe(Effect.withLogSpan(name), Effect.withSpan(name));
|
|
5
6
|
function makeClient(url) {
|
|
6
|
-
return Effect.acquireRelease(Effect.sync(() => new ServiceBusClient(url)), (client) => Effect.promise(() => client.close()));
|
|
7
|
+
return Effect.acquireRelease(Effect.sync(() => new ServiceBusClient(url)).pipe(withSpanAndLog("ServiceBus.client.create")), (client) => Effect.promise(() => client.close()).pipe(withSpanAndLog("ServiceBus.client.close")));
|
|
7
8
|
}
|
|
8
9
|
const Client = Context.GenericTag("@services/Client");
|
|
9
10
|
export const LiveServiceBusClient = (url) => Layer.scoped(Client)(makeClient(url));
|
|
10
11
|
function makeSender(queueName) {
|
|
11
12
|
return Effect.gen(function* () {
|
|
12
13
|
const serviceBusClient = yield* Client;
|
|
13
|
-
return yield* Effect.acquireRelease(Effect.sync(() => serviceBusClient.createSender(queueName)), (
|
|
14
|
+
return yield* Effect.acquireRelease(Effect.sync(() => serviceBusClient.createSender(queueName)).pipe(withSpanAndLog(`ServiceBus.sender.create ${queueName}`)), (sender) => Effect.promise(() => sender.close()).pipe(withSpanAndLog(`ServiceBus.sender.close ${queueName}`)));
|
|
14
15
|
});
|
|
15
16
|
}
|
|
16
17
|
export const Sender = Context.GenericTag("@services/Sender");
|
|
@@ -21,9 +22,10 @@ export function LiveSender(queueName) {
|
|
|
21
22
|
function makeReceiver(queueName, waitTillEmpty, sessionId) {
|
|
22
23
|
return Effect.gen(function* () {
|
|
23
24
|
const serviceBusClient = yield* Client;
|
|
24
|
-
return yield* Effect.acquireRelease(sessionId
|
|
25
|
+
return yield* Effect.acquireRelease((sessionId
|
|
25
26
|
? Effect.promise(() => serviceBusClient.acceptSession(queueName, sessionId))
|
|
26
|
-
: Effect.sync(() => serviceBusClient.createReceiver(queueName))
|
|
27
|
+
: Effect.sync(() => serviceBusClient.createReceiver(queueName)))
|
|
28
|
+
.pipe(withSpanAndLog(`ServiceBus.receiver.create ${queueName}.${sessionId}`)), (r) => waitTillEmpty.pipe(withSpanAndLog(`ServiceBus.receiver.waitTillEmpty ${queueName}.${sessionId}`), Effect.andThen(Effect.promise(() => r.close()).pipe(withSpanAndLog(`ServiceBus.receiver.close ${queueName}.${sessionId}`))), withSpanAndLog(`ServiceBus.receiver.release ${queueName}.${sessionId}`)));
|
|
27
29
|
});
|
|
28
30
|
}
|
|
29
31
|
export class ServiceBusReceiverFactory extends Context.TagId("ServiceBusReceiverFactory")() {
|
|
@@ -43,7 +45,8 @@ export function subscribe(hndlr, sessionId) {
|
|
|
43
45
|
const rf = yield* ServiceBusReceiverFactory;
|
|
44
46
|
const fs = yield* FiberSet.make();
|
|
45
47
|
const fr = yield* FiberSet.runtime(fs)();
|
|
46
|
-
const wait = Effect
|
|
48
|
+
const wait = Effect
|
|
49
|
+
.gen(function* () {
|
|
47
50
|
if ((yield* FiberSet.size(fs)) > 0) {
|
|
48
51
|
yield* InfraLogger.logDebug("Waiting ServiceBusFiberSet to be empty: " + (yield* FiberSet.size(fs)));
|
|
49
52
|
}
|
|
@@ -63,13 +66,16 @@ export function subscribe(hndlr, sessionId) {
|
|
|
63
66
|
reject(Cause.pretty(exit.cause, { renderErrorCause: true }));
|
|
64
67
|
}
|
|
65
68
|
}));
|
|
66
|
-
yield* Effect.acquireRelease(Effect
|
|
69
|
+
yield* Effect.acquireRelease(Effect
|
|
70
|
+
.sync(() => r
|
|
71
|
+
.subscribe({
|
|
67
72
|
processError: (err) => runEffect(hndlr
|
|
68
73
|
.processError(err)
|
|
69
|
-
.pipe(Effect.catchAllCause((cause) => Effect.logError(
|
|
74
|
+
.pipe(Effect.catchAllCause((cause) => Effect.logError(`ServiceBus Error ${sessionId}`, cause)))),
|
|
70
75
|
processMessage: (msg) => runEffect(hndlr.processMessage(msg))
|
|
71
76
|
// DO NOT CATCH ERRORS here as they should return to the queue!
|
|
72
|
-
}))
|
|
77
|
+
}))
|
|
78
|
+
.pipe(withSpanAndLog(`ServiceBus.subscription.create ${sessionId}`)), (subscription) => Effect.promise(() => subscription.close()).pipe(withSpanAndLog(`ServiceBus.subscription.close ${sessionId}`)));
|
|
73
79
|
});
|
|
74
80
|
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUJ1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVycy9TZXJ2aWNlQnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxPQUFPLEVBQW9ELGdCQUFnQixFQUF1SSxNQUFNLG9CQUFvQixDQUFBO0FBQzVPLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYyxNQUFNLFlBQVksQ0FBQTtBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTFDLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFVLElBQXFCLEVBQUUsRUFBRSxDQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBRTVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDLENBQUMsRUFDN0YsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQ2pHLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBbUIsa0JBQWtCLENBQUMsQ0FBQTtBQUN2RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "2.54.
|
|
3
|
+
"version": "2.54.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@azure/service-bus": "^7.9.5",
|
|
21
21
|
"@sentry/node": "^9.14.0",
|
|
22
22
|
"@types/express": "^5.0.1",
|
|
23
|
-
"@types/node": "~22.
|
|
23
|
+
"@types/node": "~22.15.2",
|
|
24
24
|
"@types/proper-lockfile": "^4.1.4",
|
|
25
25
|
"@types/redis": "^2.8.32",
|
|
26
26
|
"@types/redlock": "^4.0.7",
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/prefer-promise-reject-errors */
|
|
2
2
|
import { type OperationOptionsBase, type ProcessErrorArgs, ServiceBusClient, type ServiceBusMessage, type ServiceBusMessageBatch, type ServiceBusReceivedMessage, type ServiceBusReceiver, type ServiceBusSender } from "@azure/service-bus"
|
|
3
3
|
import { Cause, Context, Effect, Exit, FiberSet, Layer, type Scope } from "effect-app"
|
|
4
|
-
import { InfraLogger } from "
|
|
4
|
+
import { InfraLogger } from "../logger.js"
|
|
5
|
+
|
|
6
|
+
const withSpanAndLog = (name: string) => <A, E, R>(self: Effect<A, E, R>) =>
|
|
7
|
+
self.pipe(Effect.withLogSpan(name), Effect.withSpan(name))
|
|
5
8
|
|
|
6
9
|
function makeClient(url: string) {
|
|
7
10
|
return Effect.acquireRelease(
|
|
8
|
-
Effect.sync(() => new ServiceBusClient(url)),
|
|
9
|
-
(client) => Effect.promise(() => client.close())
|
|
11
|
+
Effect.sync(() => new ServiceBusClient(url)).pipe(withSpanAndLog("ServiceBus.client.create")),
|
|
12
|
+
(client) => Effect.promise(() => client.close()).pipe(withSpanAndLog("ServiceBus.client.close"))
|
|
10
13
|
)
|
|
11
14
|
}
|
|
12
15
|
|
|
@@ -18,8 +21,10 @@ function makeSender(queueName: string) {
|
|
|
18
21
|
const serviceBusClient = yield* Client
|
|
19
22
|
|
|
20
23
|
return yield* Effect.acquireRelease(
|
|
21
|
-
Effect.sync(() => serviceBusClient.createSender(queueName))
|
|
22
|
-
|
|
24
|
+
Effect.sync(() => serviceBusClient.createSender(queueName)).pipe(
|
|
25
|
+
withSpanAndLog(`ServiceBus.sender.create ${queueName}`)
|
|
26
|
+
),
|
|
27
|
+
(sender) => Effect.promise(() => sender.close()).pipe(withSpanAndLog(`ServiceBus.sender.close ${queueName}`))
|
|
23
28
|
)
|
|
24
29
|
})
|
|
25
30
|
}
|
|
@@ -35,10 +40,18 @@ function makeReceiver(queueName: string, waitTillEmpty: Effect<void>, sessionId?
|
|
|
35
40
|
const serviceBusClient = yield* Client
|
|
36
41
|
|
|
37
42
|
return yield* Effect.acquireRelease(
|
|
38
|
-
sessionId
|
|
43
|
+
(sessionId
|
|
39
44
|
? Effect.promise(() => serviceBusClient.acceptSession(queueName, sessionId))
|
|
40
|
-
: Effect.sync(() => serviceBusClient.createReceiver(queueName))
|
|
41
|
-
|
|
45
|
+
: Effect.sync(() => serviceBusClient.createReceiver(queueName)))
|
|
46
|
+
.pipe(withSpanAndLog(`ServiceBus.receiver.create ${queueName}.${sessionId}`)),
|
|
47
|
+
(r) =>
|
|
48
|
+
waitTillEmpty.pipe(
|
|
49
|
+
withSpanAndLog(`ServiceBus.receiver.waitTillEmpty ${queueName}.${sessionId}`),
|
|
50
|
+
Effect.andThen(
|
|
51
|
+
Effect.promise(() => r.close()).pipe(withSpanAndLog(`ServiceBus.receiver.close ${queueName}.${sessionId}`))
|
|
52
|
+
),
|
|
53
|
+
withSpanAndLog(`ServiceBus.receiver.release ${queueName}.${sessionId}`)
|
|
54
|
+
)
|
|
42
55
|
)
|
|
43
56
|
})
|
|
44
57
|
}
|
|
@@ -73,12 +86,13 @@ export function subscribe<RMsg, RErr>(hndlr: MessageHandlers<RMsg, RErr>, sessio
|
|
|
73
86
|
const rf = yield* ServiceBusReceiverFactory
|
|
74
87
|
const fs = yield* FiberSet.make()
|
|
75
88
|
const fr = yield* FiberSet.runtime(fs)<RMsg | RErr>()
|
|
76
|
-
const wait = Effect
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
89
|
+
const wait = Effect
|
|
90
|
+
.gen(function*() {
|
|
91
|
+
if ((yield* FiberSet.size(fs)) > 0) {
|
|
92
|
+
yield* InfraLogger.logDebug("Waiting ServiceBusFiberSet to be empty: " + (yield* FiberSet.size(fs)))
|
|
93
|
+
}
|
|
94
|
+
while ((yield* FiberSet.size(fs)) > 0) yield* Effect.sleep("250 millis")
|
|
95
|
+
})
|
|
82
96
|
const r = yield* sessionId
|
|
83
97
|
? rf.makeSession(
|
|
84
98
|
sessionId,
|
|
@@ -99,19 +113,23 @@ export function subscribe<RMsg, RErr>(hndlr: MessageHandlers<RMsg, RErr>, sessio
|
|
|
99
113
|
})
|
|
100
114
|
)
|
|
101
115
|
yield* Effect.acquireRelease(
|
|
102
|
-
Effect
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
116
|
+
Effect
|
|
117
|
+
.sync(() =>
|
|
118
|
+
r
|
|
119
|
+
.subscribe({
|
|
120
|
+
processError: (err) =>
|
|
121
|
+
runEffect(
|
|
122
|
+
hndlr
|
|
123
|
+
.processError(err)
|
|
124
|
+
.pipe(Effect.catchAllCause((cause) => Effect.logError(`ServiceBus Error ${sessionId}`, cause)))
|
|
125
|
+
),
|
|
126
|
+
processMessage: (msg) => runEffect(hndlr.processMessage(msg))
|
|
127
|
+
// DO NOT CATCH ERRORS here as they should return to the queue!
|
|
128
|
+
})
|
|
129
|
+
)
|
|
130
|
+
.pipe(withSpanAndLog(`ServiceBus.subscription.create ${sessionId}`)),
|
|
131
|
+
(subscription) =>
|
|
132
|
+
Effect.promise(() => subscription.close()).pipe(withSpanAndLog(`ServiceBus.subscription.close ${sessionId}`))
|
|
115
133
|
)
|
|
116
134
|
})
|
|
117
135
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
2
|
-
import { makeMiddleware, makeRouter } from "@effect-app/infra/api/routing";
|
|
3
2
|
import { Rpc } from "@effect/rpc";
|
|
4
3
|
import { Context, Effect, FiberRef, Layer, S, Schedule } from "effect-app";
|
|
5
4
|
import { makeRpcClient, UnauthorizedError } from "effect-app/client";
|
|
6
5
|
import { HttpHeaders, HttpServerRequest } from "effect-app/http";
|
|
7
|
-
import {
|
|
6
|
+
import { makeMiddleware, makeRouter } from "../src/api/routing5.js";
|
|
8
7
|
const optimisticConcurrencySchedule = Schedule.once
|
|
9
8
|
&& Schedule.recurWhile((a) => a?._tag === "OptimisticConcurrencyException");
|
|
10
9
|
const middleware = makeMiddleware({
|
|
@@ -12,11 +11,11 @@ const middleware = makeMiddleware({
|
|
|
12
11
|
// helper to deal with nested generic lmitations
|
|
13
12
|
context: null,
|
|
14
13
|
execute: Effect.gen(function* () {
|
|
15
|
-
return (
|
|
14
|
+
return (schema, handler, moduleName) => (req) => Effect
|
|
16
15
|
.gen(function* () {
|
|
17
|
-
|
|
16
|
+
const headers = yield* Rpc.currentHeaders;
|
|
18
17
|
const ctx = Context.empty();
|
|
19
|
-
|
|
18
|
+
const config = "config" in schema ? schema.config : undefined;
|
|
20
19
|
// Check JWT
|
|
21
20
|
// TODO
|
|
22
21
|
// if (!fakeLogin && !request.allowAnonymous) {
|
|
@@ -93,11 +92,11 @@ export class SomethingService extends Effect.Service()("SomethingService", {
|
|
|
93
92
|
})
|
|
94
93
|
}) {
|
|
95
94
|
}
|
|
95
|
+
const c = a({ a: 5 });
|
|
96
96
|
export class SomethingRepo extends Effect.Service()("SomethingRepo", {
|
|
97
97
|
dependencies: [SomethingService.Default],
|
|
98
98
|
effect: Effect.gen(function* () {
|
|
99
99
|
const smth = yield* SomethingService;
|
|
100
|
-
console.log({ smth });
|
|
101
100
|
return {};
|
|
102
101
|
})
|
|
103
102
|
}) {
|
|
@@ -109,44 +108,22 @@ export class SomethingService2 extends Effect.Service()("SomethingService2", {
|
|
|
109
108
|
})
|
|
110
109
|
}) {
|
|
111
110
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
});
|
|
130
|
-
console.log({ routes });
|
|
131
|
-
});
|
|
132
|
-
it("router2", () => {
|
|
133
|
-
const routes2 = matchFor(Something)({
|
|
134
|
-
dependencies: [
|
|
135
|
-
SomethingRepo.Default,
|
|
136
|
-
SomethingService.Default,
|
|
137
|
-
SomethingService2.Default
|
|
138
|
-
],
|
|
139
|
-
effect: Effect.gen(function* () {
|
|
140
|
-
const repo = yield* SomethingRepo;
|
|
141
|
-
const smth = yield* SomethingService;
|
|
142
|
-
const smth2 = yield* SomethingService2;
|
|
143
|
-
console.log({ repo, smth, smth2 });
|
|
144
|
-
const { router2 } = matchFor(Something);
|
|
145
|
-
return router2
|
|
146
|
-
.GetSomething(() => Effect.void)
|
|
147
|
-
.GetSomethingElse(Effect.succeed("12"));
|
|
148
|
-
})
|
|
149
|
-
});
|
|
150
|
-
console.log({ routes2 });
|
|
111
|
+
const { handle, routes } = matchFor(Something);
|
|
112
|
+
const d = handle({
|
|
113
|
+
dependencies: [
|
|
114
|
+
SomethingRepo.Default,
|
|
115
|
+
SomethingService.Default
|
|
116
|
+
// SomethingService2.Default
|
|
117
|
+
],
|
|
118
|
+
effect: Effect.gen(function* () {
|
|
119
|
+
const repo = yield* SomethingRepo;
|
|
120
|
+
const smth = yield* SomethingService;
|
|
121
|
+
const smth2 = yield* SomethingService2;
|
|
122
|
+
const { GetSomething, GetSomethingElse } = routes;
|
|
123
|
+
return {
|
|
124
|
+
GetSomething: GetSomething(Effect.void),
|
|
125
|
+
GetSomethingElse: GetSomethingElse(Effect.succeed("12"))
|
|
126
|
+
};
|
|
127
|
+
})
|
|
151
128
|
});
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci50ZXN0IGNvcHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9jb250cm9sbGVyLnRlc3QgY29weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrREFBK0Q7QUFDL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDMUUsT0FBTyxFQUF5QixhQUFhLEVBQXNCLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0csT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFHbkUsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQUMsSUFBSTtPQUM5QyxRQUFRLENBQUMsVUFBVSxDQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLGdDQUFnQyxDQUFDLENBQUE7QUFXbEYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBQ2hDLFVBQVUsRUFBRSxJQUF5QjtJQUNyQyxnREFBZ0Q7SUFDaEQsT0FBTyxFQUFFLElBQWtEO0lBQzNELE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUMzQixPQUFPLENBQ0wsTUFBcUMsRUFDckMsT0FBaUgsRUFDakgsVUFBbUIsRUFDbkIsRUFBRSxDQUNKLENBQ0UsR0FBUSxFQU1SLEVBQUUsQ0FDRixNQUFNO2FBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUNaLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUE7WUFDekMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller5.test.d.ts","sourceRoot":"","sources":["../controller5.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAI/G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAK9D,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ,OAAE,QAAQ,KAAiC,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;2CAvElB,MACZ,CA8BO,MA9BA;mBAEqB,MAC9B,CA2BS,GA3BL,KA2BK,MA3BM,CAAC,MAAM;mBACR,MAAK,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CA0BhC,MAjBD,CAiBC,MAjBM;mBAiBN,MAhBI,CAgBJ,GAhBQ,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUT,MAAM,CAAC,MAAM;mBAAuC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MACjG;;;;;;6CAciB,MAAM,CAAC,MAAM;;;;;6CAMF,MAAM,CAAC,MAAM;;;CA4B3C,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;AAEL,eAAO,MAAM,MAAM,KAmBjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller6.test.d.ts","sourceRoot":"","sources":["../controller6.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"controller6.test.d.ts","sourceRoot":"","sources":["../controller6.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;gBA0EqxD,MAAO,KAAK;;;;;;GA1E/xD,QAAQ;;;;;;iDA0E01F,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAA6xD,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CA1EvmU,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;yCAxEE,EAAG,MAAM,CAAC,MAAM;iBAgCzC,EAAA,MA9BD,CA8BC,GA9BG,GA8BH,EAAA,MA5BF,CA4BE,MA5BK;iBA4BL,EAAA,MA3BA,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CASkB,EAAG,MAAM,CAAC,MAAM;iBAkBxD,EAjBC,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAUtB,EAAE,MAAM,CAAC,MAAM;iBACA,EAAG,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAcjD,EAAA,MAAE,CAAC,MAAM;;;;;2CAMqC,EAAG,MAAM,CAAC,MACrE;;;;;CA4BC,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller7.test.d.ts","sourceRoot":"","sources":["../controller7.test.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"controller7.test.d.ts","sourceRoot":"","sources":["../controller7.test.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// packages/infra/vitest.config.ts
|
|
2
|
+
import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.2.6_@types+node@20.11.30/node_modules/vite/dist/node/index.js";
|
|
3
|
+
|
|
4
|
+
// vite.config.base.ts
|
|
5
|
+
import path from "path";
|
|
6
|
+
import fs from "fs";
|
|
7
|
+
var __vite_injected_original_dirname = "/Users/patrickroza/pj/effect-app/libs";
|
|
8
|
+
function makeConfig(dirName) {
|
|
9
|
+
const prefix = path.resolve(__vite_injected_original_dirname, "packages");
|
|
10
|
+
const packages = fs.readdirSync(prefix).map((f) => prefix + "/" + f).filter((f) => fs.lstatSync(f).isDirectory());
|
|
11
|
+
const cfg = {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
+
//plugins: [autoImport],
|
|
14
|
+
test: {
|
|
15
|
+
include: ["./test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
|
|
16
|
+
reporters: "verbose",
|
|
17
|
+
globals: true
|
|
18
|
+
},
|
|
19
|
+
resolve: {
|
|
20
|
+
alias: packages.reduce((acc, cur) => {
|
|
21
|
+
acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, cur.endsWith("core") ? "dist" : "src");
|
|
22
|
+
return acc;
|
|
23
|
+
}, {})
|
|
24
|
+
// "@effect-app/core/Prelude": path.join(__dirname, "packages/core/src/Prelude.code.ts")
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
console.log(cfg);
|
|
28
|
+
return cfg;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// packages/infra/vitest.config.ts
|
|
32
|
+
var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/infra";
|
|
33
|
+
var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
|
|
34
|
+
export {
|
|
35
|
+
vitest_config_default as default
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50cyIsICJ2aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoX19kaXJuYW1lKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVzdC9jb25maWdcIlxuXG4vLyBjb25zdCBhdXRvSW1wb3J0ID0gQXV0b0ltcG9ydCh7XG4vLyAgIGR0czogXCIuL3Rlc3QvYXV0by1pbXBvcnRzLmQudHNcIixcbi8vICAgLy8gaW5jbHVkZTogW1xuLy8gICAvLyAgIC9cXC50ZXN0XFwuW3RqXXN4PyQvIC8vIC50cywgLnRzeCwgLmpzLCAuanN4XG4vLyAgIC8vIF0sXG4vLyAgIGltcG9ydHM6IFtcbi8vICAgICBcInZpdGVzdFwiXG4vLyAgIF1cbi8vIH0pXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1ha2VDb25maWcoZGlyTmFtZT86IHN0cmluZykge1xuICBjb25zdCBwcmVmaXggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcInBhY2thZ2VzXCIpXG4gIGNvbnN0IHBhY2thZ2VzID0gZnMucmVhZGRpclN5bmMocHJlZml4KS5tYXAoZiA9PiBwcmVmaXggKyBcIi9cIiArIGYpLmZpbHRlcihmID0+IGZzLmxzdGF0U3luYyhmKS5pc0RpcmVjdG9yeSgpIClcbiAgY29uc3QgY2ZnID0ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgLy9wbHVnaW5zOiBbYXV0b0ltcG9ydF0sXG4gICAgdGVzdDoge1xuICAgICAgaW5jbHVkZTogIFtcIi4vdGVzdC8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczogcGFja2FnZXMucmVkdWNlKChhY2MsIGN1cikgPT4geyAvLyB3b3JrYXJvdW5kIGZvciAvUHJlbHVkZSBpc3N1ZVxuICAgICAgYWNjW0pTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGN1ciArIFwiL3BhY2thZ2UuanNvblwiLCBcInV0Zi04XCIpKS5uYW1lXSA9IHBhdGgucmVzb2x2ZShjdXIsIGN1ci5lbmRzV2l0aChcImNvcmVcIikgPyBcImRpc3RcIiA6IFwic3JjXCIpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwgeyB9KSAvLyBcIkBlZmZlY3QtYXBwL2NvcmUvUHJlbHVkZVwiOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInBhY2thZ2VzL2NvcmUvc3JjL1ByZWx1ZGUuY29kZS50c1wiKVxuICB9XG4gIH1cbiAgY29uc29sZS5sb2coY2ZnKVxuICByZXR1cm4gY2ZnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixPQUFPLFVBQVU7QUFDakIsT0FBTyxRQUFRO0FBRmYsSUFBTSxtQ0FBbUM7QUFnQjFCLFNBQVIsV0FBNEIsU0FBa0I7QUFDbkQsUUFBTSxTQUFTLEtBQUssUUFBUSxrQ0FBVyxVQUFVO0FBQ2pELFFBQU0sV0FBVyxHQUFHLFlBQVksTUFBTSxFQUFFLElBQUksT0FBSyxTQUFTLE1BQU0sQ0FBQyxFQUFFLE9BQU8sT0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBRTtBQUM3RyxRQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFHVixNQUFNO0FBQUEsTUFDSixTQUFVLENBQUMsa0RBQWtEO0FBQUEsTUFDN0QsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLE9BQU8sU0FBUyxPQUFPLENBQUMsS0FBSyxRQUFRO0FBQ3JDLFlBQUksS0FBSyxNQUFNLEdBQUcsYUFBYSxNQUFNLGlCQUFpQixPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxRQUFRLEtBQUssSUFBSSxTQUFTLE1BQU0sSUFBSSxTQUFTLEtBQUs7QUFDL0gsZUFBTztBQUFBLE1BQ1QsR0FBRyxDQUFFLENBQUM7QUFBQTtBQUFBLElBQ1I7QUFBQSxFQUNBO0FBQ0EsVUFBUSxJQUFJLEdBQUc7QUFDZixTQUFPO0FBQ1Q7OztBRHBDQSxJQUFNQSxvQ0FBbUM7QUFJekMsSUFBTyx3QkFBUSxhQUFhLFdBQVdDLGlDQUFTLENBQUM7IiwKICAibmFtZXMiOiBbIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIiwgIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIl0KfQo=
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import type { RequestContext } from "@effect-app/infra/RequestContext";
|
|
2
|
-
import { Rpc } from "@effect/rpc";
|
|
3
|
-
import { Effect, Layer, S } from "effect-app";
|
|
4
|
-
import { type RPCContextMap, UnauthorizedError } from "effect-app/client";
|
|
5
|
-
import { HttpServerRequest } from "effect-app/http";
|
|
6
|
-
export interface CTX {
|
|
7
|
-
context: RequestContext;
|
|
8
|
-
}
|
|
9
|
-
export type CTXMap = {
|
|
10
|
-
requireRoles: RPCContextMap.Custom<"", never, typeof UnauthorizedError, Array<string>>;
|
|
11
|
-
};
|
|
12
|
-
export declare const matchAll: <T extends {
|
|
13
|
-
[key: string]: {
|
|
14
|
-
Router: {
|
|
15
|
-
router: Effect<import("@effect/platform/HttpRouter").HttpRouter<any, any>, any, any>;
|
|
16
|
-
};
|
|
17
|
-
routes: Layer.Layer<any, any, any>;
|
|
18
|
-
moduleName: string;
|
|
19
|
-
};
|
|
20
|
-
}, A, E, R>(handlers: T, requestLayer: Layer.Layer<A, E, R>) => {
|
|
21
|
-
layer: Layer.Layer<never, Layer.Layer.Error<T[keyof T]["routes"]>, Layer.Layer.Context<T[keyof T]["routes"]>>;
|
|
22
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<"RootRouter", "RootRouter", Effect.Effect.Success<T[keyof T]["Router"]["router"]> extends infer T_1 ? T_1 extends T_1 & Effect.Effect.Success<T[keyof T]["Router"]["router"]> ? T_1 extends import("@effect/platform/HttpRouter").HttpRouter<infer E_1, any> ? E_1 : never : never : never, R | Exclude<Effect.Effect.Success<T[keyof T]["Router"]["router"]> extends infer T_2 ? T_2 extends T_2 & Effect.Effect.Success<T[keyof T]["Router"]["router"]> ? T_2 extends import("@effect/platform/HttpRouter").HttpRouter<any, infer R_1> ? R_1 : never : never : never, A>>;
|
|
23
|
-
}, matchFor: <const ModuleName extends string, const Rsc extends Record<string, any>>(rsc: Rsc & {
|
|
24
|
-
meta: {
|
|
25
|
-
moduleName: ModuleName;
|
|
26
|
-
};
|
|
27
|
-
}) => {
|
|
28
|
-
<const Make extends {
|
|
29
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
30
|
-
effect: Effect<{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K_1], any, any>; }, any, Make["strict"] extends false ? any : Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
31
|
-
strict?: boolean;
|
|
32
|
-
readonly ಠ_ಠ: never;
|
|
33
|
-
}>(make: Make): {
|
|
34
|
-
moduleName: ModuleName;
|
|
35
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_2 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_2], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_2]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
36
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
37
|
-
};
|
|
38
|
-
<const Make extends {
|
|
39
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
40
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["strict"] extends false ? any : Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
41
|
-
strict?: boolean;
|
|
42
|
-
readonly ಠ_ಠ: never;
|
|
43
|
-
}>(make: Make): {
|
|
44
|
-
moduleName: ModuleName;
|
|
45
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
46
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
47
|
-
};
|
|
48
|
-
<const Make extends {
|
|
49
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
50
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["strict"] extends false ? any : Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
51
|
-
strict?: boolean;
|
|
52
|
-
readonly ಠ_ಠ: never;
|
|
53
|
-
}>(make: Make): {
|
|
54
|
-
moduleName: ModuleName;
|
|
55
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
56
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
57
|
-
};
|
|
58
|
-
<const Make extends {
|
|
59
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
60
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
61
|
-
strict?: boolean;
|
|
62
|
-
readonly ಠ_ಠ: never;
|
|
63
|
-
}>(make: Make): {
|
|
64
|
-
moduleName: ModuleName;
|
|
65
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
66
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
67
|
-
};
|
|
68
|
-
<const Make extends {
|
|
69
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
70
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
71
|
-
strict?: boolean;
|
|
72
|
-
}>(make: Make): {
|
|
73
|
-
moduleName: ModuleName;
|
|
74
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
75
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
76
|
-
};
|
|
77
|
-
<const Make extends {
|
|
78
|
-
dependencies: [...Make["dependencies"], ...Exclude<Effect.Effect.Context<Make["effect"]>, import("effect/Types").Contravariant.Type<import("@effect-app/infra/api/routing").MakeDeps<Make>[typeof Layer.LayerTypeId]["_ROut"]>> extends never ? [] : [Layer.Layer<Exclude<Effect.Effect.Context<Make["effect"]>, import("effect/Types").Contravariant.Type<import("@effect-app/infra/api/routing").MakeDeps<Make>[typeof Layer.LayerTypeId]["_ROut"]>>, never, never>]];
|
|
79
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, any>;
|
|
80
|
-
strict?: boolean;
|
|
81
|
-
}>(make: Make): {
|
|
82
|
-
moduleName: ModuleName;
|
|
83
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, never>;
|
|
84
|
-
routes: any;
|
|
85
|
-
};
|
|
86
|
-
} & import("@effect-app/infra/api/routing").RouteMatcher<CTXMap, Rsc, HttpServerRequest.HttpServerRequest> & {
|
|
87
|
-
router: import("@effect-app/infra/api/routing").AddAction<{ [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }], {}>;
|
|
88
|
-
router2: { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; } extends infer T extends Record<string, import("@effect-app/infra/api/routing").AnyRequestModule> ? { [K in keyof T]: import("@effect-app/infra/api/routing").Method<{ [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }, K, "d", {}>; } : never;
|
|
89
|
-
};
|
|
90
|
-
export type RequestConfig = {
|
|
91
|
-
/** Disable authentication requirement */
|
|
92
|
-
allowAnonymous?: true;
|
|
93
|
-
/** Control the roles that are required to access the resource */
|
|
94
|
-
allowRoles?: readonly string[];
|
|
95
|
-
};
|
|
96
|
-
export declare const Req: <Self>() => {
|
|
97
|
-
<Tag extends string, Payload extends S.Struct.Fields, C extends {
|
|
98
|
-
success: S.Schema.Any | S.Struct.Fields;
|
|
99
|
-
failure: S.Schema.Any | S.Struct.Fields;
|
|
100
|
-
}>(tag: Tag, fields: Payload, config: RequestConfig & C): S.TaggedRequestClass<Self, Tag, {
|
|
101
|
-
readonly _tag: S.tag<Tag>;
|
|
102
|
-
} & Payload, (RequestConfig & C)["success"] extends infer T ? T extends (RequestConfig & C)["success"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never, ([((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>] extends [never] ? [] : [((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>]) extends infer T_2 ? T_2 extends ([((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>] extends [never] ? [] : [((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>]) ? T_2 extends readonly S.Schema.All[] ? S.Union<T_2> : typeof S.Never : never : never> & {
|
|
103
|
-
config: Omit<C, "success" | "failure">;
|
|
104
|
-
};
|
|
105
|
-
<Tag extends string, Payload_1 extends S.Struct.Fields, C_1 extends {
|
|
106
|
-
success: S.Schema.Any | S.Struct.Fields;
|
|
107
|
-
}>(tag: Tag, fields: Payload_1, config: RequestConfig & C_1): S.TaggedRequestClass<Self, Tag, {
|
|
108
|
-
readonly _tag: S.tag<Tag>;
|
|
109
|
-
} & Payload_1, (RequestConfig & C_1)["success"] extends infer T ? T extends (RequestConfig & C_1)["success"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never, ([import("effect-app/client").GetEffectError<CTXMap, C_1>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_1>]) extends infer T_1 ? T_1 extends ([import("effect-app/client").GetEffectError<CTXMap, C_1>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_1>]) ? T_1 extends readonly S.Schema.All[] ? S.Union<T_1> : typeof S.Never : never : never> & {
|
|
110
|
-
config: Omit<C_1, "success" | "failure">;
|
|
111
|
-
};
|
|
112
|
-
<Tag extends string, Payload_2 extends S.Struct.Fields, C_2 extends {
|
|
113
|
-
failure: S.Schema.Any | S.Struct.Fields;
|
|
114
|
-
}>(tag: Tag, fields: Payload_2, config: RequestConfig & C_2): S.TaggedRequestClass<Self, Tag, {
|
|
115
|
-
readonly _tag: S.tag<Tag>;
|
|
116
|
-
} & Payload_2, typeof S.Void, ([((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>] extends [never] ? [] : [((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>]) extends infer T_1 ? T_1 extends ([((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>] extends [never] ? [] : [((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>]) ? T_1 extends readonly S.Schema.All[] ? S.Union<T_1> : typeof S.Never : never : never> & {
|
|
117
|
-
config: Omit<C_2, "success" | "failure">;
|
|
118
|
-
};
|
|
119
|
-
<Tag extends string, Payload_3 extends S.Struct.Fields, C_3 extends Record<string, any>>(tag: Tag, fields: Payload_3, config: C_3 & RequestConfig): S.TaggedRequestClass<Self, Tag, {
|
|
120
|
-
readonly _tag: S.tag<Tag>;
|
|
121
|
-
} & Payload_3, typeof S.Void, ([import("effect-app/client").GetEffectError<CTXMap, C_3>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_3>]) extends infer T ? T extends ([import("effect-app/client").GetEffectError<CTXMap, C_3>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_3>]) ? T extends readonly S.Schema.All[] ? S.Union<T> : typeof S.Never : never : never> & {
|
|
122
|
-
config: Omit<C_3, "success" | "failure">;
|
|
123
|
-
};
|
|
124
|
-
<Tag extends string, Payload_4 extends S.Struct.Fields>(tag: Tag, fields: Payload_4): S.TaggedRequestClass<Self, Tag, {
|
|
125
|
-
readonly _tag: S.tag<Tag>;
|
|
126
|
-
} & Payload_4, typeof S.Void, never>;
|
|
127
|
-
};
|
|
128
|
-
declare const GetSomething_base: S.TaggedRequestClass<GetSomething, "GetSomething", {
|
|
129
|
-
readonly _tag: S.tag<"GetSomething">;
|
|
130
|
-
} & {
|
|
131
|
-
id: typeof S.String;
|
|
132
|
-
}, typeof S.Void, S.Union<[typeof UnauthorizedError]>> & {
|
|
133
|
-
config: Omit<{
|
|
134
|
-
success: typeof S.Void;
|
|
135
|
-
}, "success" | "failure">;
|
|
136
|
-
};
|
|
137
|
-
export declare class GetSomething extends GetSomething_base {
|
|
138
|
-
}
|
|
139
|
-
declare const GetSomethingElse_base: S.TaggedRequestClass<GetSomethingElse, "GetSomethingElse", {
|
|
140
|
-
readonly _tag: S.tag<"GetSomethingElse">;
|
|
141
|
-
} & {
|
|
142
|
-
id: typeof S.String;
|
|
143
|
-
}, typeof S.String, S.Union<[typeof UnauthorizedError]>> & {
|
|
144
|
-
config: Omit<{
|
|
145
|
-
success: typeof S.String;
|
|
146
|
-
}, "success" | "failure">;
|
|
147
|
-
};
|
|
148
|
-
export declare class GetSomethingElse extends GetSomethingElse_base {
|
|
149
|
-
}
|
|
150
|
-
declare const SomethingService_base: import("effect/Effect").Service.Class<SomethingService, "SomethingService", {
|
|
151
|
-
readonly dependencies: readonly [];
|
|
152
|
-
readonly effect: Effect.Effect<{}, never, never>;
|
|
153
|
-
}>;
|
|
154
|
-
export declare class SomethingService extends SomethingService_base {
|
|
155
|
-
}
|
|
156
|
-
declare const SomethingRepo_base: import("effect/Effect").Service.Class<SomethingRepo, "SomethingRepo", {
|
|
157
|
-
readonly dependencies: readonly [Layer.Layer<SomethingService, never, never>];
|
|
158
|
-
readonly effect: Effect.Effect<{}, never, SomethingService>;
|
|
159
|
-
}>;
|
|
160
|
-
export declare class SomethingRepo extends SomethingRepo_base {
|
|
161
|
-
}
|
|
162
|
-
declare const SomethingService2_base: import("effect/Effect").Service.Class<SomethingService2, "SomethingService2", {
|
|
163
|
-
readonly dependencies: readonly [];
|
|
164
|
-
readonly effect: Effect.Effect<{}, never, never>;
|
|
165
|
-
}>;
|
|
166
|
-
export declare class SomethingService2 extends SomethingService2_base {
|
|
167
|
-
}
|
|
168
|
-
export {};
|
|
169
|
-
//# sourceMappingURL=controller.test%20copy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controller.test copy.d.ts","sourceRoot":"","sources":["../controller.test copy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;sBA2DnB,KACH;;;;;;GA5DwB,QAAQ;;;;;;uDAmG8B,KAAK,CAAC,GAAG;;;;;;;;;;uDAAkyD,KAAK,CAAC,GAAG;;;;;;;;;;uDAAkyD,KAAK,CAAC,GAAG;;;;;;;;;;uDAAkyD,KAAK,CAAC,GAAG;;;;;;;;;;uDAA6vD,KAAK,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;CAnG7oO,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;2CAxEM,MAAM,CAAC,MAAM;mBAgC1C,MA9BA,CAAC,GAAG,KA8BJ,MA5BD,CA4BC,MA5BM;mBA4BN,MA3BC,CAAE,GAAE,KAAM,MAAK,CAAC,MAAM;;;;;;6CASqB,MAAM,CAAC,MAAM;mBACtD,MAAK,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUpB,MAAM,CAAC,MAAM;mBACG,MAAM,CAAC,GAAG,KAAK,MAAM,CAAE,MAAK;;;;;;6CAclD,MAAG,CAAC,MAAM;;;;;6CAMwC,MAAM,CAAC,MACrE;;;CA4BA,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG"}
|