@aylonarmstrong/the-one-sdk
v1.0.1
Published
An sdk for https://the-one-api.dev/ with nice typescript implementations to make the developer experience great
Downloads
7
Readme
The One SDK
An sdk for https://the-one-api.dev/ with nice typescript implementations to make the developer experience great
Installation
Install the package via npm(or your favorite package manager)
npm install @aylonarmstrong/the-one-sdk -S
#or
pnpm add @aylonarmstrong/the-one-sdk
Usage
The package needs to be configured with the api key from the-one-api.dev.
const apiKey = process.env.API_KEY
const client = new Client(apiKey)
await client.characters.list()
Usage with typescript
Using this package with typescript is where the real power comes from. There is typing and overloading for nearly every method.
await client.characters.list({
// 'name' is hinted in your ide
sort: new Sort('name')
}, {
// 'name' is also hinted. Each key in the object `Character` is hinted with filters. The same goes for other resources
name: new RegexEquals(/^Gandalf/)
})
Check out the examples folder
Configuration
There are a few configuration options. You pass these as an object to the second parameter for Client
| Option | Default | Description |
|-----------------------|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|
| baseUrl
| https://the-one-api.dev
| Host that requests are made to. |
| axiosOptions
| null | You can use this to pass any options you would like the library to pass on to axios. This is helpful for attaching headers |
| statsd
| null | A collection of options to pass to the statsd library. Most of the options are from the hot-shots
library |
| statsd.successMetric
| 'lotr-sdk.api-call' | The metric that will be emitted when a successful request is made. url
and apiRequestName
are passed in as tags |
| statsd.errorMetric
| 'lotr-sdk.api-call.error' | The metric that will be emitted when a request errors. url
, statusCode
, and apiRequestName
are passed in as tags |
Contributing
We use pnpm for our package manager so first things first is to install that:
npm i -g pnpm
Next install the dependencies:
pnpm install
Tests
Test are made with jest and you can run them like so
pnpm run test