npm.io
6.1.4 • Published 4d ago

@xylabs/api

Licence
LGPL-3.0-only
Version
6.1.4
Deps
3
Size
23 kB
Vulns
0
Weekly
3.8K

logo

@xylabs/api

npm license

Base functionality used throughout XY Labs TypeScript/JavaScript libraries

Install

Using npm:

npm install {{name}}

Using yarn:

yarn add {{name}}

Using pnpm:

pnpm add {{name}}

Using bun:

bun add {{name}}

License

See the LICENSE file for license rights and limitations (LGPL-3.0-only).

Reference

packages
api
### .temp-typedoc

  ### classes

    ### <a id="ApiClient"></a>ApiClient

@xylabs/api


Abstract base class for API clients that provides stage and token configuration.

Constructors

Constructor
new ApiClient(token?, stage?): ApiClient;
Parameters
token?

string | null

stage?

ApiStage

Returns

ApiClient

Properties

stage?
protected optional stage?: ApiStage;

token?
protected optional token?: string | null;

Methods

endPoint()
abstract endPoint(): string;
Returns

string

    ### <a id="ApiEndpoint"></a>ApiEndpoint

@xylabs/api


Generic REST API endpoint wrapper that supports fetching and inserting typed data.

Type Parameters

T

T

The type of data returned by the endpoint

Constructors

Constructor
new ApiEndpoint<T>(config, path): ApiEndpoint<T>;
Parameters
config

ApiConfig

path

string

Returns

ApiEndpoint<T>

Accessors

value
Get Signature
get value(): T | undefined;
Returns

T | undefined

Methods

fetch()
fetch(): Promise<T>;
Returns

Promise<T>


get()
get(): Promise<T | NonNullable<T>>;
Returns

Promise<T | NonNullable<T>>


insert()
insert(value): Promise<T>;
Parameters
value

T

Returns

Promise<T>

  ### functions

    ### <a id="getApiStage"></a>getApiStage

@xylabs/api


function getApiStage(hostname): "beta" | "local" | "prod";

Determines the API stage based on the hostname.

Parameters

hostname

string

The hostname to evaluate

Returns

"beta" | "local" | "prod"

The corresponding ApiStage (Local, Beta, or Prod)

  ### interfaces

    ### <a id="ApiConfig"></a>ApiConfig

@xylabs/api


Configuration for connecting to an API, including domain, authentication, and user identification.

Properties

apiDomain
apiDomain: string;

apiKey?
optional apiKey?: string;

jwtToken?
optional jwtToken?: string;

userid?
optional userid?: string;
  ### type-aliases

    ### <a id="ApiStage"></a>ApiStage

@xylabs/api


type ApiStage = EnumValue<typeof ApiStage>;

A valid API stage value ('prod', 'beta', or 'local').

  ### variables

    ### <a id="ApiStage"></a>ApiStage

@xylabs/api


const ApiStage: Enum<{
  Beta: "beta";
  Local: "local";
  Prod: "prod";
}>;

Deployment stage identifiers for API environments.

Credits

Made with and by XY Labs

Keywords