This commit is contained in:
Daniel Hougaard
2024-08-30 00:54:13 +04:00
parent 358508dc4f
commit df174beca7
19 changed files with 102 additions and 64412 deletions

View File

@@ -1,26 +1,32 @@
import { Configuration, DefaultApi as InfisicalApi } from "./api/infisical";
import { Configuration, DefaultApi as InfisicalApi } from "./infisicalapi_client";
import SecretsClient from "./custom/secrets";
import AuthClient from "./custom/auth";
// We need to do bind(this) because the authenticate method is a private method, and usually you can't call private methods from outside the class.
type InfisicalSDKOptions = {
siteUrl?: string;
};
class InfisicalSDK {
#apiInstance: InfisicalApi;
// #accessToken: string; // No need to store the auth token here
#secretsClient: SecretsClient;
#authClient: AuthClient;
#basePath: string;
constructor() {
this.#apiInstance = new InfisicalApi();
constructor(options?: InfisicalSDKOptions) {
this.#basePath = options?.siteUrl || "https://app.infisical.com";
this.#apiInstance = new InfisicalApi(new Configuration({ basePath: this.#basePath }));
this.#authClient = new AuthClient(this.authenticate.bind(this));
this.#secretsClient = new SecretsClient(this.#apiInstance);
}
private authenticate(accessToken: string) {
this.#apiInstance = new InfisicalApi(new Configuration({ accessToken }));
this.#apiInstance = new InfisicalApi(new Configuration({ accessToken, basePath: this.#basePath }));
this.#secretsClient = new SecretsClient(this.#apiInstance);
this.#authClient = new AuthClient(this.authenticate.bind(this));
@@ -30,7 +36,7 @@ class InfisicalSDK {
secrets = () => this.#secretsClient;
auth = () => this.#authClient;
// rest = () => this.#apiInstance;
rest = () => this.#apiInstance;
}
export { InfisicalSDK };