@rivetkit/effect 0.0.0-06-09-refactor-rivetkit-split-workflow-context-into-workflowcontext-workflowstepcontext.e0c9540
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/dist/Action.d.ts +104 -0
- package/dist/Action.d.ts.map +1 -0
- package/dist/Action.js +50 -0
- package/dist/Action.js.map +1 -0
- package/dist/Actor.d.ts +133 -0
- package/dist/Actor.d.ts.map +1 -0
- package/dist/Actor.js +104 -0
- package/dist/Actor.js.map +1 -0
- package/dist/Client.d.ts +31 -0
- package/dist/Client.d.ts.map +1 -0
- package/dist/Client.js +98 -0
- package/dist/Client.js.map +1 -0
- package/dist/Logger.d.ts +29 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +31 -0
- package/dist/Logger.js.map +1 -0
- package/dist/Registry.d.ts +72 -0
- package/dist/Registry.d.ts.map +1 -0
- package/dist/Registry.js +125 -0
- package/dist/Registry.js.map +1 -0
- package/dist/RivetError.d.ts +438 -0
- package/dist/RivetError.d.ts.map +1 -0
- package/dist/RivetError.js +873 -0
- package/dist/RivetError.js.map +1 -0
- package/dist/State.d.ts +123 -0
- package/dist/State.d.ts.map +1 -0
- package/dist/State.js +104 -0
- package/dist/State.js.map +1 -0
- package/dist/internal/ActionDispatcher.d.ts +14 -0
- package/dist/internal/ActionDispatcher.d.ts.map +1 -0
- package/dist/internal/ActionDispatcher.js +100 -0
- package/dist/internal/ActionDispatcher.js.map +1 -0
- package/dist/internal/ActionErrorEnvelope.d.ts +11 -0
- package/dist/internal/ActionErrorEnvelope.d.ts.map +1 -0
- package/dist/internal/ActionErrorEnvelope.js +14 -0
- package/dist/internal/ActionErrorEnvelope.js.map +1 -0
- package/dist/internal/ActorInstanceManager.d.ts +28 -0
- package/dist/internal/ActorInstanceManager.d.ts.map +1 -0
- package/dist/internal/ActorInstanceManager.js +51 -0
- package/dist/internal/ActorInstanceManager.js.map +1 -0
- package/dist/internal/ActorStateAdapter.d.ts +18 -0
- package/dist/internal/ActorStateAdapter.d.ts.map +1 -0
- package/dist/internal/ActorStateAdapter.js +29 -0
- package/dist/internal/ActorStateAdapter.js.map +1 -0
- package/dist/internal/StateOptions.d.ts +12 -0
- package/dist/internal/StateOptions.d.ts.map +1 -0
- package/dist/internal/StateOptions.js +2 -0
- package/dist/internal/StateOptions.js.map +1 -0
- package/dist/internal/logging.d.ts +23 -0
- package/dist/internal/logging.d.ts.map +1 -0
- package/dist/internal/logging.js +162 -0
- package/dist/internal/logging.js.map +1 -0
- package/dist/internal/tracing.d.ts +23 -0
- package/dist/internal/tracing.d.ts.map +1 -0
- package/dist/internal/tracing.js +30 -0
- package/dist/internal/tracing.js.map +1 -0
- package/dist/internal/utils.d.ts +7 -0
- package/dist/internal/utils.d.ts.map +1 -0
- package/dist/internal/utils.js +7 -0
- package/dist/internal/utils.js.map +1 -0
- package/dist/mod.d.ts +8 -0
- package/dist/mod.d.ts.map +1 -0
- package/dist/mod.js +8 -0
- package/dist/mod.js.map +1 -0
- package/package.json +46 -0
- package/src/Action.ts +231 -0
- package/src/Actor.test-d.ts +603 -0
- package/src/Actor.test.ts +206 -0
- package/src/Actor.ts +550 -0
- package/src/Client.test.ts +210 -0
- package/src/Client.ts +216 -0
- package/src/Logger.ts +43 -0
- package/src/Registry.test-d.ts +126 -0
- package/src/Registry.test.ts +411 -0
- package/src/Registry.ts +243 -0
- package/src/RivetError.test.ts +188 -0
- package/src/RivetError.ts +1044 -0
- package/src/State.test.ts +181 -0
- package/src/State.ts +224 -0
- package/src/internal/ActionDispatcher.ts +192 -0
- package/src/internal/ActionErrorEnvelope.ts +19 -0
- package/src/internal/ActorInstanceManager.ts +143 -0
- package/src/internal/ActorStateAdapter.ts +88 -0
- package/src/internal/StateOptions.ts +17 -0
- package/src/internal/logging.test.ts +288 -0
- package/src/internal/logging.ts +237 -0
- package/src/internal/tracing.ts +42 -0
- package/src/internal/utils.ts +12 -0
- package/src/mod.ts +7 -0
package/dist/Logger.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Effect, Logger as EffectLogger, Layer } from "effect";
|
|
2
|
+
import { BaseLogger, getOrCreateBaseLogger, makeEffectLogger, } from "./internal/logging.js";
|
|
3
|
+
/**
|
|
4
|
+
* Builds a logging layer from a custom Pino-compatible logger.
|
|
5
|
+
*
|
|
6
|
+
* The layer installs the matching Effect logger and configures the underlying
|
|
7
|
+
* RivetKit TypeScript SDK logs to go through the same logger.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { Logger } from "@rivetkit/effect"
|
|
12
|
+
* import { pino } from "pino"
|
|
13
|
+
*
|
|
14
|
+
* const LoggerLive = Logger.layerPino(
|
|
15
|
+
* pino({ transport: { target: "pino-pretty" } })
|
|
16
|
+
* )
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export const layerPino = (baseLogger) => Layer.mergeAll(Layer.succeed(BaseLogger, baseLogger), EffectLogger.layer([
|
|
20
|
+
EffectLogger.tracerLogger,
|
|
21
|
+
makeEffectLogger(baseLogger),
|
|
22
|
+
]));
|
|
23
|
+
/**
|
|
24
|
+
* Default RivetKit Effect logging layer.
|
|
25
|
+
*
|
|
26
|
+
* The layer creates a base logger from `References.MinimumLogLevel` and installs
|
|
27
|
+
* the Effect logger adapter. Applications that want custom formatting or
|
|
28
|
+
* transports should provide {@link layerPino} instead.
|
|
29
|
+
*/
|
|
30
|
+
export const layer = Layer.unwrap(Effect.map(getOrCreateBaseLogger, layerPino));
|
|
31
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,YAAY,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/D,OAAO,EACN,UAAU,EACV,qBAAqB,EACrB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAsB,EAAE,EAAE,CACnD,KAAK,CAAC,QAAQ,CACb,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EACrC,YAAY,CAAC,KAAK,CAAC;IAClB,YAAY,CAAC,YAAY;IACzB,gBAAgB,CAAC,UAAU,CAAC;CAC5B,CAAC,CACF,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAuB,KAAK,CAAC,MAAM,CACpD,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAC5C,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Context, Effect, Layer, type Scope } from "effect";
|
|
2
|
+
import { type HttpMiddleware, type HttpServerError, type HttpServerRequest, type HttpServerResponse } from "effect/unstable/http";
|
|
3
|
+
import * as Rivetkit from "rivetkit";
|
|
4
|
+
import { type Logger as PinoLogger } from "rivetkit/log";
|
|
5
|
+
import * as Client from "./Client.ts";
|
|
6
|
+
declare const TypeId = "~@rivetkit/effect/Registry";
|
|
7
|
+
type ServerlessOptions = NonNullable<Rivetkit.RegistryConfigInput<Rivetkit.RegistryActors>["serverless"]>;
|
|
8
|
+
export type Options = Pick<Rivetkit.RegistryConfigInput<Rivetkit.RegistryActors>, "endpoint" | "token" | "namespace" | "noWelcome">;
|
|
9
|
+
export interface Registry {
|
|
10
|
+
readonly [TypeId]: typeof TypeId;
|
|
11
|
+
readonly options: Options;
|
|
12
|
+
readonly baseLogger: PinoLogger;
|
|
13
|
+
readonly rivetkitActors: Map<string, Rivetkit.AnyActorDefinition>;
|
|
14
|
+
}
|
|
15
|
+
export declare const Registry: Context.Service<Registry, Registry>;
|
|
16
|
+
export declare const layer: (options?: Options) => Layer.Layer<Registry>;
|
|
17
|
+
/**
|
|
18
|
+
* Runs an actor registration layer against the configured engine.
|
|
19
|
+
*
|
|
20
|
+
* The actor layer is built in the server layer scope. Registered Rivet Actors
|
|
21
|
+
* are collected from `Registry`, materialized into a single underlying RivetKit
|
|
22
|
+
* registry, and started.
|
|
23
|
+
*/
|
|
24
|
+
export declare const serve: <E, R>(actorsLayer: Layer.Layer<never, E, R>) => Layer.Layer<never, E, R | Registry>;
|
|
25
|
+
/**
|
|
26
|
+
* In-process test runtime. Boots the rivetkit registry against the
|
|
27
|
+
* configured engine, waits for `/health` to answer, and provides
|
|
28
|
+
* `Client` from the same Layer so consumers don't need to wire
|
|
29
|
+
* `Client.layer` separately. Mirrors `Registry.start` plus test-mode
|
|
30
|
+
* flags and a scoped client dispose. The registry itself is leaked
|
|
31
|
+
* to process exit because the public rivetkit `Registry` doesn't
|
|
32
|
+
* expose a public `shutdown()` today; only the SIGINT handler can
|
|
33
|
+
* drive `#runShutdown`. This matches `setupTest`'s existing behavior.
|
|
34
|
+
*/
|
|
35
|
+
export declare const test: Layer.Layer<Client.Client, never, Registry>;
|
|
36
|
+
export type ToHttpEffectOptions = ServerlessOptions;
|
|
37
|
+
/**
|
|
38
|
+
* Builds a scoped Effect HTTP handler from a registry layer.
|
|
39
|
+
*
|
|
40
|
+
* The registry layer is built once in the surrounding scope. Registered Rivet
|
|
41
|
+
* Actors are materialized into a single underlying RivetKit registry, and each
|
|
42
|
+
* request is delegated to that registry's serverless handler.
|
|
43
|
+
*/
|
|
44
|
+
export declare const toHttpEffect: <E>(registryLayer: Layer.Layer<Registry, E, never>, options?: {
|
|
45
|
+
basePath?: string | undefined;
|
|
46
|
+
maxStartPayloadBytes?: number | undefined;
|
|
47
|
+
publicEndpoint?: string | undefined;
|
|
48
|
+
publicToken?: string | undefined;
|
|
49
|
+
} | undefined) => Effect.Effect<Effect.Effect<HttpServerResponse.HttpServerResponse, HttpServerError.HttpServerError, HttpServerRequest.HttpServerRequest>, E, Scope.Scope>;
|
|
50
|
+
export type ToWebHandlerOptions = ServerlessOptions & {
|
|
51
|
+
/**
|
|
52
|
+
* Effect HTTP middleware applied around the generated handler.
|
|
53
|
+
*/
|
|
54
|
+
readonly middleware?: HttpMiddleware.HttpMiddleware | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Memo map used while building the registry layer.
|
|
57
|
+
*/
|
|
58
|
+
readonly memoMap?: Layer.MemoMap | undefined;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Builds a Fetch-compatible request handler from a registry layer.
|
|
62
|
+
*
|
|
63
|
+
* This is the serverless entrypoint for the Effect SDK. The registry layer must
|
|
64
|
+
* provide `Registry`, usually by composing actor layers with `Registry.layer`
|
|
65
|
+
* via `Layer.provideMerge`.
|
|
66
|
+
*/
|
|
67
|
+
export declare const toWebHandler: <E>(registryLayer: Layer.Layer<Registry, E>, options?: ToWebHandlerOptions) => {
|
|
68
|
+
readonly dispose: () => Promise<void>;
|
|
69
|
+
readonly handler: (request: Request, context?: Context.Context<never> | undefined) => Promise<globalThis.Response>;
|
|
70
|
+
};
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=Registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../src/Registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAEN,KAAK,MAAM,IAAI,UAAU,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAItC,QAAA,MAAM,MAAM,+BAA+B,CAAC;AAC5C,KAAK,iBAAiB,GAAG,WAAW,CACnC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CACnE,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,IAAI,CACzB,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,EACrD,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAChD,CAAC;AAEF,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC;IAEjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAClE;AAED,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CACF,CAAC;AAWxD,eAAO,MAAM,KAAK,GAAI,UAAS,OAAY,KAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAMhE,CAAC;AAmBH;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EACzB,aAAa,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAClC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,CAapC,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAsC3D,CAAC;AAkBH,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAEpD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAgC,CAAC;;;;;2KAmBxD,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG;IACrD;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,cAAc,GAAG,SAAS,CAAC;IAChE;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAC7B,eAAe,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EACvC,UAAU,mBAAmB;;;CA4B7B,CAAC"}
|
package/dist/Registry.js
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
import { HttpEffect, } from "effect/unstable/http";
|
|
3
|
+
import * as Rivetkit from "rivetkit";
|
|
4
|
+
import { configureBaseLogger, } from "rivetkit/log";
|
|
5
|
+
import * as Client from "./Client.js";
|
|
6
|
+
import { BaseLogger, getOrCreateBaseLogger } from "./internal/logging.js";
|
|
7
|
+
import * as Logger from "./Logger.js";
|
|
8
|
+
const TypeId = "~@rivetkit/effect/Registry";
|
|
9
|
+
export const Registry = Context.Service("@rivetkit/effect/Registry");
|
|
10
|
+
const make = (options, baseLogger) => {
|
|
11
|
+
return Registry.of({
|
|
12
|
+
[TypeId]: TypeId,
|
|
13
|
+
options,
|
|
14
|
+
baseLogger,
|
|
15
|
+
rivetkitActors: new Map(),
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
export const layer = (options = {}) => Layer.effect(Registry, Effect.map(getOrCreateBaseLogger, (baseLogger) => make(options, baseLogger)));
|
|
19
|
+
const setupRivetkitRegistry = (registry, options) => {
|
|
20
|
+
configureBaseLogger(registry.baseLogger);
|
|
21
|
+
return Rivetkit.setup({
|
|
22
|
+
use: Object.fromEntries(registry.rivetkitActors),
|
|
23
|
+
...registry.options,
|
|
24
|
+
logging: { baseLogger: registry.baseLogger },
|
|
25
|
+
...(options?.serverless === undefined
|
|
26
|
+
? {}
|
|
27
|
+
: { serverless: options.serverless }),
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Runs an actor registration layer against the configured engine.
|
|
32
|
+
*
|
|
33
|
+
* The actor layer is built in the server layer scope. Registered Rivet Actors
|
|
34
|
+
* are collected from `Registry`, materialized into a single underlying RivetKit
|
|
35
|
+
* registry, and started.
|
|
36
|
+
*/
|
|
37
|
+
export const serve = (actorsLayer) => Layer.effectDiscard(Effect.gen(function* () {
|
|
38
|
+
const registry = yield* Registry;
|
|
39
|
+
const baseLogger = registry.baseLogger;
|
|
40
|
+
yield* Layer.build(actorsLayer.pipe(Layer.provideMerge(Logger.layerPino(baseLogger))));
|
|
41
|
+
const rivetkitRegistry = setupRivetkitRegistry(registry);
|
|
42
|
+
yield* Effect.sync(() => rivetkitRegistry.start());
|
|
43
|
+
}));
|
|
44
|
+
/**
|
|
45
|
+
* In-process test runtime. Boots the rivetkit registry against the
|
|
46
|
+
* configured engine, waits for `/health` to answer, and provides
|
|
47
|
+
* `Client` from the same Layer so consumers don't need to wire
|
|
48
|
+
* `Client.layer` separately. Mirrors `Registry.start` plus test-mode
|
|
49
|
+
* flags and a scoped client dispose. The registry itself is leaked
|
|
50
|
+
* to process exit because the public rivetkit `Registry` doesn't
|
|
51
|
+
* expose a public `shutdown()` today; only the SIGINT handler can
|
|
52
|
+
* drive `#runShutdown`. This matches `setupTest`'s existing behavior.
|
|
53
|
+
*/
|
|
54
|
+
export const test = Layer.effect(Client.Client, Effect.gen(function* () {
|
|
55
|
+
const registry = yield* Registry;
|
|
56
|
+
const rivetkitRegistry = setupRivetkitRegistry(registry);
|
|
57
|
+
rivetkitRegistry.config.test = {
|
|
58
|
+
...rivetkitRegistry.config.test,
|
|
59
|
+
enabled: true,
|
|
60
|
+
};
|
|
61
|
+
rivetkitRegistry.config.noWelcome = true;
|
|
62
|
+
// Auto-spawn the engine when no endpoint was provided, so
|
|
63
|
+
// `Registry.test` works out of the box without requiring the
|
|
64
|
+
// caller to start an engine externally. If the user wired an
|
|
65
|
+
// explicit endpoint via `Registry.layer({ endpoint: ... })`,
|
|
66
|
+
// honor it and skip the local spawn.
|
|
67
|
+
if (registry.options.endpoint === undefined) {
|
|
68
|
+
rivetkitRegistry.config.startEngine = true;
|
|
69
|
+
}
|
|
70
|
+
yield* Effect.sync(() => rivetkitRegistry.start());
|
|
71
|
+
// The rivetkitRegistry itself is leaked until process exit (matches
|
|
72
|
+
// setupTest's behavior). The public Rivetkit.Registry doesn't
|
|
73
|
+
// expose a shutdown method; only the SIGINT handler can drive the
|
|
74
|
+
// inner .shutdown(). Disposing the client is the only cleanup we
|
|
75
|
+
// can do cleanly today.
|
|
76
|
+
//
|
|
77
|
+
// When the engine was auto-spawned, propagate its resolved
|
|
78
|
+
// endpoint to the client so `createClient` doesn't fall back
|
|
79
|
+
// to its (warning-emitting) default.
|
|
80
|
+
const resolvedEndpoint = rivetkitRegistry.parseConfig().endpoint;
|
|
81
|
+
return yield* Client.make({
|
|
82
|
+
...registry.options,
|
|
83
|
+
endpoint: registry.options.endpoint ?? resolvedEndpoint,
|
|
84
|
+
}).pipe(Effect.provideService(BaseLogger, registry.baseLogger));
|
|
85
|
+
}));
|
|
86
|
+
const makeHttpEffect = (registry, options) => {
|
|
87
|
+
const rivetkitRegistry = setupRivetkitRegistry(registry, {
|
|
88
|
+
serverless: options,
|
|
89
|
+
});
|
|
90
|
+
return HttpEffect.fromWebHandler((request) => rivetkitRegistry.handler(request));
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Builds a scoped Effect HTTP handler from a registry layer.
|
|
94
|
+
*
|
|
95
|
+
* The registry layer is built once in the surrounding scope. Registered Rivet
|
|
96
|
+
* Actors are materialized into a single underlying RivetKit registry, and each
|
|
97
|
+
* request is delegated to that registry's serverless handler.
|
|
98
|
+
*/
|
|
99
|
+
export const toHttpEffect = Effect.fnUntraced(function* (registryLayer, options) {
|
|
100
|
+
const context = yield* Layer.build(registryLayer.pipe(Layer.provideMerge(Logger.layer)));
|
|
101
|
+
// @effect-diagnostics-next-line returnEffectInGen:off
|
|
102
|
+
return makeHttpEffect(Context.get(context, Registry), options).pipe(Effect.provide(context));
|
|
103
|
+
});
|
|
104
|
+
/**
|
|
105
|
+
* Builds a Fetch-compatible request handler from a registry layer.
|
|
106
|
+
*
|
|
107
|
+
* This is the serverless entrypoint for the Effect SDK. The registry layer must
|
|
108
|
+
* provide `Registry`, usually by composing actor layers with `Registry.layer`
|
|
109
|
+
* via `Layer.provideMerge`.
|
|
110
|
+
*/
|
|
111
|
+
export const toWebHandler = (registryLayer, options) => {
|
|
112
|
+
const { middleware, memoMap } = options ?? {};
|
|
113
|
+
let serverlessOptions;
|
|
114
|
+
if (options !== undefined) {
|
|
115
|
+
const { middleware: _middleware, memoMap: _memoMap, ...handlerOptions } = options;
|
|
116
|
+
serverlessOptions = handlerOptions;
|
|
117
|
+
}
|
|
118
|
+
const registryLayerWithLogging = registryLayer.pipe(Layer.provideMerge(Logger.layer));
|
|
119
|
+
return HttpEffect.toWebHandlerLayerWith(registryLayerWithLogging, {
|
|
120
|
+
toHandler: (context) => Effect.succeed(makeHttpEffect(Context.get(context, Registry), serverlessOptions).pipe(Effect.provide(context))),
|
|
121
|
+
middleware,
|
|
122
|
+
memoMap,
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=Registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../src/Registry.ts"],"names":[],"mappings":"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"}
|