@fncts/node 0.0.33 → 0.0.35

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.
@@ -0,0 +1,25 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
4
+ /// <reference types="node" />
5
+ import { Lazy } from "@fncts/base/data/function/definition";
6
+ import { IO, UIO } from "@fncts/io/IO/definition";
7
+ import { Scope } from "@fncts/io/Scope/definition";
8
+ import { Cause } from "@fncts/base/data/Cause/definition";
9
+ import type { HttpApp } from "@fncts/http/HttpApp";
10
+ import type { Middleware } from "@fncts/http/Middleware";
11
+ import type { ServerResponse } from "@fncts/http/ServerResponse";
12
+ import type * as Net from "node:net";
13
+ import type { Duplex } from "node:stream";
14
+ import { IncomingMessage } from "@fncts/http/IncomingMessage";
15
+ import { ResponseError } from "@fncts/http/ResponseError";
16
+ import { Server } from "@fncts/http/Server";
17
+ import { ServeError } from "@fncts/http/ServerError";
18
+ import { ServerRequest } from "@fncts/http/ServerRequest";
19
+ import * as Http from "node:http";
20
+ import * as ws from "ws";
21
+ export declare function make(evaluate: Lazy<Http.Server>, options: Net.ListenOptions): IO<Scope, ServeError, Server>;
22
+ export declare function makeHandler<R, E>(httpApp: HttpApp.Default<R, E>): IO<Exclude<R, ServerRequest | Scope>, never, (nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse) => void>;
23
+ export declare function makeHandler<R, E, App extends HttpApp.Default<any, any>>(httpApp: HttpApp.Default<R, E>, middleware: Middleware.Applied<R, E | ResponseError, App>): IO<Exclude<R, ServerRequest | Scope>, never, (nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse) => void>;
24
+ export declare function makeUpgradeHandler<R, E>(wss: UIO<ws.WebSocketServer>, httpApp: HttpApp.Default<R, E>, middleware?: Middleware): import("@fncts/io/IO").IO<import("@fncts/io/Scope").Scope | R, never, (nodeRequest: Http.IncomingMessage, socket: Duplex, head: Buffer) => void>;
25
+ export declare function handleResponse(request: ServerRequest, response: ServerResponse): import("@fncts/io/IO").IO<never, ResponseError, void>;
@@ -0,0 +1,29 @@
1
+ /// <reference types="node" />
2
+ import { Lazy } from "@fncts/base/data/function/definition";
3
+ import { IO } from "@fncts/io/IO/definition";
4
+ import type { Headers } from "@fncts/http/Headers";
5
+ import type { Method } from "@fncts/http/Method";
6
+ import type { ServerRequest } from "@fncts/http/ServerRequest";
7
+ import type { Socket } from "@fncts/http/Socket";
8
+ import type * as Http from "node:http";
9
+ import { RequestError } from "@fncts/http/RequestError";
10
+ import { ServerRequestTypeId } from "@fncts/http/ServerRequest";
11
+ import { IncomingMessageImpl } from "@fncts/node/http/IncomingMessage";
12
+ export declare class ServerRequestImpl extends IncomingMessageImpl<RequestError> implements ServerRequest {
13
+ readonly source: Http.IncomingMessage;
14
+ readonly response: Http.ServerResponse | Lazy<Http.ServerResponse>;
15
+ private upgradeEffect?;
16
+ readonly url: string;
17
+ private headersOverride?;
18
+ readonly [ServerRequestTypeId]: ServerRequestTypeId;
19
+ constructor(source: Http.IncomingMessage, response: Http.ServerResponse | Lazy<Http.ServerResponse>, upgradeEffect?: import("@fncts/io/IO").IO<never, RequestError, Socket> | undefined, url?: string, headersOverride?: Headers | undefined, remoteAddressOverride?: string);
20
+ get resolvedResponse(): Http.ServerResponse;
21
+ modify(options: {
22
+ readonly url?: string | undefined;
23
+ readonly headers?: Headers | undefined;
24
+ readonly remoteAddress?: string | undefined;
25
+ }): ServerRequest;
26
+ get originalUrl(): string;
27
+ get method(): Method;
28
+ get upgrade(): IO<never, RequestError, Socket>;
29
+ }
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@fncts/node",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "dependencies": {
5
- "@fncts/io": "0.0.40"
5
+ "@fncts/io": "0.0.42",
6
+ "ws": "^8.17.0"
6
7
  },
7
8
  "exports": {
8
9
  "./*": {
package/stream/api.d.ts CHANGED
@@ -1,9 +1,17 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
2
4
  import { Lazy } from "@fncts/base/data/function/definition";
3
- import { Byte } from "@fncts/base/data/Byte";
4
- import { Sink } from "@fncts/io/Sink/definition";
5
5
  import { Channel } from "@fncts/io/Channel";
6
6
  import { Conc } from "@fncts/base/collection/immutable/Conc";
7
+ import { Either } from "@fncts/base/data/Either/definition";
8
+ import { Exit } from "@fncts/base/data/Exit/definition";
9
+ import { Queue } from "@fncts/io/Queue/definition";
10
+ import { Sink } from "@fncts/io/Sink/definition";
11
+ import { Cause } from "@fncts/base/data/Cause/definition";
12
+ import { UIO, IO } from "@fncts/io/IO/definition";
13
+ import { Future } from "@fncts/io/Future";
14
+ import { Byte } from "@fncts/base/data/Byte";
7
15
  import type stream from "node:stream";
8
16
  import { Stream } from "@fncts/io/Stream";
9
17
  export declare class ReadableError {
@@ -11,13 +19,13 @@ export declare class ReadableError {
11
19
  readonly _tag = "ReadableError";
12
20
  constructor(error: Error);
13
21
  }
14
- export declare function fromReadable(readable: Lazy<stream.Readable>): Stream<never, ReadableError, Byte>;
15
- export declare class WritableError {
16
- readonly error: Error;
17
- readonly _tag = "ReadableError";
18
- constructor(error: Error);
22
+ export declare function fromReadable<E, A = Uint8Array>(readable: Lazy<stream.Readable | NodeJS.ReadableStream>, onError: (error: unknown) => E, chunkSize?: number): Stream<never, E, A>;
23
+ export interface FromWritableOptions {
24
+ readonly endOnDone?: boolean;
25
+ readonly encoding?: BufferEncoding;
19
26
  }
20
- export declare function fromWritable(writable: Lazy<stream.Writable>): Sink<never, WritableError, Byte, never, void>;
27
+ export declare function fromWritable<E, A = Uint8Array | string>(writable: Lazy<stream.Writable | NodeJS.WritableStream>, onError: (error: unknown) => E, options?: FromWritableOptions): Sink<never, E, A, never, void>;
28
+ export declare function fromWritableChannel<IE, OE, A>(writable: Lazy<stream.Writable | NodeJS.WritableStream>, onError: (error: unknown) => OE, options?: FromWritableOptions): Channel<never, IE, Conc<A>, unknown, IE | OE, never, void>;
21
29
  export declare class TransformError {
22
30
  readonly error: Error;
23
31
  readonly _tag = "TransformError";
@@ -28,3 +36,10 @@ export declare class TransformError {
28
36
  * @tsplus location "@fncts/node/stream/api"
29
37
  */
30
38
  export declare function transform(transform: Lazy<stream.Transform>): <R, E>(self: Stream<R, E, Byte>) => Stream<R, E | TransformError, Byte>;
39
+ export declare function toString<E>(readable: Lazy<stream.Readable | NodeJS.ReadableStream>, onFailure: (error: unknown) => E, options?: {
40
+ encoding?: BufferEncoding;
41
+ maxBytes?: number;
42
+ }): IO<never, E, string>;
43
+ export declare function toUint8Array<E>(readable: Lazy<stream.Readable | NodeJS.ReadableStream>, onFailure: (error: unknown) => E, options?: {
44
+ maxBytes?: number;
45
+ }): IO<never, E, Uint8Array>;