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

ApiGroup overview

Added in v1.0.0


Table of contents


utils

ApiGroup

Signature

export declare const ApiGroup: any

Added in v1.0.0

Options

Signature

export declare const Options: any

Added in v1.0.0

addEndpoint

Signature

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

Added in v1.0.0

addResponse

Signature

export declare const addResponse: <Status extends number, 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 string,
  Request extends ApiRequest.Any,
  Response1 extends ApiResponse.Any,
  Security extends Security.Any
>(
  endpoint: ApiEndpoint<Id, Request, Response1, Security>
) => ApiEndpoint<Id, Request, ApiResponse<Status, Body, Headers, R> | Response1, Security>

Added in v1.0.0

delete

Signature

export declare const delete: <Id, I, O>(id: Id, route: I, options: O) => ApiEndpoint<Id, ApiRequest<Ignored, MatchInput.HasPathParams<I> extends true ? Schema.Type<Route.PathSchema<MatchInput.Route<I>>> : Ignored, MatchInput.HasQueryParams<I> extends true ? Schema.Type<Route.QuerySchema<MatchInput.Route<I>>> : Ignored, Ignored, MatchInput.Context<I>>, ApiResponse.Default, Security<void, never, never>>

Added in v1.0.0

endpoint

Signature

export declare const endpoint: typeof make

Added in v1.0.0

get

Signature

export declare const get: <const Id extends string, I extends MatchInput.Any, O extends Options>(
  id: Id,
  route: I,
  options: O
) => ApiEndpoint<
  Id,
  ApiRequest<
    Ignored,
    MatchInput.HasPathParams<I> extends true ? Schema.Type<Route.PathSchema<MatchInput.Route<I>>> : Ignored,
    MatchInput.HasQueryParams<I> extends true ? Schema.Type<Route.QuerySchema<MatchInput.Route<I>>> : Ignored,
    Ignored,
    MatchInput.Context<I>
  >,
  ApiResponse.Default,
  Security<void, never, never>
>

Added in v1.0.0

make

Signature

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

Added in v1.0.0

patch

Signature

export declare const patch: <const Id extends string, I extends MatchInput.Any, O extends Options>(
  id: Id,
  route: I,
  options: O
) => ApiEndpoint<
  Id,
  ApiRequest<
    Ignored,
    MatchInput.HasPathParams<I> extends true ? Schema.Type<Route.PathSchema<MatchInput.Route<I>>> : Ignored,
    MatchInput.HasQueryParams<I> extends true ? Schema.Type<Route.QuerySchema<MatchInput.Route<I>>> : Ignored,
    Ignored,
    MatchInput.Context<I>
  >,
  ApiResponse.Default,
  Security<void, never, never>
>

Added in v1.0.0

post

Signature

export declare const post: <const Id extends string, I extends MatchInput.Any, O extends Options>(
  id: Id,
  route: I,
  options: O
) => ApiEndpoint<
  Id,
  ApiRequest<
    Ignored,
    MatchInput.HasPathParams<I> extends true ? Schema.Type<Route.PathSchema<MatchInput.Route<I>>> : Ignored,
    MatchInput.HasQueryParams<I> extends true ? Schema.Type<Route.QuerySchema<MatchInput.Route<I>>> : Ignored,
    Ignored,
    MatchInput.Context<I>
  >,
  ApiResponse.Default,
  Security<void, never, never>
>

Added in v1.0.0

put

Signature

export declare const put: <const Id extends string, I extends MatchInput.Any, O extends Options>(
  id: Id,
  route: I,
  options: O
) => ApiEndpoint<
  Id,
  ApiRequest<
    Ignored,
    MatchInput.HasPathParams<I> extends true ? Schema.Type<Route.PathSchema<MatchInput.Route<I>>> : Ignored,
    MatchInput.HasQueryParams<I> extends true ? Schema.Type<Route.QuerySchema<MatchInput.Route<I>>> : Ignored,
    Ignored,
    MatchInput.Context<I>
  >,
  ApiResponse.Default,
  Security<void, never, never>
>

Added in v1.0.0

setRequest

Signature

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

Added in v1.0.0

setRequestBody

Signature

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

Added in v1.0.0

setRequestHeaders

Signature

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

Added in v1.0.0

setRequestPath

Signature

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

Added in v1.0.0

setRequestQuery

Signature

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

Added in v1.0.0

setResponse

Signature

export declare const setResponse: <Status extends number, 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 string, Request extends ApiRequest.Any, _ extends ApiResponse.Any, Security extends Security.Any>(
  endpoint: ApiEndpoint<Id, Request, _, Security>
) => 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 string, Request extends ApiRequest.Any, S extends number, _, H, R1, Security extends Security.Any>(
  endpoint: ApiEndpoint<Id, Request, ApiResponse<S, _, H, R1>, Security>
) => ApiEndpoint<Id, Request, ApiResponse<S, B, H, R2 | R1>, Security>

Added in v1.0.0

setResponseHeaders

Signature

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

Added in v1.0.0

setResponseRepresentations

Signature

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

Added in v1.0.0

setResponseStatus

Signature

export declare const setResponseStatus: <Status extends number>(
  status: Status
) => <Id extends string, Request extends ApiRequest.Any, _ extends number, B, H, R, Security extends Security.Any>(
  endpoint: ApiEndpoint<Id, Request, ApiResponse<_, B, H, R>, Security>
) => 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 string, Request extends ApiRequest.Any, Response extends ApiResponse.Any, _ extends Security.Any>(
  endpoint: ApiEndpoint<Id, Request, Response, _>
) => ApiEndpoint<Id, Request, Response, Security>

Added in v1.0.0