diff options
author | Julien Dessaux | 2024-03-21 17:08:37 +0100 |
---|---|---|
committer | Julien Dessaux | 2024-03-27 15:21:00 +0100 |
commit | d668eac4a63a9aa98c3efff395faa23cfcea1c1b (patch) | |
tree | 691e3bb471bcacadb975f581f73e09b84287b4a5 /nodejs/model/api.ts | |
parent | [javascript] fixed mining loop (diff) | |
download | spacetraders-d668eac4a63a9aa98c3efff395faa23cfcea1c1b.tar.gz spacetraders-d668eac4a63a9aa98c3efff395faa23cfcea1c1b.tar.bz2 spacetraders-d668eac4a63a9aa98c3efff395faa23cfcea1c1b.zip |
[node] begin the great typescript rewrite
Diffstat (limited to 'nodejs/model/api.ts')
-rw-r--r-- | nodejs/model/api.ts | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/nodejs/model/api.ts b/nodejs/model/api.ts new file mode 100644 index 0000000..5092157 --- /dev/null +++ b/nodejs/model/api.ts @@ -0,0 +1,32 @@ +export type APIError = { + apiError: 'APIError'; + error: string; + code: number; + data: any; // TODO +}; + +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; +} |