diff options
author | Julien Dessaux | 2024-04-05 00:42:30 +0200 |
---|---|---|
committer | Julien Dessaux | 2024-04-07 23:01:52 +0200 |
commit | 234770b611df32178382b557df396db220070a7f (patch) | |
tree | 8c768846716eaf892ff75abe84d0f5c00e8519ff /nodejs/lib/api.ts | |
parent | [node] Fixed basic procurement trading loop (diff) | |
download | spacetraders-234770b611df32178382b557df396db220070a7f.tar.gz spacetraders-234770b611df32178382b557df396db220070a7f.tar.bz2 spacetraders-234770b611df32178382b557df396db220070a7f.zip |
[node] Big Ships lib refactoring
Diffstat (limited to '')
-rw-r--r-- | nodejs/lib/api.ts | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/nodejs/lib/api.ts b/nodejs/lib/api.ts index f023ccf..2bb81a6 100644 --- a/nodejs/lib/api.ts +++ b/nodejs/lib/api.ts @@ -3,8 +3,39 @@ import events from 'events'; import { PriorityQueue } from './priority_queue.ts'; import { getToken } from '../database/tokens.ts'; -import { APIError, Request, RequestPromise, Response } from '../model/api.ts'; -import { RateLimitError } from '../model/errors.ts'; +import { RateLimitError } from './errors.ts'; + +export type APIError = { + error: string; + code: number; + data: unknown; +}; + +export type Meta = { + limit: number; + page: number; + total: number; +} + +export type Request = { + endpoint: string; // the path part of the url to call + method?: string; // HTTP method for `fetch` call, defaults to 'GET' + page?: number; // run a paginated request starting from this page until all the following pages are fetched + payload?: { [key:string]: any}; // optional json object that will be sent along the request + priority?: number; // optional priority value, defaults to 10. lower than 10 means the message will be sent faster +}; + +export type RequestPromise<T> = { + reject: (reason?: any) => void; + request: Request; + resolve: (value: Response<T> | PromiseLike<Response<T>>) => void; +}; + +export type Response<T> = { + data: T; + error?: APIError; + meta?: Meta; +} // queue processor module variables const bus = new events.EventEmitter(); // a bus to notify the queue processor to start processing messages |