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

ApiGroup overview

Api groups.

Added in v1.0.0


Table of contents


constructors

delete

Signature

export declare const delete: <Id extends ApiEndpoint.ApiEndpoint.AnyId>(id: Id, path: PathInput, options?: Partial<ApiEndpoint.Options>) => ApiEndpoint.ApiEndpoint.Default<Id>

Added in v1.0.0

endpoint

Signature

export declare const endpoint: <Id extends ApiEndpoint.ApiEndpoint.AnyId>(
  method: HttpMethod,
  id: Id,
  path: PathInput,
  options?: Partial<ApiEndpoint.Options>
) => ApiEndpoint.ApiEndpoint.Default<Id>

Added in v1.0.0

get

Signature

export declare const get: <Id extends ApiEndpoint.ApiEndpoint.AnyId>(
  id: Id,
  path: PathInput,
  options?: Partial<ApiEndpoint.Options>
) => ApiEndpoint.ApiEndpoint.Default<Id>

Added in v1.0.0

make

Signature

export declare const make: (name: string, options?: Partial<Options>) => ApiGroup.Empty

Added in v1.0.0

patch

Signature

export declare const patch: <Id extends ApiEndpoint.ApiEndpoint.AnyId>(
  id: Id,
  path: PathInput,
  options?: Partial<ApiEndpoint.Options>
) => ApiEndpoint.ApiEndpoint.Default<Id>

Added in v1.0.0

post

Signature

export declare const post: <Id extends ApiEndpoint.ApiEndpoint.AnyId>(
  id: Id,
  path: PathInput,
  options?: Partial<ApiEndpoint.Options>
) => ApiEndpoint.ApiEndpoint.Default<Id>

Added in v1.0.0

put

Signature

export declare const put: <Id extends ApiEndpoint.ApiEndpoint.AnyId>(
  id: Id,
  path: PathInput,
  options?: Partial<ApiEndpoint.Options>
) => ApiEndpoint.ApiEndpoint.Default<Id>

Added in v1.0.0

setRequest

Signature

export declare const setRequest: <Request extends ApiRequest.Any>(
  request: Request
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  _ extends ApiRequest.Any,
  Response extends ApiResponse.Any,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, _, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, Response, Security>

Added in v1.0.0

models

ApiGroup (interface)

Signature

export interface ApiGroup<A extends ApiEndpoint.ApiEndpoint.Any> extends Pipeable.Pipeable, ApiGroup.Variance<A> {
  readonly name: string
  readonly endpoints: ReadonlyArray<A>
  readonly options: Options
}

Added in v1.0.0

ApiGroup (namespace)

Added in v1.0.0

Variance (interface)

Signature

export interface Variance<A extends ApiEndpoint.ApiEndpoint.Any> {
  readonly [TypeId]: {
    readonly _A: Types.Covariant<A>
  }
}

Added in v1.0.0

Any (type alias)

Any api group with Endpoint = Endpoint.Any.

Signature

export type Any = ApiGroup<ApiEndpoint.ApiEndpoint.Any>

Added in v1.0.0

Context (type alias)

Signature

export type Context<Endpoint> = [Endpoint] extends [ApiGroup<infer E>] ? ApiEndpoint.ApiEndpoint.Context<E> : never

Added in v1.0.0

Empty (type alias)

Default api group spec.

Signature

export type Empty = ApiGroup<never>

Added in v1.0.0

Options (interface)

Signature

export interface Options {
  readonly description?: string
  readonly externalDocs?: {
    readonly description?: string
    readonly url: string
  }
}

Added in v1.0.0

modifications

addEndpoint

Signature

export declare const addEndpoint: <E2 extends ApiEndpoint.ApiEndpoint.Any>(
  endpoint: E2
) => <E1 extends ApiEndpoint.ApiEndpoint.Any>(api: ApiGroup<E1>) => ApiGroup<E1 | E2>

Added in v1.0.0

addResponse

Signature

export declare const addResponse: <Status extends ApiResponse.AnyStatus, Body = Ignored, Headers = Ignored, R = never>(
  response:
    | ApiResponse<Status, Body, Headers, R>
    | { readonly status: Status; readonly body?: Schema<Body, any, R>; readonly headers?: Schema<Headers, any, R> }
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  Request extends ApiRequest.Any,
  Response1 extends ApiResponse.Any,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, Request, Response1, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, Response1 | ApiResponse<Status, Body, Headers, R>, Security>

Added in v1.0.0

setEndpointOptions

Signature

export declare const setEndpointOptions: (
  options: Partial<ApiEndpoint.Options>
) => <A extends ApiEndpoint.ApiEndpoint.Any>(endpoint: A) => A

Added in v1.0.0

setOptions

Signature

export declare const setOptions: (
  options: Partial<Options>
) => <A extends ApiEndpoint.ApiEndpoint.Any>(api: ApiGroup<A>) => ApiGroup<A>

Added in v1.0.0

setRequestBody

Signature

export declare const setRequestBody: <B, R2>(
  schema: Schema<B, any, R2>
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  _,
  P,
  Q,
  H,
  R1,
  Response extends ApiResponse.Any,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, ApiRequest<_, P, Q, H, R1>, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, H, R1 | R2>, Response, Security>

Added in v1.0.0

setRequestHeaders

Signature

export declare const setRequestHeaders: <H, I extends Readonly<Record<string, string | undefined>>, R2>(
  schema: Schema<H, I, R2>
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  B,
  P,
  Q,
  _,
  R1,
  Response extends ApiResponse.Any,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, _, R1>, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, H, R1 | R2>, Response, Security>

Added in v1.0.0

setRequestPath

Signature

export declare const setRequestPath: <P, I extends Readonly<Record<string, string | undefined>>, R2>(
  schema: Schema<P, I, R2>
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  B,
  _,
  Q,
  H,
  R1,
  Response extends ApiResponse.Any,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, _, Q, H, R1>, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, H, R1 | R2>, Response, Security>

Added in v1.0.0

setRequestQuery

Signature

export declare const setRequestQuery: <
  Q,
  I extends Readonly<Record<string, string | undefined | ReadonlyArray<string>>>,
  R2
>(
  schema: Schema<Q, I, R2>
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  B,
  P,
  _,
  H,
  R1,
  Response extends ApiResponse.Any,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, _, H, R1>, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, H, R1 | R2>, Response, Security>

Added in v1.0.0

setResponse

Signature

export declare const setResponse: <Status extends ApiResponse.AnyStatus, Body = Ignored, Headers = Ignored, R = never>(
  response:
    | { readonly status: Status; readonly body?: Schema<Body, any, R>; readonly headers?: Schema<Headers, any, R> }
    | ApiResponse<Status, Body, Headers, R>
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  Request extends ApiRequest.Any,
  _ extends ApiResponse.Any,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, Request, _, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<Status, Body, Headers, R>, Security>

Added in v1.0.0

setResponseBody

Signature

export declare const setResponseBody: <B, R2>(
  schema: Schema<B, any, R2>
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  Request extends ApiRequest.Any,
  S extends ApiResponse.AnyStatus,
  _,
  H,
  R1,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<S, _, H, R1>, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<S, B, H, R1 | R2>, Security>

Added in v1.0.0

setResponseHeaders

Signature

export declare const setResponseHeaders: <H, R2>(
  schema: Schema<H, any, R2>
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  Request extends ApiRequest.Any,
  S extends ApiResponse.AnyStatus,
  B,
  _,
  R1,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<S, B, _, R1>, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<S, B, H, R1 | R2>, Security>

Added in v1.0.0

setResponseRepresentations

Signature

export declare const setResponseRepresentations: (
  representations: NonEmptyReadonlyArray<Representation>
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  Request extends ApiRequest.Any,
  Response extends ApiResponse.Any,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, Request, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, Response, Security>

Added in v1.0.0

setResponseStatus

Signature

export declare const setResponseStatus: <Status extends ApiResponse.AnyStatus>(
  status: Status
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  Request extends ApiRequest.Any,
  _ extends ApiResponse.AnyStatus,
  B,
  H,
  R,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<_, B, H, R>, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<Status, B, H, R>, Security>

Added in v1.0.0

setSecurity

Signature

export declare const setSecurity: <Security extends Security.Any>(
  security: Security
) => <
  Id extends ApiEndpoint.ApiEndpoint.AnyId,
  Request extends ApiRequest.Any,
  Response extends ApiResponse.Any,
  _ extends Security.Any
>(
  endpoint: ApiEndpoint.ApiEndpoint<Id, Request, Response, _>
) => ApiEndpoint.ApiEndpoint<Id, Request, Response, Security>

Added in v1.0.0

refinements

isApiGroup

Signature

export declare const isApiGroup: (u: unknown) => u is ApiGroup.Any

Added in v1.0.0

type id

TypeId

Signature

export declare const TypeId: typeof TypeId

Added in v1.0.0

TypeId (type alias)

Signature

export type TypeId = typeof TypeId

Added in v1.0.0