Add more methods and singleton

This commit is contained in:
2024-10-18 12:50:44 -03:00
parent 962a3de36a
commit 009dfc04ab
4 changed files with 885 additions and 74 deletions

View File

@ -7,8 +7,10 @@ import { TribufuApi } from "../build/index.mjs";
dotenv.config();
async function main() {
const api = TribufuApi.fromEnv();
console.log(await api.getUserInfo());
const tribufu = TribufuApi.fromEnv();
console.log(
await tribufu.getServerByAddressAndQueryPort("mine.tribufu.com", 25565),
);
}
main();

View File

@ -66,7 +66,7 @@ export abstract class TribufuApiBase {
*/
protected static defaultHeaders(): HttpHeaders {
const headers = {};
headers["X-Tribufu-Language"] = "javascript";
headers["X-Tribufu-Library"] = "javascript";
headers["X-Tribufu-Version"] = TRIBUFU_VERSION;
return headers;
}

File diff suppressed because it is too large Load Diff

23
src/api/singletion.ts Normal file
View File

@ -0,0 +1,23 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
import { TribufuApi } from "./index";
/**
* **Tribufu API**
*
* Helper class to get a singleton instance of the Tribufu API.
*/
export class TribufuApiSingleton {
private static INSTANCE: TribufuApi | null = null;
private constructor() {}
public static getInstance(): TribufuApi {
if (!TribufuApiSingleton.INSTANCE) {
TribufuApiSingleton.INSTANCE = TribufuApi.fromEnvOrDefault();
}
return TribufuApiSingleton.INSTANCE;
}
}