Skip to main content Link Search Menu Expand Document (external link)

HttpApiMiddleware.ts overview

Since v1.0.0


Exports Grouped by Category


guards

isSecurity

Signature

declare const isSecurity: (u: TagClassAny) => u is TagClassSecurityAny

Source

Since v1.0.0

models

HttpApiMiddleware (interface)

Signature

export interface HttpApiMiddleware<Provides, E> extends Effect.Effect<Provides, E, HttpRouter.HttpRouter.Provided> {}

Source

Since v1.0.0

HttpApiMiddleware (namespace)

Source

Since v1.0.0

Any (interface)

Signature

export interface Any {
  readonly [TypeId]: TypeId
}

Source

Since v1.0.0

AnyId (interface)

Signature

export interface AnyId {
  readonly [TypeId]: {
    readonly provides: any
  }
}

Source

Since v1.0.0

Provides (type alias)

Signature

type Provides<A> = A extends { readonly [TypeId]: { readonly provides: infer P } } ? P : never

Source

Since v1.0.0

ExtractProvides (type alias)

Signature

type ExtractProvides<A> = Provides<Only<A>>

Source

Since v1.0.0

Error (type alias)

Signature

type Error<A> = A extends { readonly [TypeId]: { readonly failure: infer E } } ? E : never

Source

Since v1.0.0

ErrorContext (type alias)

Signature

type ErrorContext<A> = A extends { readonly [TypeId]: { readonly failureContext: infer R } } ? R : never

Source

Since v1.0.0

Only (type alias)

Signature

type Only<R> = Extract<R, AnyId>

Source

Since v1.0.0

Without (type alias)

Signature

type Without<R> = Exclude<R, AnyId>

Source

Since v1.0.0

HttpApiMiddlewareSecurity (type alias)

Signature

type HttpApiMiddlewareSecurity<Security, Provides, E> = {
  readonly [K in keyof Security]: (
    _: HttpApiSecurity.HttpApiSecurity.Type<Security[K]>
  ) => Effect.Effect<Provides, E, HttpRouter.HttpRouter.Provided>
}

Source

Since v1.0.0

TagClass (type alias)

Signature

type TagClass<Self, Name, Options> = Options extends {
  readonly security: Record<string, HttpApiSecurity.HttpApiSecurity>
}
  ? TagClass.BaseSecurity<
      Self,
      Name,
      Options,
      Simplify<
        HttpApiMiddlewareSecurity<Options["security"], TagClass.Service<Options>, TagClass.FailureService<Options>>
      >,
      Options["security"]
    >
  : TagClass.Base<Self, Name, Options, HttpApiMiddleware<TagClass.Service<Options>, TagClass.FailureService<Options>>>

Source

Since v1.0.0

TagClass (namespace)

Source

Since v1.0.0

Base (interface)

Signature

export interface Base<Self, Name extends string, Options, Service> extends Context.Tag<Self, Service> {
  new (_: never): Context.TagClassShape<Name, Service> & {
    readonly [TypeId]: {
      readonly provides: Provides<Options>
      readonly failure: Failure<Options>
      readonly failureContext: FailureContext<Options>
    }
  }
  readonly [TypeId]: TypeId
  readonly optional: Optional<Options>
  readonly failure: FailureSchema<Options>
  readonly provides: Options extends { readonly provides: Context.Tag<any, any> } ? Options["provides"] : undefined
}

Source

Since v1.0.0

BaseSecurity (interface)

Signature

export interface BaseSecurity<
  Self,
  Name extends string,
  Options,
  Service,
  Security extends Record<string, HttpApiSecurity.HttpApiSecurity>
> extends Base<Self, Name, Options, Service> {
  readonly [SecurityTypeId]: SecurityTypeId
  readonly security: Security
}

Source

Since v1.0.0

Provides (type alias)

Signature

type Provides<Options> = Options extends {
  readonly provides: Context.Tag<any, any>
  readonly optional?: false
}
  ? Context.Tag.Identifier<Options["provides"]>
  : never

Source

Since v1.0.0

Service (type alias)

Signature

type Service<Options> = Options extends { readonly provides: Context.Tag<any, any> }
  ? Context.Tag.Service<Options["provides"]>
  : void

Source

Since v1.0.0

FailureSchema (type alias)

Signature

type FailureSchema<Options> = Options extends { readonly failure: Schema.Schema.All; readonly optional?: false }
  ? Options["failure"]
  : typeof Schema.Never

Source

Since v1.0.0

Failure (type alias)

Signature

type Failure<Options> = Options extends {
  readonly failure: Schema.Schema<infer _A, infer _I, infer _R>
  readonly optional?: false
}
  ? _A
  : never

Source

Since v1.0.0

FailureContext (type alias)

Signature

type Schema.Schema.Context<FailureSchema<Options>> = Schema.Schema.Context<FailureSchema<Options>>

Source

Since v1.0.0

FailureService (type alias)

Signature

type FailureService<Options> = Optional<Options> extends true ? unknown : Failure<Options>

Source

Since v1.0.0

Optional (type alias)

Signature

type Optional<Options> = Options extends { readonly optional: true } ? true : false

Source

Since v1.0.0

TagClassAny (interface)

Signature

export interface TagClassAny extends Context.Tag<any, HttpApiMiddleware.Any> {
  readonly [TypeId]: TypeId
  readonly optional: boolean
  readonly provides?: Context.Tag<any, any>
  readonly failure: Schema.Schema.All
}

Source

Since v1.0.0

TagClassSecurityAny (interface)

Signature

export interface TagClassSecurityAny extends TagClassAny {
  readonly [SecurityTypeId]: SecurityTypeId
  readonly security: Record<string, HttpApiSecurity.HttpApiSecurity>
}

Source

Since v1.0.0

tags

Tag

Signature

declare const Tag: <Self>() => <
  const Name extends string,
  const Options extends {
    readonly optional?: boolean
    readonly failure?: Schema.Schema.All
    readonly provides?: Context.Tag<any, any>
    readonly security?: Record<string, HttpApiSecurity.HttpApiSecurity>
  }
>(
  id: Name,
  options?: Options | undefined
) => TagClass<Self, Name, Options>

Source

Since v1.0.0

type ids

SecurityTypeId

Signature

declare const SecurityTypeId: unique symbol

Source

Since v1.0.0

SecurityTypeId (type alias)

Signature

type SecurityTypeId = typeof SecurityTypeId

Source

Since v1.0.0

TypeId

Signature

declare const TypeId: unique symbol

Source

Since v1.0.0

TypeId (type alias)

Signature

type TypeId = typeof TypeId

Source

Since v1.0.0