1.0.1 • Published 2 years ago
@aylonarmstrong/the-one-sdk v1.0.1
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