@effect/platform-node 0.0.0-snapshot-c0ae728e57df2c572ea803e1bb7121088cd67b49
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/Http/Platform/package.json +6 -0
- package/Http/Server/package.json +6 -0
- package/Http/ServerRequest/package.json +6 -0
- package/LICENSE +21 -0
- package/NodeCommandExecutor/package.json +6 -0
- package/NodeContext/package.json +6 -0
- package/NodeFileSystem/package.json +6 -0
- package/NodeHttpClient/package.json +6 -0
- package/NodeHttpServer/package.json +6 -0
- package/NodeKeyValueStore/package.json +6 -0
- package/NodePath/package.json +6 -0
- package/NodeRuntime/package.json +6 -0
- package/NodeSink/package.json +6 -0
- package/NodeStream/package.json +6 -0
- package/NodeTerminal/package.json +6 -0
- package/NodeWorker/package.json +6 -0
- package/NodeWorkerRunner/package.json +6 -0
- package/README.md +64 -0
- package/dist/cjs/Http/Platform.js +43 -0
- package/dist/cjs/Http/Platform.js.map +1 -0
- package/dist/cjs/Http/Server.js +58 -0
- package/dist/cjs/Http/Server.js.map +1 -0
- package/dist/cjs/Http/ServerRequest.js +38 -0
- package/dist/cjs/Http/ServerRequest.js.map +1 -0
- package/dist/cjs/NodeCommandExecutor.js +42 -0
- package/dist/cjs/NodeCommandExecutor.js.map +1 -0
- package/dist/cjs/NodeContext.js +48 -0
- package/dist/cjs/NodeContext.js.map +1 -0
- package/dist/cjs/NodeFileSystem.js +42 -0
- package/dist/cjs/NodeFileSystem.js.map +1 -0
- package/dist/cjs/NodeHttpClient.js +73 -0
- package/dist/cjs/NodeHttpClient.js.map +1 -0
- package/dist/cjs/NodeHttpServer.js +40 -0
- package/dist/cjs/NodeHttpServer.js.map +1 -0
- package/dist/cjs/NodeKeyValueStore.js +42 -0
- package/dist/cjs/NodeKeyValueStore.js.map +1 -0
- package/dist/cjs/NodePath.js +52 -0
- package/dist/cjs/NodePath.js.map +1 -0
- package/dist/cjs/NodeRuntime.js +42 -0
- package/dist/cjs/NodeRuntime.js.map +1 -0
- package/dist/cjs/NodeSink.js +17 -0
- package/dist/cjs/NodeSink.js.map +1 -0
- package/dist/cjs/NodeStream.js +17 -0
- package/dist/cjs/NodeStream.js.map +1 -0
- package/dist/cjs/NodeTerminal.js +47 -0
- package/dist/cjs/NodeTerminal.js.map +1 -0
- package/dist/cjs/NodeWorker.js +63 -0
- package/dist/cjs/NodeWorker.js.map +1 -0
- package/dist/cjs/NodeWorkerRunner.js +48 -0
- package/dist/cjs/NodeWorkerRunner.js.map +1 -0
- package/dist/cjs/index.js +58 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/http/client.js +216 -0
- package/dist/cjs/internal/http/client.js.map +1 -0
- package/dist/cjs/internal/http/incomingMessage.js +91 -0
- package/dist/cjs/internal/http/incomingMessage.js.map +1 -0
- package/dist/cjs/internal/http/platform.js +77 -0
- package/dist/cjs/internal/http/platform.js.map +1 -0
- package/dist/cjs/internal/http/server.js +270 -0
- package/dist/cjs/internal/http/server.js.map +1 -0
- package/dist/cjs/internal/worker.js +89 -0
- package/dist/cjs/internal/worker.js.map +1 -0
- package/dist/cjs/internal/workerRunner.js +85 -0
- package/dist/cjs/internal/workerRunner.js.map +1 -0
- package/dist/dts/Http/Platform.d.ts +19 -0
- package/dist/dts/Http/Platform.d.ts.map +1 -0
- package/dist/dts/Http/Server.d.ts +50 -0
- package/dist/dts/Http/Server.d.ts.map +1 -0
- package/dist/dts/Http/ServerRequest.d.ts +12 -0
- package/dist/dts/Http/ServerRequest.d.ts.map +1 -0
- package/dist/dts/NodeCommandExecutor.d.ts +9 -0
- package/dist/dts/NodeCommandExecutor.d.ts.map +1 -0
- package/dist/dts/NodeContext.d.ts +17 -0
- package/dist/dts/NodeContext.d.ts.map +1 -0
- package/dist/dts/NodeFileSystem.d.ts +8 -0
- package/dist/dts/NodeFileSystem.d.ts.map +1 -0
- package/dist/dts/NodeHttpClient.d.ts +67 -0
- package/dist/dts/NodeHttpClient.d.ts.map +1 -0
- package/dist/dts/NodeHttpServer.d.ts +37 -0
- package/dist/dts/NodeHttpServer.d.ts.map +1 -0
- package/dist/dts/NodeKeyValueStore.d.ts +9 -0
- package/dist/dts/NodeKeyValueStore.d.ts.map +1 -0
- package/dist/dts/NodePath.d.ts +21 -0
- package/dist/dts/NodePath.d.ts.map +1 -0
- package/dist/dts/NodeRuntime.d.ts +7 -0
- package/dist/dts/NodeRuntime.d.ts.map +1 -0
- package/dist/dts/NodeSink.d.ts +8 -0
- package/dist/dts/NodeSink.d.ts.map +1 -0
- package/dist/dts/NodeStream.d.ts +8 -0
- package/dist/dts/NodeStream.d.ts.map +1 -0
- package/dist/dts/NodeTerminal.d.ts +15 -0
- package/dist/dts/NodeTerminal.d.ts.map +1 -0
- package/dist/dts/NodeWorker.d.ts +42 -0
- package/dist/dts/NodeWorker.d.ts.map +1 -0
- package/dist/dts/NodeWorkerRunner.d.ts +24 -0
- package/dist/dts/NodeWorkerRunner.d.ts.map +1 -0
- package/dist/dts/index.d.ts +53 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/internal/http/client.d.ts +2 -0
- package/dist/dts/internal/http/client.d.ts.map +1 -0
- package/dist/dts/internal/http/incomingMessage.d.ts +2 -0
- package/dist/dts/internal/http/incomingMessage.d.ts.map +1 -0
- package/dist/dts/internal/http/platform.d.ts +2 -0
- package/dist/dts/internal/http/platform.d.ts.map +1 -0
- package/dist/dts/internal/http/server.d.ts +2 -0
- package/dist/dts/internal/http/server.d.ts.map +1 -0
- package/dist/dts/internal/worker.d.ts +2 -0
- package/dist/dts/internal/worker.d.ts.map +1 -0
- package/dist/dts/internal/workerRunner.d.ts +2 -0
- package/dist/dts/internal/workerRunner.d.ts.map +1 -0
- package/dist/esm/Http/Platform.js +12 -0
- package/dist/esm/Http/Platform.js.map +1 -0
- package/dist/esm/Http/Server.js +27 -0
- package/dist/esm/Http/Server.js.map +1 -0
- package/dist/esm/Http/ServerRequest.js +7 -0
- package/dist/esm/Http/ServerRequest.js.map +1 -0
- package/dist/esm/NodeCommandExecutor.js +10 -0
- package/dist/esm/NodeCommandExecutor.js.map +1 -0
- package/dist/esm/NodeContext.js +16 -0
- package/dist/esm/NodeContext.js.map +1 -0
- package/dist/esm/NodeFileSystem.js +10 -0
- package/dist/esm/NodeFileSystem.js.map +1 -0
- package/dist/esm/NodeHttpClient.js +42 -0
- package/dist/esm/NodeHttpClient.js.map +1 -0
- package/dist/esm/NodeHttpServer.js +37 -0
- package/dist/esm/NodeHttpServer.js.map +1 -0
- package/dist/esm/NodeKeyValueStore.js +10 -0
- package/dist/esm/NodeKeyValueStore.js.map +1 -0
- package/dist/esm/NodePath.js +20 -0
- package/dist/esm/NodePath.js.map +1 -0
- package/dist/esm/NodeRuntime.js +10 -0
- package/dist/esm/NodeRuntime.js.map +1 -0
- package/dist/esm/NodeSink.js +8 -0
- package/dist/esm/NodeSink.js.map +1 -0
- package/dist/esm/NodeStream.js +8 -0
- package/dist/esm/NodeStream.js.map +1 -0
- package/dist/esm/NodeTerminal.js +15 -0
- package/dist/esm/NodeTerminal.js.map +1 -0
- package/dist/esm/NodeWorker.js +32 -0
- package/dist/esm/NodeWorker.js.map +1 -0
- package/dist/esm/NodeWorkerRunner.js +17 -0
- package/dist/esm/NodeWorkerRunner.js.map +1 -0
- package/dist/esm/index.js +53 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/http/client.js +183 -0
- package/dist/esm/internal/http/client.js.map +1 -0
- package/dist/esm/internal/http/incomingMessage.js +59 -0
- package/dist/esm/internal/http/incomingMessage.js.map +1 -0
- package/dist/esm/internal/http/platform.js +41 -0
- package/dist/esm/internal/http/platform.js.map +1 -0
- package/dist/esm/internal/http/server.js +233 -0
- package/dist/esm/internal/http/server.js.map +1 -0
- package/dist/esm/internal/worker.js +58 -0
- package/dist/esm/internal/worker.js.map +1 -0
- package/dist/esm/internal/workerRunner.js +52 -0
- package/dist/esm/internal/workerRunner.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +162 -0
- package/src/Http/Platform.ts +21 -0
- package/src/Http/Server.ts +86 -0
- package/src/Http/ServerRequest.ts +12 -0
- package/src/NodeCommandExecutor.ts +13 -0
- package/src/NodeContext.ts +40 -0
- package/src/NodeFileSystem.ts +12 -0
- package/src/NodeHttpClient.ts +76 -0
- package/src/NodeHttpServer.ts +38 -0
- package/src/NodeKeyValueStore.ts +15 -0
- package/src/NodePath.ts +25 -0
- package/src/NodeRuntime.ts +11 -0
- package/src/NodeSink.ts +8 -0
- package/src/NodeStream.ts +8 -0
- package/src/NodeTerminal.ts +20 -0
- package/src/NodeWorker.ts +58 -0
- package/src/NodeWorkerRunner.ts +38 -0
- package/src/index.ts +64 -0
- package/src/internal/http/client.ts +258 -0
- package/src/internal/http/incomingMessage.ts +81 -0
- package/src/internal/http/platform.ts +46 -0
- package/src/internal/http/server.ts +375 -0
- package/src/internal/worker.ts +74 -0
- package/src/internal/workerRunner.ts +74 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import * as Etag from "@effect/platform-node-shared/Http/Etag";
|
|
2
|
+
import * as MultipartNode from "@effect/platform-node-shared/Http/Multipart";
|
|
3
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
4
|
+
import * as App from "@effect/platform/Http/App";
|
|
5
|
+
import * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
|
|
6
|
+
import * as Middleware from "@effect/platform/Http/Middleware";
|
|
7
|
+
import * as Server from "@effect/platform/Http/Server";
|
|
8
|
+
import * as Error from "@effect/platform/Http/ServerError";
|
|
9
|
+
import * as ServerRequest from "@effect/platform/Http/ServerRequest";
|
|
10
|
+
import * as Cause from "effect/Cause";
|
|
11
|
+
import * as Config from "effect/Config";
|
|
12
|
+
import * as Effect from "effect/Effect";
|
|
13
|
+
import * as Layer from "effect/Layer";
|
|
14
|
+
import * as Option from "effect/Option";
|
|
15
|
+
import * as Runtime from "effect/Runtime";
|
|
16
|
+
import * as Stream from "effect/Stream";
|
|
17
|
+
import { Readable } from "node:stream";
|
|
18
|
+
import { pipeline } from "node:stream/promises";
|
|
19
|
+
import * as NodeContext from "../../NodeContext.js";
|
|
20
|
+
import * as NodeSink from "../../NodeSink.js";
|
|
21
|
+
import { IncomingMessageImpl } from "./incomingMessage.js";
|
|
22
|
+
import * as internalPlatform from "./platform.js";
|
|
23
|
+
/** @internal */
|
|
24
|
+
export const make = (evaluate, options) => Effect.gen(function* (_) {
|
|
25
|
+
const server = yield* _(Effect.acquireRelease(Effect.sync(evaluate), server => Effect.async(resume => {
|
|
26
|
+
server.close(error => {
|
|
27
|
+
if (error) {
|
|
28
|
+
resume(Effect.die(error));
|
|
29
|
+
} else {
|
|
30
|
+
resume(Effect.unit);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
})));
|
|
34
|
+
yield* _(Effect.async(resume => {
|
|
35
|
+
server.on("error", error => {
|
|
36
|
+
resume(Effect.fail(Error.ServeError({
|
|
37
|
+
error
|
|
38
|
+
})));
|
|
39
|
+
});
|
|
40
|
+
server.listen(options, () => {
|
|
41
|
+
resume(Effect.unit);
|
|
42
|
+
});
|
|
43
|
+
}));
|
|
44
|
+
const address = server.address();
|
|
45
|
+
return Server.make({
|
|
46
|
+
address: typeof address === "string" ? {
|
|
47
|
+
_tag: "UnixAddress",
|
|
48
|
+
path: address
|
|
49
|
+
} : {
|
|
50
|
+
_tag: "TcpAddress",
|
|
51
|
+
hostname: address.address === "::" ? "0.0.0.0" : address.address,
|
|
52
|
+
port: address.port
|
|
53
|
+
},
|
|
54
|
+
serve: (httpApp, middleware) => Effect.gen(function* (_) {
|
|
55
|
+
const handler = yield* _(makeHandler(httpApp, middleware));
|
|
56
|
+
yield* _(Effect.addFinalizer(() => Effect.sync(() => {
|
|
57
|
+
server.off("request", handler);
|
|
58
|
+
})));
|
|
59
|
+
server.on("request", handler);
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
}).pipe(Effect.locally(IncomingMessage.maxBodySize, Option.some(FileSystem.Size(1024 * 1024 * 10))));
|
|
63
|
+
/** @internal */
|
|
64
|
+
export const makeHandler = (httpApp, middleware) => {
|
|
65
|
+
const handledApp = Effect.scoped(middleware ? middleware(App.withDefaultMiddleware(respond(httpApp))) : App.withDefaultMiddleware(respond(httpApp)));
|
|
66
|
+
return Effect.map(Effect.runtime(), runtime => {
|
|
67
|
+
const runFork = Runtime.runFork(runtime);
|
|
68
|
+
return function handler(nodeRequest, nodeResponse) {
|
|
69
|
+
const fiber = runFork(Effect.provideService(handledApp, ServerRequest.ServerRequest, new ServerRequestImpl(nodeRequest, nodeResponse)));
|
|
70
|
+
nodeResponse.on("close", () => {
|
|
71
|
+
if (!nodeResponse.writableEnded) {
|
|
72
|
+
if (!nodeResponse.headersSent) {
|
|
73
|
+
nodeResponse.writeHead(499);
|
|
74
|
+
}
|
|
75
|
+
nodeResponse.end();
|
|
76
|
+
runFork(fiber.interruptAsFork(Error.clientAbortFiberId));
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
const respond = /*#__PURE__*/Middleware.make(httpApp => Effect.uninterruptibleMask(restore => Effect.flatMap(ServerRequest.ServerRequest, request => Effect.tapErrorCause(restore(Effect.tap(Effect.flatMap(httpApp, response => Effect.flatMap(App.preResponseHandler, f => f(request, response))), response => handleResponse(request, response))), cause => Effect.sync(() => {
|
|
83
|
+
const nodeResponse = request.response;
|
|
84
|
+
if (!nodeResponse.headersSent) {
|
|
85
|
+
nodeResponse.writeHead(Cause.isInterruptedOnly(cause) ? 503 : 500);
|
|
86
|
+
}
|
|
87
|
+
if (!nodeResponse.writableEnded) {
|
|
88
|
+
nodeResponse.end();
|
|
89
|
+
}
|
|
90
|
+
})))));
|
|
91
|
+
class ServerRequestImpl extends IncomingMessageImpl {
|
|
92
|
+
source;
|
|
93
|
+
response;
|
|
94
|
+
url;
|
|
95
|
+
headersOverride;
|
|
96
|
+
[ServerRequest.TypeId];
|
|
97
|
+
constructor(source, response, url = source.url, headersOverride, remoteAddressOverride) {
|
|
98
|
+
super(source, _ => Error.RequestError({
|
|
99
|
+
request: this,
|
|
100
|
+
reason: "Decode",
|
|
101
|
+
error: _
|
|
102
|
+
}), remoteAddressOverride);
|
|
103
|
+
this.source = source;
|
|
104
|
+
this.response = response;
|
|
105
|
+
this.url = url;
|
|
106
|
+
this.headersOverride = headersOverride;
|
|
107
|
+
this[ServerRequest.TypeId] = ServerRequest.TypeId;
|
|
108
|
+
}
|
|
109
|
+
modify(options) {
|
|
110
|
+
return new ServerRequestImpl(this.source, this.response, options.url ?? this.url, options.headers ?? this.headersOverride, options.remoteAddress ?? this.remoteAddressOverride);
|
|
111
|
+
}
|
|
112
|
+
get originalUrl() {
|
|
113
|
+
return this.source.url;
|
|
114
|
+
}
|
|
115
|
+
get method() {
|
|
116
|
+
return this.source.method.toUpperCase();
|
|
117
|
+
}
|
|
118
|
+
get headers() {
|
|
119
|
+
this.headersOverride ??= this.source.headers;
|
|
120
|
+
return this.headersOverride;
|
|
121
|
+
}
|
|
122
|
+
multipartEffect;
|
|
123
|
+
get multipart() {
|
|
124
|
+
if (this.multipartEffect) {
|
|
125
|
+
return this.multipartEffect;
|
|
126
|
+
}
|
|
127
|
+
this.multipartEffect = Effect.runSync(Effect.cached(MultipartNode.persisted(this.source, this.source.headers)));
|
|
128
|
+
return this.multipartEffect;
|
|
129
|
+
}
|
|
130
|
+
get multipartStream() {
|
|
131
|
+
return MultipartNode.stream(this.source, this.source.headers);
|
|
132
|
+
}
|
|
133
|
+
toString() {
|
|
134
|
+
return `ServerRequest(${this.method} ${this.url})`;
|
|
135
|
+
}
|
|
136
|
+
toJSON() {
|
|
137
|
+
return {
|
|
138
|
+
_tag: "ServerRequest",
|
|
139
|
+
method: this.method,
|
|
140
|
+
url: this.url,
|
|
141
|
+
originalUrl: this.originalUrl,
|
|
142
|
+
headers: this.headers
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/** @internal */
|
|
147
|
+
export const layerServer = (evaluate, options) => Layer.scoped(Server.Server, make(evaluate, options));
|
|
148
|
+
/** @internal */
|
|
149
|
+
export const layer = (evaluate, options) => Layer.mergeAll(Layer.scoped(Server.Server, make(evaluate, options)), internalPlatform.layer, Etag.layerWeak, NodeContext.layer);
|
|
150
|
+
/** @internal */
|
|
151
|
+
export const layerConfig = (evaluate, options) => Layer.mergeAll(Layer.scoped(Server.Server, Effect.flatMap(Config.unwrap(options), options => make(evaluate, options))), internalPlatform.layer, Etag.layerWeak, NodeContext.layer);
|
|
152
|
+
const handleResponse = (request, response) => Effect.suspend(() => {
|
|
153
|
+
const nodeResponse = request.response;
|
|
154
|
+
if (request.method === "HEAD") {
|
|
155
|
+
nodeResponse.writeHead(response.status, response.headers);
|
|
156
|
+
nodeResponse.end();
|
|
157
|
+
return Effect.unit;
|
|
158
|
+
}
|
|
159
|
+
const body = response.body;
|
|
160
|
+
switch (body._tag) {
|
|
161
|
+
case "Empty":
|
|
162
|
+
{
|
|
163
|
+
nodeResponse.writeHead(response.status, response.headers);
|
|
164
|
+
nodeResponse.end();
|
|
165
|
+
return Effect.unit;
|
|
166
|
+
}
|
|
167
|
+
case "Raw":
|
|
168
|
+
{
|
|
169
|
+
nodeResponse.writeHead(response.status, response.headers);
|
|
170
|
+
if (typeof body.body === "object" && body.body !== null && "pipe" in body.body && typeof body.body.pipe === "function") {
|
|
171
|
+
return Effect.tryPromise({
|
|
172
|
+
try: signal => pipeline(body.body, nodeResponse, {
|
|
173
|
+
signal,
|
|
174
|
+
end: true
|
|
175
|
+
}),
|
|
176
|
+
catch: error => Error.ResponseError({
|
|
177
|
+
request,
|
|
178
|
+
response,
|
|
179
|
+
reason: "Decode",
|
|
180
|
+
error
|
|
181
|
+
})
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
nodeResponse.end(body.body);
|
|
185
|
+
return Effect.unit;
|
|
186
|
+
}
|
|
187
|
+
case "Uint8Array":
|
|
188
|
+
{
|
|
189
|
+
nodeResponse.writeHead(response.status, response.headers);
|
|
190
|
+
nodeResponse.end(body.body);
|
|
191
|
+
return Effect.unit;
|
|
192
|
+
}
|
|
193
|
+
case "FormData":
|
|
194
|
+
{
|
|
195
|
+
return Effect.async(resume => {
|
|
196
|
+
const r = new Response(body.formData);
|
|
197
|
+
const headers = {
|
|
198
|
+
...response.headers,
|
|
199
|
+
...Object.fromEntries(r.headers)
|
|
200
|
+
};
|
|
201
|
+
nodeResponse.writeHead(response.status, headers);
|
|
202
|
+
Readable.fromWeb(r.body).pipe(nodeResponse).on("error", error => {
|
|
203
|
+
resume(Effect.fail(Error.ResponseError({
|
|
204
|
+
request,
|
|
205
|
+
response,
|
|
206
|
+
reason: "Decode",
|
|
207
|
+
error
|
|
208
|
+
})));
|
|
209
|
+
}).once("finish", () => {
|
|
210
|
+
resume(Effect.unit);
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
case "Stream":
|
|
215
|
+
{
|
|
216
|
+
nodeResponse.writeHead(response.status, response.headers);
|
|
217
|
+
return Stream.run(Stream.mapError(body.stream, error => Error.ResponseError({
|
|
218
|
+
request,
|
|
219
|
+
response,
|
|
220
|
+
reason: "Decode",
|
|
221
|
+
error
|
|
222
|
+
})), NodeSink.fromWritable(() => nodeResponse, error => Error.ResponseError({
|
|
223
|
+
request,
|
|
224
|
+
response,
|
|
225
|
+
reason: "Decode",
|
|
226
|
+
error
|
|
227
|
+
})));
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
/** @internal */
|
|
232
|
+
export const requestSource = self => self.source;
|
|
233
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","names":["Etag","MultipartNode","FileSystem","App","IncomingMessage","Middleware","Server","Error","ServerRequest","Cause","Config","Effect","Layer","Option","Runtime","Stream","Readable","pipeline","NodeContext","NodeSink","IncomingMessageImpl","internalPlatform","make","evaluate","options","gen","_","server","acquireRelease","sync","async","resume","close","error","die","unit","on","fail","ServeError","listen","address","_tag","path","hostname","port","serve","httpApp","middleware","handler","makeHandler","addFinalizer","off","pipe","locally","maxBodySize","some","Size","handledApp","scoped","withDefaultMiddleware","respond","map","runtime","runFork","nodeRequest","nodeResponse","fiber","provideService","ServerRequestImpl","writableEnded","headersSent","writeHead","end","interruptAsFork","clientAbortFiberId","uninterruptibleMask","restore","flatMap","request","tapErrorCause","tap","response","preResponseHandler","f","handleResponse","cause","isInterruptedOnly","source","url","headersOverride","TypeId","constructor","remoteAddressOverride","RequestError","reason","modify","headers","remoteAddress","originalUrl","method","toUpperCase","multipartEffect","multipart","runSync","cached","persisted","multipartStream","stream","toString","toJSON","layerServer","layer","mergeAll","layerWeak","layerConfig","unwrap","suspend","status","body","tryPromise","try","signal","catch","ResponseError","r","Response","formData","Object","fromEntries","fromWeb","once","run","mapError","fromWritable","requestSource","self"],"sources":["../../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as Worker from "@effect/platform/Worker";
|
|
2
|
+
import { WorkerError } from "@effect/platform/WorkerError";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import { pipe } from "effect/Function";
|
|
5
|
+
import * as Layer from "effect/Layer";
|
|
6
|
+
import * as Queue from "effect/Queue";
|
|
7
|
+
const platformWorkerImpl = /*#__PURE__*/Worker.PlatformWorker.of({
|
|
8
|
+
[Worker.PlatformWorkerTypeId]: Worker.PlatformWorkerTypeId,
|
|
9
|
+
spawn(worker_) {
|
|
10
|
+
return Effect.gen(function* (_) {
|
|
11
|
+
const worker = worker_;
|
|
12
|
+
yield* _(Effect.addFinalizer(() => pipe(Effect.async(resume => {
|
|
13
|
+
worker.once("exit", () => {
|
|
14
|
+
resume(Effect.unit);
|
|
15
|
+
});
|
|
16
|
+
worker.postMessage([1]);
|
|
17
|
+
}), Effect.timeout(5000), Effect.orElse(() => Effect.sync(() => worker.terminate())))));
|
|
18
|
+
const queue = yield* _(Queue.unbounded());
|
|
19
|
+
yield* _(Effect.addFinalizer(() => Queue.shutdown(queue)));
|
|
20
|
+
const fiber = yield* _(Effect.async(resume => {
|
|
21
|
+
worker.on("message", message => {
|
|
22
|
+
queue.unsafeOffer(message);
|
|
23
|
+
});
|
|
24
|
+
worker.on("messageerror", error => {
|
|
25
|
+
resume(Effect.fail(WorkerError("decode", error.message, error.stack)));
|
|
26
|
+
});
|
|
27
|
+
worker.on("error", error => {
|
|
28
|
+
resume(Effect.fail(WorkerError("unknown", error.message, error.stack)));
|
|
29
|
+
});
|
|
30
|
+
worker.on("exit", code => {
|
|
31
|
+
resume(Effect.fail(WorkerError("unknown", new Error(`exited with code ${code}`))));
|
|
32
|
+
});
|
|
33
|
+
}), Effect.interruptible, Effect.forkScoped);
|
|
34
|
+
const send = (message, transfers) => Effect.try({
|
|
35
|
+
try: () => worker.postMessage([0, message], transfers),
|
|
36
|
+
catch: error => WorkerError("send", error.message, error.stack)
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
fiber,
|
|
40
|
+
queue,
|
|
41
|
+
send
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
/** @internal */
|
|
47
|
+
export const layerWorker = /*#__PURE__*/Layer.succeed(Worker.PlatformWorker, platformWorkerImpl);
|
|
48
|
+
/** @internal */
|
|
49
|
+
export const layerManager = /*#__PURE__*/Layer.provide(Worker.layerManager, layerWorker);
|
|
50
|
+
/** @internal */
|
|
51
|
+
export const makePool = /*#__PURE__*/Worker.makePool();
|
|
52
|
+
/** @internal */
|
|
53
|
+
export const makePoolLayer = /*#__PURE__*/Worker.makePoolLayer(layerManager);
|
|
54
|
+
/** @internal */
|
|
55
|
+
export const makePoolSerialized = /*#__PURE__*/Worker.makePoolSerialized();
|
|
56
|
+
/** @internal */
|
|
57
|
+
export const makePoolSerializedLayer = /*#__PURE__*/Worker.makePoolSerializedLayer(layerManager);
|
|
58
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","names":["Worker","WorkerError","Effect","pipe","Layer","Queue","platformWorkerImpl","PlatformWorker","of","PlatformWorkerTypeId","spawn","worker_","gen","_","worker","addFinalizer","async","resume","once","unit","postMessage","timeout","orElse","sync","terminate","queue","unbounded","shutdown","fiber","on","message","unsafeOffer","error","fail","stack","code","Error","interruptible","forkScoped","send","transfers","try","catch","layerWorker","succeed","layerManager","provide","makePool","makePoolLayer","makePoolSerialized","makePoolSerializedLayer"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { WorkerError } from "@effect/platform/WorkerError";
|
|
2
|
+
import * as Runner from "@effect/platform/WorkerRunner";
|
|
3
|
+
import * as Cause from "effect/Cause";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Layer from "effect/Layer";
|
|
6
|
+
import * as Queue from "effect/Queue";
|
|
7
|
+
import * as Schedule from "effect/Schedule";
|
|
8
|
+
import * as WorkerThreads from "node:worker_threads";
|
|
9
|
+
const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
|
|
10
|
+
[Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
|
|
11
|
+
start(shutdown) {
|
|
12
|
+
return Effect.gen(function* (_) {
|
|
13
|
+
if (!WorkerThreads.parentPort) {
|
|
14
|
+
return yield* _(Effect.fail(WorkerError("spawn", "not in worker")));
|
|
15
|
+
}
|
|
16
|
+
const port = WorkerThreads.parentPort;
|
|
17
|
+
const queue = yield* _(Queue.unbounded());
|
|
18
|
+
yield* _(Effect.async(resume => {
|
|
19
|
+
port.on("message", message => {
|
|
20
|
+
if (message[0] === 0) {
|
|
21
|
+
queue.unsafeOffer(message[1]);
|
|
22
|
+
} else {
|
|
23
|
+
Effect.runFork(shutdown);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
port.on("messageerror", error => {
|
|
27
|
+
resume(Effect.fail(WorkerError("decode", error.message, error.stack)));
|
|
28
|
+
});
|
|
29
|
+
port.on("error", error => {
|
|
30
|
+
resume(Effect.fail(WorkerError("unknown", error.message, error.stack)));
|
|
31
|
+
});
|
|
32
|
+
}), Effect.tapErrorCause(cause => Cause.isInterruptedOnly(cause) ? Effect.unit : Effect.logDebug(cause)), Effect.retry(Schedule.forever), Effect.annotateLogs({
|
|
33
|
+
package: "@effect/platform-node",
|
|
34
|
+
module: "WorkerRunner"
|
|
35
|
+
}), Effect.interruptible, Effect.forkScoped);
|
|
36
|
+
const send = (message, transfers) => Effect.sync(() => port.postMessage([1, message], transfers));
|
|
37
|
+
// ready
|
|
38
|
+
port.postMessage([0]);
|
|
39
|
+
return {
|
|
40
|
+
queue,
|
|
41
|
+
send
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
/** @internal */
|
|
47
|
+
export const layerPlatform = /*#__PURE__*/Layer.succeed(Runner.PlatformRunner, platformRunnerImpl);
|
|
48
|
+
/** @internal */
|
|
49
|
+
export const layer = (process, options) => Layer.provide(Runner.layer(process, options), layerPlatform);
|
|
50
|
+
/** @internal */
|
|
51
|
+
export const layerSerialized = (schema, handlers) => Layer.provide(Runner.layerSerialized(schema, handlers), layerPlatform);
|
|
52
|
+
//# sourceMappingURL=workerRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerRunner.js","names":["WorkerError","Runner","Cause","Effect","Layer","Queue","Schedule","WorkerThreads","platformRunnerImpl","PlatformRunner","of","PlatformRunnerTypeId","start","shutdown","gen","_","parentPort","fail","port","queue","unbounded","async","resume","on","message","unsafeOffer","runFork","error","stack","tapErrorCause","cause","isInterruptedOnly","unit","logDebug","retry","forever","annotateLogs","package","module","interruptible","forkScoped","send","transfers","sync","postMessage","layerPlatform","succeed","layer","process","options","provide","layerSerialized","schema","handlers"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@effect/platform-node",
|
|
3
|
+
"version": "0.0.0-snapshot-c0ae728e57df2c572ea803e1bb7121088cd67b49",
|
|
4
|
+
"description": "Unified interfaces for common platform-specific services",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/effect-ts/effect.git"
|
|
9
|
+
},
|
|
10
|
+
"sideEffects": [],
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"mime": "^3.0.0",
|
|
13
|
+
"@effect/platform-node-shared": "^0.0.0-snapshot-c0ae728e57df2c572ea803e1bb7121088cd67b49"
|
|
14
|
+
},
|
|
15
|
+
"peerDependencies": {
|
|
16
|
+
"@effect/platform": "^0.0.0-snapshot-c0ae728e57df2c572ea803e1bb7121088cd67b49",
|
|
17
|
+
"effect": "^0.0.0-snapshot-c0ae728e57df2c572ea803e1bb7121088cd67b49"
|
|
18
|
+
},
|
|
19
|
+
"main": "./dist/cjs/index.js",
|
|
20
|
+
"module": "./dist/esm/index.js",
|
|
21
|
+
"types": "./dist/dts/index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
"./package.json": "./package.json",
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/dts/index.d.ts",
|
|
26
|
+
"import": "./dist/esm/index.js",
|
|
27
|
+
"default": "./dist/cjs/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./Http/Platform": {
|
|
30
|
+
"types": "./dist/dts/Http/Platform.d.ts",
|
|
31
|
+
"import": "./dist/esm/Http/Platform.js",
|
|
32
|
+
"default": "./dist/cjs/Http/Platform.js"
|
|
33
|
+
},
|
|
34
|
+
"./Http/Server": {
|
|
35
|
+
"types": "./dist/dts/Http/Server.d.ts",
|
|
36
|
+
"import": "./dist/esm/Http/Server.js",
|
|
37
|
+
"default": "./dist/cjs/Http/Server.js"
|
|
38
|
+
},
|
|
39
|
+
"./Http/ServerRequest": {
|
|
40
|
+
"types": "./dist/dts/Http/ServerRequest.d.ts",
|
|
41
|
+
"import": "./dist/esm/Http/ServerRequest.js",
|
|
42
|
+
"default": "./dist/cjs/Http/ServerRequest.js"
|
|
43
|
+
},
|
|
44
|
+
"./NodeCommandExecutor": {
|
|
45
|
+
"types": "./dist/dts/NodeCommandExecutor.d.ts",
|
|
46
|
+
"import": "./dist/esm/NodeCommandExecutor.js",
|
|
47
|
+
"default": "./dist/cjs/NodeCommandExecutor.js"
|
|
48
|
+
},
|
|
49
|
+
"./NodeContext": {
|
|
50
|
+
"types": "./dist/dts/NodeContext.d.ts",
|
|
51
|
+
"import": "./dist/esm/NodeContext.js",
|
|
52
|
+
"default": "./dist/cjs/NodeContext.js"
|
|
53
|
+
},
|
|
54
|
+
"./NodeFileSystem": {
|
|
55
|
+
"types": "./dist/dts/NodeFileSystem.d.ts",
|
|
56
|
+
"import": "./dist/esm/NodeFileSystem.js",
|
|
57
|
+
"default": "./dist/cjs/NodeFileSystem.js"
|
|
58
|
+
},
|
|
59
|
+
"./NodeHttpClient": {
|
|
60
|
+
"types": "./dist/dts/NodeHttpClient.d.ts",
|
|
61
|
+
"import": "./dist/esm/NodeHttpClient.js",
|
|
62
|
+
"default": "./dist/cjs/NodeHttpClient.js"
|
|
63
|
+
},
|
|
64
|
+
"./NodeHttpServer": {
|
|
65
|
+
"types": "./dist/dts/NodeHttpServer.d.ts",
|
|
66
|
+
"import": "./dist/esm/NodeHttpServer.js",
|
|
67
|
+
"default": "./dist/cjs/NodeHttpServer.js"
|
|
68
|
+
},
|
|
69
|
+
"./NodeKeyValueStore": {
|
|
70
|
+
"types": "./dist/dts/NodeKeyValueStore.d.ts",
|
|
71
|
+
"import": "./dist/esm/NodeKeyValueStore.js",
|
|
72
|
+
"default": "./dist/cjs/NodeKeyValueStore.js"
|
|
73
|
+
},
|
|
74
|
+
"./NodePath": {
|
|
75
|
+
"types": "./dist/dts/NodePath.d.ts",
|
|
76
|
+
"import": "./dist/esm/NodePath.js",
|
|
77
|
+
"default": "./dist/cjs/NodePath.js"
|
|
78
|
+
},
|
|
79
|
+
"./NodeRuntime": {
|
|
80
|
+
"types": "./dist/dts/NodeRuntime.d.ts",
|
|
81
|
+
"import": "./dist/esm/NodeRuntime.js",
|
|
82
|
+
"default": "./dist/cjs/NodeRuntime.js"
|
|
83
|
+
},
|
|
84
|
+
"./NodeSink": {
|
|
85
|
+
"types": "./dist/dts/NodeSink.d.ts",
|
|
86
|
+
"import": "./dist/esm/NodeSink.js",
|
|
87
|
+
"default": "./dist/cjs/NodeSink.js"
|
|
88
|
+
},
|
|
89
|
+
"./NodeStream": {
|
|
90
|
+
"types": "./dist/dts/NodeStream.d.ts",
|
|
91
|
+
"import": "./dist/esm/NodeStream.js",
|
|
92
|
+
"default": "./dist/cjs/NodeStream.js"
|
|
93
|
+
},
|
|
94
|
+
"./NodeTerminal": {
|
|
95
|
+
"types": "./dist/dts/NodeTerminal.d.ts",
|
|
96
|
+
"import": "./dist/esm/NodeTerminal.js",
|
|
97
|
+
"default": "./dist/cjs/NodeTerminal.js"
|
|
98
|
+
},
|
|
99
|
+
"./NodeWorker": {
|
|
100
|
+
"types": "./dist/dts/NodeWorker.d.ts",
|
|
101
|
+
"import": "./dist/esm/NodeWorker.js",
|
|
102
|
+
"default": "./dist/cjs/NodeWorker.js"
|
|
103
|
+
},
|
|
104
|
+
"./NodeWorkerRunner": {
|
|
105
|
+
"types": "./dist/dts/NodeWorkerRunner.d.ts",
|
|
106
|
+
"import": "./dist/esm/NodeWorkerRunner.js",
|
|
107
|
+
"default": "./dist/cjs/NodeWorkerRunner.js"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"typesVersions": {
|
|
111
|
+
"*": {
|
|
112
|
+
"Http/Platform": [
|
|
113
|
+
"./dist/dts/Http/Platform.d.ts"
|
|
114
|
+
],
|
|
115
|
+
"Http/Server": [
|
|
116
|
+
"./dist/dts/Http/Server.d.ts"
|
|
117
|
+
],
|
|
118
|
+
"Http/ServerRequest": [
|
|
119
|
+
"./dist/dts/Http/ServerRequest.d.ts"
|
|
120
|
+
],
|
|
121
|
+
"NodeCommandExecutor": [
|
|
122
|
+
"./dist/dts/NodeCommandExecutor.d.ts"
|
|
123
|
+
],
|
|
124
|
+
"NodeContext": [
|
|
125
|
+
"./dist/dts/NodeContext.d.ts"
|
|
126
|
+
],
|
|
127
|
+
"NodeFileSystem": [
|
|
128
|
+
"./dist/dts/NodeFileSystem.d.ts"
|
|
129
|
+
],
|
|
130
|
+
"NodeHttpClient": [
|
|
131
|
+
"./dist/dts/NodeHttpClient.d.ts"
|
|
132
|
+
],
|
|
133
|
+
"NodeHttpServer": [
|
|
134
|
+
"./dist/dts/NodeHttpServer.d.ts"
|
|
135
|
+
],
|
|
136
|
+
"NodeKeyValueStore": [
|
|
137
|
+
"./dist/dts/NodeKeyValueStore.d.ts"
|
|
138
|
+
],
|
|
139
|
+
"NodePath": [
|
|
140
|
+
"./dist/dts/NodePath.d.ts"
|
|
141
|
+
],
|
|
142
|
+
"NodeRuntime": [
|
|
143
|
+
"./dist/dts/NodeRuntime.d.ts"
|
|
144
|
+
],
|
|
145
|
+
"NodeSink": [
|
|
146
|
+
"./dist/dts/NodeSink.d.ts"
|
|
147
|
+
],
|
|
148
|
+
"NodeStream": [
|
|
149
|
+
"./dist/dts/NodeStream.d.ts"
|
|
150
|
+
],
|
|
151
|
+
"NodeTerminal": [
|
|
152
|
+
"./dist/dts/NodeTerminal.d.ts"
|
|
153
|
+
],
|
|
154
|
+
"NodeWorker": [
|
|
155
|
+
"./dist/dts/NodeWorker.d.ts"
|
|
156
|
+
],
|
|
157
|
+
"NodeWorkerRunner": [
|
|
158
|
+
"./dist/dts/NodeWorkerRunner.d.ts"
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as FileSystem from "@effect/platform/FileSystem"
|
|
5
|
+
import type * as Etag from "@effect/platform/Http/Etag"
|
|
6
|
+
import type * as Platform from "@effect/platform/Http/Platform"
|
|
7
|
+
import type * as Effect from "effect/Effect"
|
|
8
|
+
import type * as Layer from "effect/Layer"
|
|
9
|
+
import * as internal from "../internal/http/platform.js"
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category constructors
|
|
14
|
+
*/
|
|
15
|
+
export const make: Effect.Effect<Platform.Platform, never, FileSystem.FileSystem | Etag.Generator> = internal.make
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category layers
|
|
20
|
+
*/
|
|
21
|
+
export const layer: Layer.Layer<Platform.Platform> = internal.layer
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as App from "@effect/platform/Http/App"
|
|
5
|
+
import type * as Etag from "@effect/platform/Http/Etag"
|
|
6
|
+
import type * as Middleware from "@effect/platform/Http/Middleware"
|
|
7
|
+
import type * as Platform from "@effect/platform/Http/Platform"
|
|
8
|
+
import type * as Server from "@effect/platform/Http/Server"
|
|
9
|
+
import type { ServeError } from "@effect/platform/Http/ServerError"
|
|
10
|
+
import type * as ServerRequest from "@effect/platform/Http/ServerRequest"
|
|
11
|
+
import type * as Config from "effect/Config"
|
|
12
|
+
import type * as ConfigError from "effect/ConfigError"
|
|
13
|
+
import type * as Effect from "effect/Effect"
|
|
14
|
+
import type { LazyArg } from "effect/Function"
|
|
15
|
+
import type * as Layer from "effect/Layer"
|
|
16
|
+
import type * as Scope from "effect/Scope"
|
|
17
|
+
import type * as Http from "node:http"
|
|
18
|
+
import type * as Net from "node:net"
|
|
19
|
+
import * as internal from "../internal/http/server.js"
|
|
20
|
+
import type * as NodeContext from "../NodeContext.js"
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @since 1.0.0
|
|
24
|
+
* @category constructors
|
|
25
|
+
*/
|
|
26
|
+
export const make: (
|
|
27
|
+
evaluate: LazyArg<Http.Server<typeof Http.IncomingMessage, typeof Http.ServerResponse>>,
|
|
28
|
+
options: Net.ListenOptions
|
|
29
|
+
) => Effect.Effect<
|
|
30
|
+
Server.Server,
|
|
31
|
+
ServeError,
|
|
32
|
+
Scope.Scope
|
|
33
|
+
> = internal.make
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
* @category constructors
|
|
38
|
+
*/
|
|
39
|
+
export const makeHandler: {
|
|
40
|
+
<R, E>(
|
|
41
|
+
httpApp: App.Default<R, E>
|
|
42
|
+
): Effect.Effect<
|
|
43
|
+
Exclude<R, Scope.Scope | ServerRequest.ServerRequest>,
|
|
44
|
+
never,
|
|
45
|
+
(nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse<Http.IncomingMessage>) => void
|
|
46
|
+
>
|
|
47
|
+
<R, E, App extends App.Default<any, any>>(
|
|
48
|
+
httpApp: App.Default<R, E>,
|
|
49
|
+
middleware: Middleware.Middleware.Applied<R, E, App>
|
|
50
|
+
): Effect.Effect<
|
|
51
|
+
Exclude<Effect.Effect.Context<App>, Scope.Scope | ServerRequest.ServerRequest>,
|
|
52
|
+
never,
|
|
53
|
+
(nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse<Http.IncomingMessage>) => void
|
|
54
|
+
>
|
|
55
|
+
} = internal.makeHandler
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @since 1.0.0
|
|
59
|
+
* @category layers
|
|
60
|
+
*/
|
|
61
|
+
export const layerServer: (
|
|
62
|
+
evaluate: LazyArg<Http.Server>,
|
|
63
|
+
options: Net.ListenOptions
|
|
64
|
+
) => Layer.Layer<Server.Server, ServeError> = internal.layerServer
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @since 1.0.0
|
|
68
|
+
* @category layers
|
|
69
|
+
*/
|
|
70
|
+
export const layer: (
|
|
71
|
+
evaluate: LazyArg<Http.Server>,
|
|
72
|
+
options: Net.ListenOptions
|
|
73
|
+
) => Layer.Layer<Platform.Platform | Etag.Generator | NodeContext.NodeContext | Server.Server, ServeError> =
|
|
74
|
+
internal.layer
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @since 1.0.0
|
|
78
|
+
* @category layers
|
|
79
|
+
*/
|
|
80
|
+
export const layerConfig: (
|
|
81
|
+
evaluate: LazyArg<Http.Server>,
|
|
82
|
+
options: Config.Config.Wrap<Net.ListenOptions>
|
|
83
|
+
) => Layer.Layer<
|
|
84
|
+
Platform.Platform | Etag.Generator | NodeContext.NodeContext | Server.Server,
|
|
85
|
+
ServeError | ConfigError.ConfigError
|
|
86
|
+
> = internal.layerConfig
|