diff --git a/.changeset/nice-falcons-search.md b/.changeset/nice-falcons-search.md new file mode 100644 index 0000000000..b3533010e1 --- /dev/null +++ b/.changeset/nice-falcons-search.md @@ -0,0 +1,5 @@ +--- +"@effect/platform": patch +--- + +Update the definition of `Handler` to utilize `App.Default` diff --git a/packages/platform/src/Http/App.ts b/packages/platform/src/Http/App.ts index aff69c91ca..b676fdd6da 100644 --- a/packages/platform/src/Http/App.ts +++ b/packages/platform/src/Http/App.ts @@ -112,8 +112,8 @@ export const appendPreResponseHandler: (handler: PreResponseHandler) => Effect.E * @category fiber refs */ export const withPreResponseHandler = dual< - (handler: PreResponseHandler) => (self: HttpApp) => HttpApp, - (self: HttpApp, handler: PreResponseHandler) => HttpApp + (handler: PreResponseHandler) => (self: HttpApp) => HttpApp, + (self: HttpApp, handler: PreResponseHandler) => HttpApp >(2, (self, handler) => Effect.locallyWith( self, @@ -171,7 +171,7 @@ export const toWebHandler: (self: Default) => (request: Reque * @since 1.0.0 * @category conversions */ -export const toWebHandlerLayer = ( +export const toWebHandlerLayer = ( self: Default, layer: Layer.Layer ): { diff --git a/packages/platform/src/Http/Client.ts b/packages/platform/src/Http/Client.ts index 18f04fcff3..b652f13cbb 100644 --- a/packages/platform/src/Http/Client.ts +++ b/packages/platform/src/Http/Client.ts @@ -120,8 +120,8 @@ export const fetchOk: Client.Default = internal.fetchOk * @category error handling */ export const catchAll: { - (f: (e: E) => Effect.Effect): (self: Client) => Client - (self: Client, f: (e: E) => Effect.Effect): Client + (f: (e: E) => Effect.Effect): (self: Client) => Client + (self: Client, f: (e: E) => Effect.Effect): Client } = internal.catchAll /** @@ -129,11 +129,11 @@ export const catchAll: { * @category error handling */ export const catchTag: { - ( + ( tag: K, f: (e: Extract) => Effect.Effect ): (self: Client) => Client, R1 | R> - ( + ( self: Client, tag: K, f: (e: Extract) => Effect.Effect @@ -195,11 +195,11 @@ export const catchTags: { * @category filters */ export const filterOrElse: { - ( + ( f: Predicate.Predicate, orElse: (a: A) => Effect.Effect ): (self: Client) => Client - ( + ( self: Client, f: Predicate.Predicate, orElse: (a: A) => Effect.Effect @@ -241,7 +241,7 @@ export const filterStatusOk: ( * @since 1.0.0 * @category constructors */ -export const make: ( +export const make: ( execute: (request: Effect.Effect) => Effect.Effect, preprocess: Client.Preprocess ) => Client = internal.make @@ -264,10 +264,10 @@ export const makeDefault: ( * @category mapping & sequencing */ export const transform: { - ( + ( f: (effect: Effect.Effect, request: ClientRequest.ClientRequest) => Effect.Effect ): (self: Client) => Client - ( + ( self: Client, f: (effect: Effect.Effect, request: ClientRequest.ClientRequest) => Effect.Effect ): Client @@ -278,10 +278,10 @@ export const transform: { * @category mapping & sequencing */ export const transformResponse: { - ( + ( f: (effect: Effect.Effect) => Effect.Effect ): (self: Client) => Client - ( + ( self: Client, f: (effect: Effect.Effect) => Effect.Effect ): Client @@ -301,8 +301,8 @@ export const map: { * @category mapping & sequencing */ export const mapEffect: { - (f: (a: A) => Effect.Effect): (self: Client) => Client - (self: Client, f: (a: A) => Effect.Effect): Client + (f: (a: A) => Effect.Effect): (self: Client) => Client + (self: Client, f: (a: A) => Effect.Effect): Client } = internal.mapEffect /** @@ -310,10 +310,10 @@ export const mapEffect: { * @category mapping & sequencing */ export const mapEffectScoped: { - ( + ( f: (a: A) => Effect.Effect ): (self: Client) => Client | Exclude> - ( + ( self: Client, f: (a: A) => Effect.Effect ): Client | Exclude> @@ -335,10 +335,10 @@ export const mapRequest: { * @category mapping & sequencing */ export const mapRequestEffect: { - ( + ( f: (a: ClientRequest.ClientRequest) => Effect.Effect ): (self: Client) => Client - ( + ( self: Client, f: (a: ClientRequest.ClientRequest) => Effect.Effect ): Client @@ -360,10 +360,10 @@ export const mapInputRequest: { * @category mapping & sequencing */ export const mapInputRequestEffect: { - ( + ( f: (a: ClientRequest.ClientRequest) => Effect.Effect ): (self: Client) => Client - ( + ( self: Client, f: (a: ClientRequest.ClientRequest) => Effect.Effect ): Client @@ -411,8 +411,8 @@ export const schemaFunction: { * @category mapping & sequencing */ export const tap: { - (f: (a: A) => Effect.Effect<_, E2, R2>): (self: Client) => Client - (self: Client, f: (a: A) => Effect.Effect<_, E2, R2>): Client + (f: (a: A) => Effect.Effect<_, E2, R2>): (self: Client) => Client + (self: Client, f: (a: A) => Effect.Effect<_, E2, R2>): Client } = internal.tap /** @@ -420,10 +420,10 @@ export const tap: { * @category mapping & sequencing */ export const tapRequest: { - ( + <_, E2, R2>( f: (a: ClientRequest.ClientRequest) => Effect.Effect<_, E2, R2> ): (self: Client) => Client - ( + ( self: Client, f: (a: ClientRequest.ClientRequest) => Effect.Effect<_, E2, R2> ): Client @@ -452,8 +452,8 @@ export const currentTracerDisabledWhen: FiberRef.FiberRef - ): (effect: Effect.Effect) => Effect.Effect - ( + ): (effect: Effect.Effect) => Effect.Effect + ( effect: Effect.Effect, predicate: Predicate.Predicate ): Effect.Effect @@ -470,8 +470,8 @@ export const currentTracerPropagation: FiberRef.FiberRef = internal.cur * @category fiber refs */ export const withTracerPropagation: { - (enabled: boolean): (effect: Effect.Effect) => Effect.Effect - (effect: Effect.Effect, enabled: boolean): Effect.Effect + (enabled: boolean): (effect: Effect.Effect) => Effect.Effect + (effect: Effect.Effect, enabled: boolean): Effect.Effect } = internal.withTracerPropagation /** @@ -485,6 +485,6 @@ export const currentFetchOptions: FiberRef.FiberRef = internal.curr * @category fiber refs */ export const withFetchOptions: { - (options: RequestInit): (effect: Effect.Effect) => Effect.Effect - (effect: Effect.Effect, options: RequestInit): Effect.Effect + (options: RequestInit): (effect: Effect.Effect) => Effect.Effect + (effect: Effect.Effect, options: RequestInit): Effect.Effect } = internal.withFetchOptions diff --git a/packages/platform/src/Http/IncomingMessage.ts b/packages/platform/src/Http/IncomingMessage.ts index e0db9e2697..8e7e18e00f 100644 --- a/packages/platform/src/Http/IncomingMessage.ts +++ b/packages/platform/src/Http/IncomingMessage.ts @@ -134,8 +134,8 @@ export const maxBodySize: FiberRef.FiberRef> = Gl * @category fiber refs */ export const withMaxBodySize = dual< - (size: Option.Option) => (effect: Effect.Effect) => Effect.Effect, - (effect: Effect.Effect, size: Option.Option) => Effect.Effect + (size: Option.Option) => (effect: Effect.Effect) => Effect.Effect, + (effect: Effect.Effect, size: Option.Option) => Effect.Effect >(2, (effect, size) => Effect.locally(effect, maxBodySize, Option.map(size, FileSystem.Size))) /** diff --git a/packages/platform/src/Http/Middleware.ts b/packages/platform/src/Http/Middleware.ts index d5979063ef..072aa997e8 100644 --- a/packages/platform/src/Http/Middleware.ts +++ b/packages/platform/src/Http/Middleware.ts @@ -14,7 +14,7 @@ import type * as ServerRequest from "./ServerRequest.js" * @category models */ export interface Middleware { - (self: App.Default): App.Default + (self: App.Default): App.Default } /** @@ -39,7 +39,7 @@ export const make: (middleware: M) => M = internal.make * @since 1.0.0 * @category constructors */ -export const logger: (httpApp: App.Default) => App.Default = internal.logger +export const logger: (httpApp: App.Default) => App.Default = internal.logger /** * @since 1.0.0 @@ -51,7 +51,7 @@ export const loggerDisabled: FiberRef.FiberRef = internal.loggerDisable * @since 1.0.0 * @category fiber refs */ -export const withLoggerDisabled: (self: Effect.Effect) => Effect.Effect = +export const withLoggerDisabled: (self: Effect.Effect) => Effect.Effect = internal.withLoggerDisabled /** @@ -68,8 +68,8 @@ export const currentTracerDisabledWhen: FiberRef.FiberRef - ): (layer: Layer.Layer) => Layer.Layer - ( + ): (layer: Layer.Layer) => Layer.Layer + ( layer: Layer.Layer, predicate: Predicate.Predicate ): Layer.Layer @@ -82,8 +82,8 @@ export const withTracerDisabledWhen: { export const withTracerDisabledWhenEffect: { ( predicate: Predicate.Predicate - ): (effect: Effect.Effect) => Effect.Effect - ( + ): (effect: Effect.Effect) => Effect.Effect + ( effect: Effect.Effect, predicate: Predicate.Predicate ): Effect.Effect @@ -94,15 +94,15 @@ export const withTracerDisabledWhenEffect: { * @category fiber refs */ export const withTracerDisabledForUrls: { - (urls: ReadonlyArray): (layer: Layer.Layer) => Layer.Layer - (layer: Layer.Layer, urls: ReadonlyArray): Layer.Layer + (urls: ReadonlyArray): (layer: Layer.Layer) => Layer.Layer + (layer: Layer.Layer, urls: ReadonlyArray): Layer.Layer } = internal.withTracerDisabledForUrls /** * @since 1.0.0 * @category constructors */ -export const xForwardedHeaders: (httpApp: App.Default) => App.Default = internal.xForwardedHeaders +export const xForwardedHeaders: (httpApp: App.Default) => App.Default = internal.xForwardedHeaders /** * @since 1.0.0 diff --git a/packages/platform/src/Http/Multipart.ts b/packages/platform/src/Http/Multipart.ts index fa7244e956..8f999d63bd 100644 --- a/packages/platform/src/Http/Multipart.ts +++ b/packages/platform/src/Http/Multipart.ts @@ -162,8 +162,8 @@ export const maxParts: FiberRef.FiberRef> = internal.maxPa * @category fiber refs */ export const withMaxParts: { - (count: Option.Option): (effect: Effect.Effect) => Effect.Effect - (effect: Effect.Effect, count: Option.Option): Effect.Effect + (count: Option.Option): (effect: Effect.Effect) => Effect.Effect + (effect: Effect.Effect, count: Option.Option): Effect.Effect } = internal.withMaxParts /** @@ -177,8 +177,8 @@ export const maxFieldSize: FiberRef.FiberRef = internal.maxFiel * @category fiber refs */ export const withMaxFieldSize: { - (size: FileSystem.SizeInput): (effect: Effect.Effect) => Effect.Effect - (effect: Effect.Effect, size: FileSystem.SizeInput): Effect.Effect + (size: FileSystem.SizeInput): (effect: Effect.Effect) => Effect.Effect + (effect: Effect.Effect, size: FileSystem.SizeInput): Effect.Effect } = internal.withMaxFieldSize /** @@ -192,8 +192,8 @@ export const maxFileSize: FiberRef.FiberRef> = in * @category fiber refs */ export const withMaxFileSize: { - (size: Option.Option): (effect: Effect.Effect) => Effect.Effect - (effect: Effect.Effect, size: Option.Option): Effect.Effect + (size: Option.Option): (effect: Effect.Effect) => Effect.Effect + (effect: Effect.Effect, size: Option.Option): Effect.Effect } = internal.withMaxFileSize /** @@ -207,8 +207,8 @@ export const fieldMimeTypes: FiberRef.FiberRef> = internal.f * @category fiber refs */ export const withFieldMimeTypes: { - (mimeTypes: ReadonlyArray): (effect: Effect.Effect) => Effect.Effect - (effect: Effect.Effect, mimeTypes: ReadonlyArray): Effect.Effect + (mimeTypes: ReadonlyArray): (effect: Effect.Effect) => Effect.Effect + (effect: Effect.Effect, mimeTypes: ReadonlyArray): Effect.Effect } = internal.withFieldMimeTypes /** diff --git a/packages/platform/src/Http/Multiplex.ts b/packages/platform/src/Http/Multiplex.ts index 8393ac2498..ecb08900d6 100644 --- a/packages/platform/src/Http/Multiplex.ts +++ b/packages/platform/src/Http/Multiplex.ts @@ -44,7 +44,7 @@ export const empty: Multiplex = internal.empty * @since 1.0.0 * @category constructors */ -export const make: ( +export const make: ( apps: Iterable< readonly [predicate: (request: ServerRequest.ServerRequest) => Effect.Effect, app: App.Default] > @@ -55,11 +55,11 @@ export const make: ( * @category combinators */ export const add: { - ( + ( predicate: (request: ServerRequest.ServerRequest) => Effect.Effect, app: App.Default - ): (self: Multiplex) => Multiplex - ( + ): (self: Multiplex) => Multiplex + ( self: Multiplex, predicate: (request: ServerRequest.ServerRequest) => Effect.Effect, app: App.Default @@ -71,12 +71,12 @@ export const add: { * @category combinators */ export const headerExact: { - ( + ( header: string, value: string, app: App.Default - ): (self: Multiplex) => Multiplex - ( + ): (self: Multiplex) => Multiplex + ( self: Multiplex, header: string, value: string, @@ -89,12 +89,12 @@ export const headerExact: { * @category combinators */ export const headerRegex: { - ( + ( header: string, regex: RegExp, app: App.Default - ): (self: Multiplex) => Multiplex - ( + ): (self: Multiplex) => Multiplex + ( self: Multiplex, header: string, regex: RegExp, @@ -107,12 +107,12 @@ export const headerRegex: { * @category combinators */ export const headerStartsWith: { - ( + ( header: string, prefix: string, app: App.Default - ): (self: Multiplex) => Multiplex - ( + ): (self: Multiplex) => Multiplex + ( self: Multiplex, header: string, prefix: string, @@ -125,12 +125,12 @@ export const headerStartsWith: { * @category combinators */ export const headerEndsWith: { - ( + ( header: string, suffix: string, app: App.Default - ): (self: Multiplex) => Multiplex - ( + ): (self: Multiplex) => Multiplex + ( self: Multiplex, header: string, suffix: string, @@ -143,8 +143,8 @@ export const headerEndsWith: { * @category combinators */ export const hostExact: { - (host: string, app: App.Default): (self: Multiplex) => Multiplex - (self: Multiplex, host: string, app: App.Default): Multiplex + (host: string, app: App.Default): (self: Multiplex) => Multiplex + (self: Multiplex, host: string, app: App.Default): Multiplex } = internal.hostExact /** @@ -152,8 +152,8 @@ export const hostExact: { * @category combinators */ export const hostRegex: { - (regex: RegExp, app: App.Default): (self: Multiplex) => Multiplex - (self: Multiplex, regex: RegExp, app: App.Default): Multiplex + (regex: RegExp, app: App.Default): (self: Multiplex) => Multiplex + (self: Multiplex, regex: RegExp, app: App.Default): Multiplex } = internal.hostRegex /** @@ -161,8 +161,8 @@ export const hostRegex: { * @category combinators */ export const hostStartsWith: { - (prefix: string, app: App.Default): (self: Multiplex) => Multiplex - (self: Multiplex, prefix: string, app: App.Default): Multiplex + (prefix: string, app: App.Default): (self: Multiplex) => Multiplex + (self: Multiplex, prefix: string, app: App.Default): Multiplex } = internal.hostStartsWith /** @@ -170,6 +170,6 @@ export const hostStartsWith: { * @category combinators */ export const hostEndsWith: { - (suffix: string, app: App.Default): (self: Multiplex) => Multiplex - (self: Multiplex, suffix: string, app: App.Default): Multiplex + (suffix: string, app: App.Default): (self: Multiplex) => Multiplex + (self: Multiplex, suffix: string, app: App.Default): Multiplex } = internal.hostEndsWith diff --git a/packages/platform/src/Http/Router.ts b/packages/platform/src/Http/Router.ts index 950acae424..4f71d983d4 100644 --- a/packages/platform/src/Http/Router.ts +++ b/packages/platform/src/Http/Router.ts @@ -16,7 +16,6 @@ import type * as App from "./App.js" import type * as Method from "./Method.js" import type * as Error from "./ServerError.js" import type * as ServerRequest from "./ServerRequest.js" -import type * as ServerResponse from "./ServerResponse.js" /** * @since 1.0.0 @@ -99,11 +98,7 @@ export declare namespace Route { /** * @since 1.0.0 */ - export type Handler = Effect.Effect< - ServerResponse.ServerResponse, - E, - R | RouteContext | ServerRequest.ServerRequest | ServerRequest.ParsedSearchParams - > + export type Handler = App.Default } /** @@ -246,8 +241,8 @@ export const makeRoute: ( * @category combinators */ export const prefixAll: { - (prefix: PathInput): (self: Router) => Router - (self: Router, prefix: PathInput): Router + (prefix: PathInput): (self: Router) => Router + (self: Router, prefix: PathInput): Router } = internal.prefixAll /** @@ -255,10 +250,10 @@ export const prefixAll: { * @category combinators */ export const concat: { - (that: Router): ( + (that: Router): ( self: Router ) => Router - (self: Router, that: Router): Router< + (self: Router, that: Router): Router< E | E1, R | R1 > @@ -269,8 +264,8 @@ export const concat: { * @category routing */ export const mount: { - (path: `/${string}`, that: Router): (self: Router) => Router - (self: Router, path: `/${string}`, that: Router): Router + (path: `/${string}`, that: Router): (self: Router) => Router + (self: Router, path: `/${string}`, that: Router): Router } = internal.mount /** @@ -282,14 +277,14 @@ export const mountApp: { path: `/${string}`, that: App.Default, options?: { readonly includePrefix?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router< E1 | E, | Router.ExcludeProvided | Router.ExcludeProvided > - ( + ( self: Router, path: `/${string}`, that: App.Default, @@ -312,10 +307,10 @@ export const route: ( path: PathInput, handler: Route.Handler, options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router> - ( + ( self: Router, path: PathInput, handler: Route.Handler, @@ -332,13 +327,13 @@ export const all: { path: PathInput, handler: Route.Handler, options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router< E1 | E, R | Router.ExcludeProvided > - ( + ( self: Router, path: PathInput, handler: Route.Handler, @@ -358,10 +353,10 @@ export const get: { path: PathInput, handler: Route.Handler, options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router> - ( + ( self: Router, path: PathInput, handler: Route.Handler, @@ -378,10 +373,10 @@ export const post: { path: PathInput, handler: Route.Handler, options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router> - ( + ( self: Router, path: PathInput, handler: Route.Handler, @@ -398,10 +393,10 @@ export const patch: { path: PathInput, handler: Route.Handler, options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router> - ( + ( self: Router, path: PathInput, handler: Route.Handler, @@ -418,10 +413,10 @@ export const put: { path: PathInput, handler: Route.Handler, options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router> - ( + ( self: Router, path: PathInput, handler: Route.Handler, @@ -438,10 +433,10 @@ export const del: { path: PathInput, handler: Route.Handler, options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router> - ( + ( self: Router, path: PathInput, handler: Route.Handler, @@ -458,10 +453,10 @@ export const head: { path: PathInput, handler: Route.Handler, options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router> - ( + ( self: Router, path: PathInput, handler: Route.Handler, @@ -478,10 +473,10 @@ export const options: { path: PathInput, handler: Route.Handler, options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router ) => Router> - ( + ( self: Router, path: PathInput, handler: Route.Handler, @@ -511,7 +506,7 @@ export const catchAll: { ( f: (e: E) => Route.Handler ): (self: Router) => Router> - ( + ( self: Router, f: (e: E) => Route.Handler ): Router> @@ -525,7 +520,7 @@ export const catchAllCause: { ( f: (e: Cause.Cause) => Route.Handler ): (self: Router) => Router> - ( + ( self: Router, f: (e: Cause.Cause) => Route.Handler ): Router> @@ -542,7 +537,7 @@ export const catchTag: { ): ( self: Router ) => Router, R | Router.ExcludeProvided> - ( + ( self: Router, k: K, f: (e: Extract) => Route.Handler @@ -606,8 +601,8 @@ export const provideService: { >( tag: T, service: Context.Tag.Service - ): (self: Router) => Router>> - >( + ): (self: Router) => Router>> + >( self: Router, tag: T, service: Context.Tag.Service @@ -622,14 +617,14 @@ export const provideServiceEffect: { , R1, E1>( tag: T, effect: Effect.Effect, E1, R1> - ): ( + ): ( self: Router ) => Router< E1 | E, | Exclude> | Exclude, Context.Tag.Identifier> > - , R1, E1>( + , R1, E1>( self: Router, tag: T, effect: Effect.Effect, E1, R1> diff --git a/packages/platform/src/Http/Server.ts b/packages/platform/src/Http/Server.ts index 53fc0dcbe5..c11a5b0407 100644 --- a/packages/platform/src/Http/Server.ts +++ b/packages/platform/src/Http/Server.ts @@ -29,12 +29,12 @@ export type TypeId = typeof TypeId export interface Server { readonly [TypeId]: TypeId readonly serve: { - (httpApp: App.Default): Effect.Effect< + (httpApp: App.Default): Effect.Effect< void, never, Exclude | Scope.Scope > - >( + >( httpApp: App.Default, middleware: Middleware.Middleware.Applied ): Effect.Effect< @@ -104,10 +104,10 @@ export const make: ( * @category accessors */ export const serve: { - (): ( + (): ( httpApp: App.Default ) => Layer.Layer> - >( + >( middleware: Middleware.Middleware.Applied ): ( httpApp: App.Default @@ -116,10 +116,10 @@ export const serve: { never, Server | Exclude, ServerRequest.ServerRequest | Scope.Scope> > - ( + ( httpApp: App.Default ): Layer.Layer> - >( + >( httpApp: App.Default, middleware: Middleware.Middleware.Applied ): Layer.Layer, ServerRequest.ServerRequest | Scope.Scope>> @@ -130,10 +130,10 @@ export const serve: { * @category accessors */ export const serveEffect: { - (): ( + (): ( httpApp: App.Default ) => Effect.Effect> - >( + >( middleware: Middleware.Middleware.Applied ): ( httpApp: App.Default @@ -142,10 +142,10 @@ export const serveEffect: { never, Scope.Scope | Server | Exclude, ServerRequest.ServerRequest> > - ( + ( httpApp: App.Default ): Effect.Effect> - >( + >( httpApp: App.Default, middleware: Middleware.Middleware.Applied ): Effect.Effect, ServerRequest.ServerRequest>> @@ -161,7 +161,7 @@ export const formatAddress: (address: Address) => string = internal.formatAddres * @since 1.0.0 * @category address */ -export const addressWith: ( +export const addressWith: ( effect: (address: Address) => Effect.Effect ) => Effect.Effect = internal.addressWith @@ -169,7 +169,7 @@ export const addressWith: ( * @since 1.0.0 * @category address */ -export const addressFormattedWith: ( +export const addressFormattedWith: ( effect: (address: string) => Effect.Effect ) => Effect.Effect = internal.addressFormattedWith @@ -183,5 +183,5 @@ export const logAddress: Effect.Effect = internal.logAddres * @since 1.0.0 * @category address */ -export const withLogAddress: (layer: Layer.Layer) => Layer.Layer> = +export const withLogAddress: (layer: Layer.Layer) => Layer.Layer> = internal.withLogAddress diff --git a/packages/platform/src/Socket.ts b/packages/platform/src/Socket.ts index c57d9c99a9..104e0c8385 100644 --- a/packages/platform/src/Socket.ts +++ b/packages/platform/src/Socket.ts @@ -46,10 +46,10 @@ export const Socket: Context.Tag = Context.GenericTag( */ export interface Socket { readonly [TypeId]: TypeId - readonly run: ( + readonly run: <_, E, R>( handler: (_: Uint8Array) => Effect.Effect<_, E, R> ) => Effect.Effect - readonly runRaw: ( + readonly runRaw: <_, E, R>( handler: (_: string | Uint8Array) => Effect.Effect<_, E, R> ) => Effect.Effect readonly writer: Effect.Effect< @@ -337,7 +337,7 @@ export const fromWebSocket = ( )) const acquireContext = yield* Effect.context>() - const runRaw = (handler: (_: string | Uint8Array) => Effect.Effect<_, E, R>) => + const runRaw = <_, E, R>(handler: (_: string | Uint8Array) => Effect.Effect<_, E, R>) => Effect.gen(function*(_) { const scope = yield* Effect.scope const ws = yield* (acquire.pipe( @@ -433,7 +433,7 @@ export const fromWebSocket = ( ) const encoder = new TextEncoder() - const run = (handler: (_: Uint8Array) => Effect.Effect<_, E, R>) => + const run = <_, E, R>(handler: (_: Uint8Array) => Effect.Effect<_, E, R>) => runRaw((data) => typeof data === "string" ? handler(encoder.encode(data)) diff --git a/packages/platform/src/WorkerRunner.ts b/packages/platform/src/WorkerRunner.ts index 27dee428e5..8d38a160bb 100644 --- a/packages/platform/src/WorkerRunner.ts +++ b/packages/platform/src/WorkerRunner.ts @@ -95,7 +95,7 @@ export declare namespace Runner { * @since 1.0.0 * @category constructors */ -export const make: ( +export const make: ( process: (request: I) => Stream.Stream | Effect.Effect, options?: Runner.Options | undefined ) => Effect.Effect = internal.make @@ -104,7 +104,7 @@ export const make: ( * @since 1.0.0 * @category layers */ -export const layer: ( +export const layer: ( process: (request: I) => Stream.Stream | Effect.Effect, options?: Runner.Options | undefined ) => Layer.Layer = internal.layer diff --git a/packages/platform/src/internal/http/client.ts b/packages/platform/src/internal/http/client.ts index b92311c448..4a7a85238f 100644 --- a/packages/platform/src/internal/http/client.ts +++ b/packages/platform/src/internal/http/client.ts @@ -45,8 +45,8 @@ export const currentTracerDisabledWhen = globalValue( export const withTracerDisabledWhen = dual< ( predicate: Predicate.Predicate - ) => (effect: Effect.Effect) => Effect.Effect, - ( + ) => (effect: Effect.Effect) => Effect.Effect, + ( effect: Effect.Effect, predicate: Predicate.Predicate ) => Effect.Effect @@ -62,8 +62,8 @@ export const currentTracerPropagation = globalValue( export const withTracerPropagation = dual< ( enabled: boolean - ) => (effect: Effect.Effect) => Effect.Effect, - ( + ) => (effect: Effect.Effect) => Effect.Effect, + ( effect: Effect.Effect, enabled: boolean ) => Effect.Effect @@ -79,8 +79,8 @@ export const currentFetchOptions = globalValue( export const withFetchOptions = dual< ( options: RequestInit - ) => (effect: Effect.Effect) => Effect.Effect, - ( + ) => (effect: Effect.Effect) => Effect.Effect, + ( effect: Effect.Effect, options: RequestInit ) => Effect.Effect @@ -96,7 +96,7 @@ const clientProto = { const isClient = (u: unknown): u is Client.Client => Predicate.hasProperty(u, TypeId) /** @internal */ -export const make = ( +export const make = ( execute: ( request: Effect.Effect ) => Effect.Effect, @@ -236,13 +236,13 @@ export const fetch: Client.Client.Default = makeDefault((request, url, signal, f /** @internal */ export const transform = dual< - ( + ( f: ( effect: Effect.Effect, request: ClientRequest.ClientRequest ) => Effect.Effect ) => (self: Client.Client) => Client.Client, - ( + ( self: Client.Client, f: ( effect: Effect.Effect, @@ -305,10 +305,10 @@ export const layer = Layer.succeed(tag, fetch) /** @internal */ export const transformResponse = dual< - ( + ( f: (effect: Effect.Effect) => Effect.Effect ) => (self: Client.Client) => Client.Client, - ( + ( self: Client.Client, f: (effect: Effect.Effect) => Effect.Effect ) => Client.Client @@ -316,7 +316,7 @@ export const transformResponse = dual< /** @internal */ export const catchTag: { - ( + ( tag: K, f: (e: Extract) => Effect.Effect ): ( @@ -327,9 +327,9 @@ export const catchTag: { E, A, K extends E extends { _tag: string } ? E["_tag"] : never, + A1, R1, - E1, - A1 + E1 >( self: Client.Client, tag: K, @@ -494,16 +494,16 @@ export const catchTags: { /** @internal */ export const catchAll: { - ( + ( f: (e: E) => Effect.Effect ): (self: Client.Client) => Client.Client - ( + ( self: Client.Client, f: (e: E) => Effect.Effect ): Client.Client } = dual( 2, - ( + ( self: Client.Client, f: (e: E) => Effect.Effect ): Client.Client => transformResponse(self, Effect.catchAll(f)) @@ -511,13 +511,13 @@ export const catchAll: { /** @internal */ export const filterOrElse = dual< - ( + ( f: Predicate.Predicate, orElse: (a: A) => Effect.Effect ) => ( self: Client.Client ) => Client.Client, - ( + ( self: Client.Client, f: Predicate.Predicate, orElse: (a: A) => Effect.Effect @@ -550,10 +550,10 @@ export const map = dual< /** @internal */ export const mapEffect = dual< - ( + ( f: (a: A) => Effect.Effect ) => (self: Client.Client) => Client.Client, - ( + ( self: Client.Client, f: (a: A) => Effect.Effect ) => Client.Client @@ -566,10 +566,10 @@ export const scoped = ( /** @internal */ export const mapEffectScoped = dual< - ( + ( f: (a: A) => Effect.Effect ) => (self: Client.Client) => Client.Client>, - ( + ( self: Client.Client, f: (a: A) => Effect.Effect ) => Client.Client> @@ -588,14 +588,14 @@ export const mapRequest = dual< /** @internal */ export const mapRequestEffect = dual< - ( + ( f: ( a: ClientRequest.ClientRequest ) => Effect.Effect ) => ( self: Client.Client ) => Client.Client, - ( + ( self: Client.Client, f: ( a: ClientRequest.ClientRequest @@ -616,14 +616,14 @@ export const mapInputRequest = dual< /** @internal */ export const mapInputRequestEffect = dual< - ( + ( f: ( a: ClientRequest.ClientRequest ) => Effect.Effect ) => ( self: Client.Client ) => Client.Client, - ( + ( self: Client.Client, f: ( a: ClientRequest.ClientRequest @@ -694,10 +694,10 @@ export const schemaFunction = dual< /** @internal */ export const tap = dual< - ( + ( f: (a: A) => Effect.Effect<_, E2, R2> ) => (self: Client.Client) => Client.Client, - ( + ( self: Client.Client, f: (a: A) => Effect.Effect<_, E2, R2> ) => Client.Client @@ -705,12 +705,12 @@ export const tap = dual< /** @internal */ export const tapRequest = dual< - ( + <_, E2, R2>( f: (a: ClientRequest.ClientRequest) => Effect.Effect<_, E2, R2> ) => ( self: Client.Client ) => Client.Client, - ( + ( self: Client.Client, f: (a: ClientRequest.ClientRequest) => Effect.Effect<_, E2, R2> ) => Client.Client diff --git a/packages/platform/src/internal/http/middleware.ts b/packages/platform/src/internal/http/middleware.ts index c4cff7920e..c01360903a 100644 --- a/packages/platform/src/internal/http/middleware.ts +++ b/packages/platform/src/internal/http/middleware.ts @@ -24,7 +24,7 @@ export const loggerDisabled = globalValue( ) /** @internal */ -export const withLoggerDisabled = (self: Effect.Effect): Effect.Effect => +export const withLoggerDisabled = (self: Effect.Effect): Effect.Effect => Effect.zipRight( FiberRef.set(loggerDisabled, true), self @@ -40,8 +40,8 @@ export const currentTracerDisabledWhen = globalValue( export const withTracerDisabledWhen = dual< ( predicate: Predicate.Predicate - ) => (layer: Layer.Layer) => Layer.Layer, - ( + ) => (layer: Layer.Layer) => Layer.Layer, + ( layer: Layer.Layer, predicate: Predicate.Predicate ) => Layer.Layer @@ -51,8 +51,8 @@ export const withTracerDisabledWhen = dual< export const withTracerDisabledWhenEffect = dual< ( predicate: Predicate.Predicate - ) => (effect: Effect.Effect) => Effect.Effect, - ( + ) => (effect: Effect.Effect) => Effect.Effect, + ( effect: Effect.Effect, predicate: Predicate.Predicate ) => Effect.Effect @@ -62,8 +62,8 @@ export const withTracerDisabledWhenEffect = dual< export const withTracerDisabledForUrls = dual< ( urls: ReadonlyArray - ) => (layer: Layer.Layer) => Layer.Layer, - ( + ) => (layer: Layer.Layer) => Layer.Layer, + ( layer: Layer.Layer, urls: ReadonlyArray ) => Layer.Layer diff --git a/packages/platform/src/internal/http/multipart.ts b/packages/platform/src/internal/http/multipart.ts index e2fbaf0ed6..12131ca659 100644 --- a/packages/platform/src/internal/http/multipart.ts +++ b/packages/platform/src/internal/http/multipart.ts @@ -60,8 +60,8 @@ export const maxParts: FiberRef.FiberRef> = globalValue( /** @internal */ export const withMaxParts = dual< - (count: Option.Option) => (effect: Effect.Effect) => Effect.Effect, - (effect: Effect.Effect, count: Option.Option) => Effect.Effect + (count: Option.Option) => (effect: Effect.Effect) => Effect.Effect, + (effect: Effect.Effect, count: Option.Option) => Effect.Effect >(2, (effect, count) => Effect.locally(effect, maxParts, count)) /** @internal */ @@ -72,8 +72,8 @@ export const maxFieldSize: FiberRef.FiberRef = globalValue( /** @internal */ export const withMaxFieldSize = dual< - (size: FileSystem.SizeInput) => (effect: Effect.Effect) => Effect.Effect, - (effect: Effect.Effect, size: FileSystem.SizeInput) => Effect.Effect + (size: FileSystem.SizeInput) => (effect: Effect.Effect) => Effect.Effect, + (effect: Effect.Effect, size: FileSystem.SizeInput) => Effect.Effect >(2, (effect, size) => Effect.locally(effect, maxFieldSize, FileSystem.Size(size))) /** @internal */ @@ -84,8 +84,8 @@ export const maxFileSize: FiberRef.FiberRef> = gl /** @internal */ export const withMaxFileSize = dual< - (size: Option.Option) => (effect: Effect.Effect) => Effect.Effect, - (effect: Effect.Effect, size: Option.Option) => Effect.Effect + (size: Option.Option) => (effect: Effect.Effect) => Effect.Effect, + (effect: Effect.Effect, size: Option.Option) => Effect.Effect >(2, (effect, size) => Effect.locally(effect, maxFileSize, Option.map(size, FileSystem.Size))) /** @internal */ @@ -96,8 +96,8 @@ export const fieldMimeTypes: FiberRef.FiberRef> = globalValu /** @internal */ export const withFieldMimeTypes = dual< - (mimeTypes: ReadonlyArray) => (effect: Effect.Effect) => Effect.Effect, - (effect: Effect.Effect, mimeTypes: ReadonlyArray) => Effect.Effect + (mimeTypes: ReadonlyArray) => (effect: Effect.Effect) => Effect.Effect, + (effect: Effect.Effect, mimeTypes: ReadonlyArray) => Effect.Effect >(2, (effect, mimeTypes) => Effect.locally(effect, fieldMimeTypes, Chunk.fromIterable(mimeTypes))) /** @internal */ diff --git a/packages/platform/src/internal/http/multiplex.ts b/packages/platform/src/internal/http/multiplex.ts index c0d74d3c0e..0149336b57 100644 --- a/packages/platform/src/internal/http/multiplex.ts +++ b/packages/platform/src/internal/http/multiplex.ts @@ -68,7 +68,7 @@ class MultiplexImpl export const empty: Multiplex.Multiplex = new MultiplexImpl([]) /** @internal */ -export const make = ( +export const make = ( apps: Iterable< readonly [predicate: (request: ServerRequest.ServerRequest) => Effect.Effect, app: App.Default] > @@ -76,11 +76,11 @@ export const make = ( /** @internal */ export const add = dual< - ( + ( predicate: (request: ServerRequest.ServerRequest) => Effect.Effect, app: App.Default - ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, - ( + ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, + ( self: Multiplex.Multiplex, predicate: (request: ServerRequest.ServerRequest) => Effect.Effect, app: App.Default @@ -96,12 +96,12 @@ export const add = dual< /** @internal */ export const headerExact = dual< - ( + ( header: string, value: string, app: App.Default - ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, - ( + ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, + ( self: Multiplex.Multiplex, header: string, value: string, @@ -118,12 +118,12 @@ export const headerExact = dual< /** @internal */ export const headerRegex = dual< - ( + ( header: string, regex: RegExp, app: App.Default - ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, - ( + ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, + ( self: Multiplex.Multiplex, header: string, regex: RegExp, @@ -140,12 +140,12 @@ export const headerRegex = dual< /** @internal */ export const headerStartsWith = dual< - ( + ( header: string, prefix: string, app: App.Default - ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, - ( + ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, + ( self: Multiplex.Multiplex, header: string, prefix: string, @@ -162,12 +162,12 @@ export const headerStartsWith = dual< /** @internal */ export const headerEndsWith = dual< - ( + ( header: string, suffix: string, app: App.Default - ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, - ( + ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, + ( self: Multiplex.Multiplex, header: string, suffix: string, @@ -184,11 +184,11 @@ export const headerEndsWith = dual< /** @internal */ export const hostRegex = dual< - ( + ( regex: RegExp, app: App.Default - ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, - ( + ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, + ( self: Multiplex.Multiplex, regex: RegExp, app: App.Default @@ -197,11 +197,11 @@ export const hostRegex = dual< /** @internal */ export const hostStartsWith = dual< - ( + ( prefix: string, app: App.Default - ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, - ( + ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, + ( self: Multiplex.Multiplex, prefix: string, app: App.Default @@ -210,11 +210,11 @@ export const hostStartsWith = dual< /** @internal */ export const hostEndsWith = dual< - ( + ( suffix: string, app: App.Default - ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, - ( + ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, + ( self: Multiplex.Multiplex, suffix: string, app: App.Default @@ -223,11 +223,11 @@ export const hostEndsWith = dual< /** @internal */ export const hostExact = dual< - ( + ( host: string, app: App.Default - ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, - ( + ) => (self: Multiplex.Multiplex) => Multiplex.Multiplex, + ( self: Multiplex.Multiplex, host: string, app: App.Default diff --git a/packages/platform/src/internal/http/router.ts b/packages/platform/src/internal/http/router.ts index b007488bff..f46e302cce 100644 --- a/packages/platform/src/internal/http/router.ts +++ b/packages/platform/src/internal/http/router.ts @@ -180,7 +180,7 @@ class RouterImpl extends Effectable.StructuralClass< } } -const toHttpApp = ( +const toHttpApp = ( self: Router.Router ): App.Default => { const router = FindMyWay.make>() @@ -331,8 +331,8 @@ export const makeRoute = ( /** @internal */ export const concat = dual< - (that: Router.Router) => (self: Router.Router) => Router.Router, - (self: Router.Router, that: Router.Router) => Router.Router + (that: Router.Router) => (self: Router.Router) => Router.Router, + (self: Router.Router, that: Router.Router) => Router.Router >(2, (self, that) => new RouterImpl(Chunk.appendAll(self.routes, that.routes) as any, self.mounts)) const removeTrailingSlash = ( @@ -341,8 +341,8 @@ const removeTrailingSlash = ( /** @internal */ export const prefixAll = dual< - (prefix: Router.PathInput) => (self: Router.Router) => Router.Router, - (self: Router.Router, prefix: Router.PathInput) => Router.Router + (prefix: Router.PathInput) => (self: Router.Router) => Router.Router, + (self: Router.Router, prefix: Router.PathInput) => Router.Router >( 2, (self, prefix) => { @@ -369,8 +369,8 @@ export const mount = dual< ( path: `/${string}`, that: Router.Router - ) => (self: Router.Router) => Router.Router, - ( + ) => (self: Router.Router) => Router.Router, + ( self: Router.Router, path: `/${string}`, that: Router.Router @@ -388,10 +388,10 @@ export const mountApp = dual< options?: { readonly includePrefix?: boolean | undefined } | undefined - ) => ( + ) => ( self: Router.Router ) => Router.Router>, - ( + ( self: Router.Router, path: `/${string}`, that: App.Default, @@ -401,7 +401,7 @@ export const mountApp = dual< ) => Router.Router> >( (args) => Predicate.hasProperty(args[0], TypeId), - ( + ( self: Router.Router, path: `/${string}`, that: App.Default, @@ -420,10 +420,10 @@ export const route = (method: Method.Method | "*"): { options?: { readonly uninterruptible?: boolean | undefined } | undefined - ): ( + ): ( self: Router.Router ) => Router.Router> - ( + ( self: Router.Router, path: Router.PathInput, handler: Router.Route.Handler, @@ -436,10 +436,10 @@ export const route = (method: Method.Method | "*"): { ( path: Router.PathInput, handler: Router.Route.Handler - ) => ( + ) => ( self: Router.Router ) => Router.Router>, - ( + ( self: Router.Router, path: Router.PathInput, handler: Router.Route.Handler, @@ -512,7 +512,7 @@ export const catchAll = dual< ( f: (e: E) => Router.Route.Handler ) => (self: Router.Router) => Router.Router>, - ( + ( self: Router.Router, f: (e: E) => Router.Route.Handler ) => Router.Router> @@ -523,7 +523,7 @@ export const catchAllCause = dual< ( f: (e: Cause.Cause) => Router.Route.Handler ) => (self: Router.Router) => Router.Router>, - ( + ( self: Router.Router, f: (e: Cause.Cause) => Router.Route.Handler ) => Router.Router> @@ -537,7 +537,7 @@ export const catchTag = dual< ) => ( self: Router.Router ) => Router.Router | E1, R | Router.Router.ExcludeProvided>, - ( + ( self: Router.Router, k: K, f: (e: Extract) => Router.Route.Handler @@ -594,15 +594,15 @@ export const provideService = dual< >( tag: T, service: Context.Tag.Service - ) => ( + ) => ( self: Router.Router ) => Router.Router>>, - >( + >( self: Router.Router, tag: T, service: Context.Tag.Service ) => Router.Router>> ->(3, >( +>(3, >( self: Router.Router, tag: T, service: Context.Tag.Service @@ -613,7 +613,7 @@ export const provideServiceEffect = dual< , R1, E1>( tag: T, effect: Effect.Effect, E1, R1> - ) => ( + ) => ( self: Router.Router ) => Router.Router< E | E1, @@ -622,7 +622,7 @@ export const provideServiceEffect = dual< Context.Tag.Identifier > >, - , R1, E1>( + , R1, E1>( self: Router.Router, tag: T, effect: Effect.Effect, E1, R1> @@ -633,7 +633,7 @@ export const provideServiceEffect = dual< Context.Tag.Identifier > > ->(3, , R1, E1>( +>(3, , R1, E1>( self: Router.Router, tag: T, effect: Effect.Effect, E1, R1> diff --git a/packages/platform/src/internal/http/server.ts b/packages/platform/src/internal/http/server.ts index 756f927ee6..be466c1c71 100644 --- a/packages/platform/src/internal/http/server.ts +++ b/packages/platform/src/internal/http/server.ts @@ -35,10 +35,10 @@ export const make = ( /** @internal */ export const serve = dual< { - (): ( + (): ( httpApp: App.Default ) => Layer.Layer> - >(middleware: Middleware.Middleware.Applied): ( + >(middleware: Middleware.Middleware.Applied): ( httpApp: App.Default ) => Layer.Layer< never, @@ -47,10 +47,10 @@ export const serve = dual< > }, { - ( + ( httpApp: App.Default ): Layer.Layer> - >( + >( httpApp: App.Default, middleware: Middleware.Middleware.Applied ): Layer.Layer< @@ -61,7 +61,7 @@ export const serve = dual< } >( (args) => Effect.isEffect(args[0]), - >( + >( httpApp: App.Default, middleware?: Middleware.Middleware.Applied ): Layer.Layer< @@ -80,14 +80,14 @@ export const serve = dual< /** @internal */ export const serveEffect = dual< { - (): ( + (): ( httpApp: App.Default ) => Effect.Effect< void, never, Server.Server | Scope.Scope | Exclude > - >(middleware: Middleware.Middleware.Applied): ( + >(middleware: Middleware.Middleware.Applied): ( httpApp: App.Default ) => Effect.Effect< void, @@ -96,10 +96,10 @@ export const serveEffect = dual< > }, { - ( + ( httpApp: App.Default ): Effect.Effect> - >( + >( httpApp: App.Default, middleware: Middleware.Middleware.Applied ): Effect.Effect< @@ -110,7 +110,7 @@ export const serveEffect = dual< } >( (args) => Effect.isEffect(args[0]), - (>( + (>( httpApp: App.Default, middleware: Middleware.Middleware.Applied ): Effect.Effect< @@ -135,7 +135,7 @@ export const formatAddress = (address: Server.Address): string => { } /** @internal */ -export const addressWith = ( +export const addressWith = ( effect: (address: Server.Address) => Effect.Effect ): Effect.Effect => Effect.flatMap( @@ -144,7 +144,7 @@ export const addressWith = ( ) /** @internal */ -export const addressFormattedWith = ( +export const addressFormattedWith = ( effect: (address: string) => Effect.Effect ): Effect.Effect => Effect.flatMap( @@ -158,7 +158,7 @@ export const logAddress: Effect.Effect = addressForm ) /** @internal */ -export const withLogAddress = ( +export const withLogAddress = ( layer: Layer.Layer ): Layer.Layer> => Layer.effectDiscard(logAddress).pipe( diff --git a/packages/platform/src/internal/workerRunner.ts b/packages/platform/src/internal/workerRunner.ts index 9ccc48efc0..e9a65cd4dc 100644 --- a/packages/platform/src/internal/workerRunner.ts +++ b/packages/platform/src/internal/workerRunner.ts @@ -30,7 +30,7 @@ export const PlatformRunner = Context.GenericTag( ) /** @internal */ -export const make = ( +export const make = ( process: (request: I) => Stream.Stream | Effect.Effect, options?: WorkerRunner.Runner.Options ) => @@ -172,7 +172,7 @@ export const make = ( }) /** @internal */ -export const layer = ( +export const layer = ( process: (request: I) => Stream.Stream | Effect.Effect, options?: WorkerRunner.Runner.Options ): Layer.Layer => Layer.scopedDiscard(make(process, options))