@effect-app/infra 2.44.1 → 2.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/Model/Repository/internal/internal.d.ts +2 -2
- package/dist/QueueMaker/SQLQueue.d.ts +1 -1
- package/dist/QueueMaker/memQueue.d.ts +1 -1
- package/dist/QueueMaker/sbqueue.d.ts +3 -3
- package/dist/RequestContext.d.ts +4 -2
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +4 -3
- package/dist/Store/ContextMapContainer.d.ts +5 -2
- package/dist/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/Store/ContextMapContainer.js +8 -5
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +3 -3
- package/dist/Store/Memory.d.ts +5 -2
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +5 -4
- package/dist/adapters/logger.d.ts.map +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
- package/dist/api/internal/events.d.ts +1 -1
- package/dist/api/internal/events.d.ts.map +1 -1
- package/dist/api/setupRequest.d.ts +3 -2
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +14 -15
- package/dist/logger/jsonLogger.js +3 -3
- package/dist/logger/logFmtLogger.js +3 -3
- package/dist/logger/shared.d.ts +1 -1
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +4 -4
- package/dist/logger.d.ts.map +1 -1
- package/package.json +11 -11
- package/src/RequestContext.ts +2 -2
- package/src/Store/ContextMapContainer.ts +7 -5
- package/src/Store/Disk.ts +2 -2
- package/src/Store/Memory.ts +5 -3
- package/src/api/setupRequest.ts +18 -19
- package/src/logger/jsonLogger.ts +2 -2
- package/src/logger/logFmtLogger.ts +2 -2
- package/src/logger/shared.ts +3 -3
- package/test/dist/controller.test copy.d.ts +169 -0
- package/test/dist/controller.test copy.d.ts.map +1 -0
- package/test/dist/controller.test copy.js +46 -23
- package/test/dist/controller6.test.d.ts.map +1 -1
- package/test/dist/controller7.test.d.ts.map +1 -1
- package/test/dist/controller5.test.d.ts.map +0 -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 +0 -37
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.45.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
"change-case": "^5.4.4",
|
|
9
9
|
"cross-fetch": "^4.1.0",
|
|
10
10
|
"express-oauth2-jwt-bearer": "^1.6.0",
|
|
11
|
-
"fast-check": "~
|
|
11
|
+
"fast-check": "~4.0.0",
|
|
12
12
|
"path-parser": "^6.1.0",
|
|
13
13
|
"proper-lockfile": "^4.1.2",
|
|
14
14
|
"pure-rand": "7.0.1",
|
|
15
15
|
"query-string": "^9.1.1",
|
|
16
|
-
"effect-app": "2.
|
|
16
|
+
"effect-app": "2.34.0"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@azure/cosmos": "^4.2.0",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"babel-plugin-replace-import-extension": "^1.1.5",
|
|
27
27
|
"@sentry/node": "^9.5.0",
|
|
28
28
|
"@types/express": "^5.0.0",
|
|
29
|
-
"@types/node": "~22.13.
|
|
29
|
+
"@types/node": "~22.13.10",
|
|
30
30
|
"@types/proper-lockfile": "^4.1.4",
|
|
31
31
|
"@types/redis": "^2.8.32",
|
|
32
32
|
"@types/redlock": "^4.0.7",
|
|
@@ -43,17 +43,17 @@
|
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@azure/cosmos": "^4.2.0",
|
|
45
45
|
"@azure/service-bus": "^7.9.5",
|
|
46
|
-
"@effect/experimental": "^0.
|
|
47
|
-
"@effect/platform": "^0.
|
|
48
|
-
"@effect/rpc-http": "^0.
|
|
49
|
-
"@effect/rpc": "^0.
|
|
50
|
-
"@effect/sql": "^0.
|
|
51
|
-
"@effect/vitest": "^0.19.
|
|
46
|
+
"@effect/experimental": "^0.43.1",
|
|
47
|
+
"@effect/platform": "^0.79.1",
|
|
48
|
+
"@effect/rpc-http": "^0.52.1",
|
|
49
|
+
"@effect/rpc": "^0.54.1",
|
|
50
|
+
"@effect/sql": "^0.32.1",
|
|
51
|
+
"@effect/vitest": "^0.19.8",
|
|
52
52
|
"@sendgrid/helpers": "^8.0.0",
|
|
53
53
|
"@sendgrid/mail": "^8.1.4",
|
|
54
54
|
"redis": "^3.1.2",
|
|
55
55
|
"redlock": "^4.2.0",
|
|
56
|
-
"effect": "^3.13.
|
|
56
|
+
"effect": "^3.13.10",
|
|
57
57
|
"express": "^4.21.2"
|
|
58
58
|
},
|
|
59
59
|
"typesVersions": {
|
package/src/RequestContext.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Context, S } from "effect-app"
|
|
2
2
|
import { UserProfileId } from "effect-app/ids"
|
|
3
3
|
import { NonEmptyString255 } from "effect-app/Schema"
|
|
4
4
|
|
|
5
5
|
export const Locale = S.Literal("en", "de")
|
|
6
6
|
export type Locale = typeof Locale.Type
|
|
7
7
|
|
|
8
|
-
export
|
|
8
|
+
export class LocaleRef extends Context.Reference<LocaleRef>()("Locale", { defaultValue: (): Locale => "en" }) {}
|
|
9
9
|
|
|
10
10
|
export class RequestContext extends S.ExtendedClass<
|
|
11
11
|
RequestContext,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Data, Effect,
|
|
1
|
+
import { Context, Data, Effect, Layer } from "effect-app"
|
|
2
2
|
import { ContextMap } from "./service.js"
|
|
3
3
|
|
|
4
4
|
// TODO: we have to create a new contextmap on every request.
|
|
@@ -7,12 +7,14 @@ import { ContextMap } from "./service.js"
|
|
|
7
7
|
// we can call another start after startup. but it would be even better if we could Die on accessing rootmap
|
|
8
8
|
// we could also make the ContextMap optional, and when missing, issue a warning instead?
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
export class ContextMapContainer extends Context.Reference<ContextMapContainer>()("ContextMapContainer", {
|
|
11
|
+
defaultValue: (): ContextMap | "root" => "root"
|
|
12
|
+
}) {
|
|
13
|
+
static readonly layer = Layer.effect(this, ContextMap.make)
|
|
14
|
+
}
|
|
11
15
|
|
|
12
16
|
export class ContextMapNotStartedError extends Data.TaggedError("ContextMapNotStartedError") {}
|
|
13
17
|
|
|
14
|
-
export const getContextMap =
|
|
18
|
+
export const getContextMap = ContextMapContainer.pipe(
|
|
15
19
|
Effect.filterOrFail((_) => _ !== "root", () => new ContextMapNotStartedError())
|
|
16
20
|
)
|
|
17
|
-
|
|
18
|
-
export const startContextMap = Effect.flatMap(ContextMap.make, (_) => FiberRef.set(ContextMapContainer, _))
|
package/src/Store/Disk.ts
CHANGED
|
@@ -3,7 +3,7 @@ import * as fu from "../fileUtil.js"
|
|
|
3
3
|
|
|
4
4
|
import fs from "fs"
|
|
5
5
|
|
|
6
|
-
import { Console, Effect,
|
|
6
|
+
import { Console, Effect, flow } from "effect-app"
|
|
7
7
|
import type { FieldValues } from "../Model/filter/types.js"
|
|
8
8
|
import { makeMemoryStoreInt, storeId } from "./Memory.js"
|
|
9
9
|
import type { PersistenceModelType, StorageConfig, Store, StoreConfig } from "./service.js"
|
|
@@ -137,7 +137,7 @@ export function makeDiskStore({ prefix }: StorageConfig, dir: string) {
|
|
|
137
137
|
const ctx = yield* Effect.context<R>()
|
|
138
138
|
const getStore = !config?.allowNamespace
|
|
139
139
|
? Effect.succeed(primary)
|
|
140
|
-
:
|
|
140
|
+
: storeId.pipe(Effect.flatMap((namespace) => {
|
|
141
141
|
const store = stores.get(namespace)
|
|
142
142
|
if (store) {
|
|
143
143
|
return Effect.succeed(store)
|
package/src/Store/Memory.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
|
|
3
|
-
import { Array,
|
|
3
|
+
import { Array, Context, Effect, flow, Option, Order, pipe, Ref, Struct } from "effect-app"
|
|
4
4
|
import type { NonEmptyReadonlyArray } from "effect-app"
|
|
5
5
|
import { NonEmptyString255 } from "effect-app/Schema"
|
|
6
6
|
import { get } from "effect-app/utils"
|
|
@@ -58,7 +58,9 @@ export function memFilter<T extends FieldValues, U extends keyof T = never>(f: F
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
const defaultNs = NonEmptyString255("primary")
|
|
61
|
-
export
|
|
61
|
+
export class storeId
|
|
62
|
+
extends Context.Reference<storeId>()("StoreId", { defaultValue: (): NonEmptyString255 => defaultNs })
|
|
63
|
+
{}
|
|
62
64
|
|
|
63
65
|
function logQuery(f: FilterArgs<any, any>, defaultValues?: any) {
|
|
64
66
|
return InfraLogger
|
|
@@ -232,7 +234,7 @@ export const makeMemoryStore = () => ({
|
|
|
232
234
|
const stores = new Map([["primary", primary]])
|
|
233
235
|
const getStore = !config?.allowNamespace
|
|
234
236
|
? Effect.succeed(primary)
|
|
235
|
-
:
|
|
237
|
+
: storeId.pipe(Effect.flatMap((namespace) => {
|
|
236
238
|
const store = stores.get(namespace)
|
|
237
239
|
if (store) {
|
|
238
240
|
return Effect.succeed(store)
|
package/src/api/setupRequest.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Effect,
|
|
1
|
+
import { Effect, Layer, Tracer } from "effect-app"
|
|
2
2
|
import { NonEmptyString255 } from "effect-app/Schema"
|
|
3
3
|
import { LocaleRef, RequestContext, spanAttributes } from "../RequestContext.js"
|
|
4
|
-
import {
|
|
4
|
+
import { ContextMapContainer } from "../Store/ContextMapContainer.js"
|
|
5
5
|
import { storeId } from "../Store/Memory.js"
|
|
6
6
|
|
|
7
7
|
export const getRequestContext = Effect
|
|
8
8
|
.all({
|
|
9
9
|
span: Effect.currentSpan.pipe(Effect.orDie),
|
|
10
|
-
locale:
|
|
11
|
-
namespace:
|
|
10
|
+
locale: LocaleRef,
|
|
11
|
+
namespace: storeId
|
|
12
12
|
})
|
|
13
13
|
.pipe(
|
|
14
14
|
Effect.map(({ locale, namespace, span }) =>
|
|
@@ -23,8 +23,8 @@ export const getRequestContext = Effect
|
|
|
23
23
|
)
|
|
24
24
|
|
|
25
25
|
export const getRC = Effect.all({
|
|
26
|
-
locale:
|
|
27
|
-
namespace:
|
|
26
|
+
locale: LocaleRef,
|
|
27
|
+
namespace: storeId
|
|
28
28
|
})
|
|
29
29
|
|
|
30
30
|
const withRequestSpan = (name = "request", options?: Tracer.SpanOptions) => <R, E, A>(f: Effect<A, E, R>) =>
|
|
@@ -43,26 +43,25 @@ const withRequestSpan = (name = "request", options?: Tracer.SpanOptions) => <R,
|
|
|
43
43
|
)
|
|
44
44
|
)
|
|
45
45
|
|
|
46
|
-
const setupContextMap = startContextMap.pipe(Layer.effectDiscard)
|
|
47
|
-
|
|
48
46
|
export const setupRequestContextFromCurrent =
|
|
49
47
|
(name = "request", options?: Tracer.SpanOptions) => <R, E, A>(self: Effect<A, E, R>) =>
|
|
50
48
|
self
|
|
51
49
|
.pipe(
|
|
52
50
|
withRequestSpan(name, options),
|
|
53
|
-
Effect.provide(
|
|
51
|
+
Effect.provide(ContextMapContainer.layer)
|
|
54
52
|
)
|
|
55
53
|
|
|
56
54
|
// TODO: consider integrating Effect.withParentSpan
|
|
57
55
|
export function setupRequestContext<R, E, A>(self: Effect<A, E, R>, requestContext: RequestContext) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
)
|
|
67
|
-
|
|
56
|
+
const layer = ContextMapContainer.layer.pipe(
|
|
57
|
+
Layer.provide([
|
|
58
|
+
Layer.succeed(LocaleRef, requestContext.locale),
|
|
59
|
+
Layer.succeed(storeId, requestContext.namespace)
|
|
60
|
+
])
|
|
61
|
+
)
|
|
62
|
+
return self
|
|
63
|
+
.pipe(
|
|
64
|
+
withRequestSpan(requestContext.name),
|
|
65
|
+
Effect.provide(layer)
|
|
66
|
+
)
|
|
68
67
|
}
|
package/src/logger/jsonLogger.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Cause, FiberId, HashMap, List, Logger } from "effect-app"
|
|
2
2
|
import { spanAttributes } from "../RequestContext.js"
|
|
3
|
-
import {
|
|
3
|
+
import { getRequestContextFromCurrentContext } from "./shared.js"
|
|
4
4
|
|
|
5
5
|
export const jsonLogger = Logger.make<unknown, void>(
|
|
6
6
|
({ annotations, cause, context, fiberId, logLevel, message, spans }) => {
|
|
7
7
|
const now = new Date()
|
|
8
8
|
const nowMillis = now.getTime()
|
|
9
9
|
|
|
10
|
-
const request =
|
|
10
|
+
const request = getRequestContextFromCurrentContext(context)
|
|
11
11
|
|
|
12
12
|
const data = {
|
|
13
13
|
timestamp: now,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { HashMap, Logger } from "effect-app"
|
|
2
2
|
import { spanAttributes } from "../RequestContext.js"
|
|
3
|
-
import {
|
|
3
|
+
import { getRequestContextFromCurrentContext } from "./shared.js"
|
|
4
4
|
|
|
5
5
|
export const logfmtLogger = Logger.make<unknown, void>(
|
|
6
6
|
(_) => {
|
|
7
7
|
let { annotations } = _
|
|
8
|
-
const requestContext =
|
|
8
|
+
const requestContext = getRequestContextFromCurrentContext(_.context)
|
|
9
9
|
if (requestContext && requestContext.name !== "_root_") {
|
|
10
10
|
annotations = HashMap.make(...[
|
|
11
11
|
...annotations,
|
package/src/logger/shared.ts
CHANGED
|
@@ -4,11 +4,11 @@ import * as FiberRefs from "effect/FiberRefs"
|
|
|
4
4
|
import { LocaleRef, RequestContext } from "../RequestContext.js"
|
|
5
5
|
import { storeId } from "../Store/Memory.js"
|
|
6
6
|
|
|
7
|
-
export function
|
|
7
|
+
export function getRequestContextFromCurrentContext(fiberRefs: FiberRefs.FiberRefs) {
|
|
8
8
|
const context = FiberRefs.getOrDefault(fiberRefs, FiberRef.currentContext)
|
|
9
9
|
const span = Context.getOption(context, Tracer.ParentSpan)
|
|
10
|
-
const locale =
|
|
11
|
-
const namespace =
|
|
10
|
+
const locale = Context.get(context, LocaleRef)
|
|
11
|
+
const namespace = Context.get(context, storeId)
|
|
12
12
|
return new RequestContext({
|
|
13
13
|
span: Option.map(span, Tracer.externalSpan).pipe(
|
|
14
14
|
Option.getOrElse(() => ({ spanId: "bogus", sampled: true, traceId: "bogus" }))
|
|
@@ -0,0 +1,169 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
2
|
+
import { makeMiddleware, makeRouter } from "@effect-app/infra/api/routing";
|
|
2
3
|
import { Rpc } from "@effect/rpc";
|
|
3
4
|
import { Context, Effect, FiberRef, Layer, S, Schedule } from "effect-app";
|
|
4
5
|
import { makeRpcClient, UnauthorizedError } from "effect-app/client";
|
|
5
6
|
import { HttpHeaders, HttpServerRequest } from "effect-app/http";
|
|
6
|
-
import {
|
|
7
|
+
import { it } from "vitest";
|
|
7
8
|
const optimisticConcurrencySchedule = Schedule.once
|
|
8
9
|
&& Schedule.recurWhile((a) => a?._tag === "OptimisticConcurrencyException");
|
|
9
10
|
const middleware = makeMiddleware({
|
|
@@ -11,11 +12,11 @@ const middleware = makeMiddleware({
|
|
|
11
12
|
// helper to deal with nested generic lmitations
|
|
12
13
|
context: null,
|
|
13
14
|
execute: Effect.gen(function* () {
|
|
14
|
-
return (
|
|
15
|
+
return (_schema, handler, moduleName) => (req) => Effect
|
|
15
16
|
.gen(function* () {
|
|
16
|
-
const headers = yield* Rpc.currentHeaders
|
|
17
|
+
// const headers = yield* Rpc.currentHeaders
|
|
17
18
|
const ctx = Context.empty();
|
|
18
|
-
const config = "config" in schema ? schema.config : undefined
|
|
19
|
+
// const config = "config" in schema ? schema.config : undefined
|
|
19
20
|
// Check JWT
|
|
20
21
|
// TODO
|
|
21
22
|
// if (!fakeLogin && !request.allowAnonymous) {
|
|
@@ -92,11 +93,11 @@ export class SomethingService extends Effect.Service()("SomethingService", {
|
|
|
92
93
|
})
|
|
93
94
|
}) {
|
|
94
95
|
}
|
|
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 });
|
|
100
101
|
return {};
|
|
101
102
|
})
|
|
102
103
|
}) {
|
|
@@ -108,22 +109,44 @@ export class SomethingService2 extends Effect.Service()("SomethingService2", {
|
|
|
108
109
|
})
|
|
109
110
|
}) {
|
|
110
111
|
}
|
|
111
|
-
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
112
|
+
it("router", () => {
|
|
113
|
+
const routes = matchFor(Something)({
|
|
114
|
+
dependencies: [
|
|
115
|
+
SomethingRepo.Default,
|
|
116
|
+
SomethingService.Default,
|
|
117
|
+
SomethingService2.Default
|
|
118
|
+
],
|
|
119
|
+
effect: Effect.gen(function* () {
|
|
120
|
+
const repo = yield* SomethingRepo;
|
|
121
|
+
const smth = yield* SomethingService;
|
|
122
|
+
const smth2 = yield* SomethingService2;
|
|
123
|
+
console.log({ repo, smth, smth2 });
|
|
124
|
+
const { GetSomething, GetSomethingElse, router } = matchFor(Something);
|
|
125
|
+
return router
|
|
126
|
+
.add(GetSomething(() => Effect.void))
|
|
127
|
+
.add(GetSomethingElse(Effect.succeed("12")));
|
|
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 });
|
|
128
151
|
});
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci50ZXN0IGNvcHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9jb250cm9sbGVyLnRlc3QgY29weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrREFBK0Q7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUUxRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRWpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxRSxPQUFPLEVBQXlCLGFBQWEsRUFBc0IsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFaEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUUzQixNQUFNLDZCQUE2QixHQUFHLFFBQVEsQ0FBQyxJQUFJO09BQzlDLFFBQVEsQ0FBQyxVQUFVLENBQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssZ0NBQWdDLENBQUMsQ0FBQTtBQVdsRixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUM7SUFDaEMsVUFBVSxFQUFFLElBQXlCO0lBQ3JDLGdEQUFnRDtJQUNoRCxPQUFPLEVBQUUsSUFBa0Q7SUFDM0QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQzNCLE9BQU8sQ0FDTCxPQUFzQyxFQUN0QyxPQUFpSCxFQUNqSCxVQUFtQixFQUNuQixFQUFFLENBQ0osQ0FDRSxHQUFRLEVBTVIsRUFBRSxDQUNGLE1BQU07YUFDSCxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ1osNENBQTRDO1lBQzVDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFL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
|
|
@@ -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;AAGtE,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAQ/G,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;2CAxEK,MAAM,CAAC,MAAM;mBAgCzC,MA9BD,CA8BC,GA9BG,KA8BH,MA5BF,CA4BE,MA5BK;mBA4BL,MA3BA,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CASqB,MAAM,CAAC,MAAM;mBACvD,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUpB,MAAM,CAAC,MAAM;mBACG,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAcjD,MAAE,CAAC,MAAM;;;;;6CAMwC,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":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAGtE,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAQ/G,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,MAAM,OAAE,QAAQ,OAAE,QAAQ,KAAiC,CAAA;AAE1E,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;2CAxCvB,MAjCD,CAiCC,MAjCM;mBACgB,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;mBAgClD,MA9BJ,CA8BI,GA9BA,KA8BA,MA5BL,CA4BK,MA5BE;;;;;;6CASC,MACV,CAkBO,MAlBA;mBAAuC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAkBnE,MATE,CASF,MATS;mBAEF,MAAI,CAAC,GAAG,KAAK,MAC9B,CAMU,MANH;;;;;;6CAYG,MAAL,CAAK,MAAE;;;;;6CAQI,MAAH,CAAG,MAAI;;;;;CA6BlB,CAAA;;;;;;;;;;AAEF,qBAAa,WAAY,SAAQ,gBAEV;CAAG;;;;;;;;;;AAE1B,qBAAa,YAAa,SAAQ,iBAET;CAAG;;;;;;;;;;AAE5B,qBAAa,aAAc,SAAQ,kBAEA;CAAG;;;;;AAItC,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;;AA0BL,wBAmBE;AAEF,eAAO,MAAM,OAAO,KAmBlB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
File without changes
|