@xylabs/api

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.