@fine-dev/fine-js
Version:
Javascript client for Fine BaaS
31 lines • 1.61 kB
JavaScript
import FineAIClient from "./ai";
import D1RestClient from "./d1";
import { createAuthClient } from "better-auth/react";
import FineStorageClient from "./storage";
import { FineTranscriber } from "./transcribe";
import { createOAuthApprovalHook } from "./oauth";
export class FineClient extends D1RestClient {
/**
* @param config Path to the Fine API or a FineConfig object. Pass a string beginning with `/` to use the current origin with a path relative to it.
*/
constructor(config) {
if (typeof config === "string" && config.startsWith("/"))
config = location.origin + config;
const d1RestUrl = typeof config === "string" ? config + "/db" : config.restUrl;
super({ baseUrl: d1RestUrl });
this.config = config;
const authUrl = typeof config === "string" ? config + "/auth" : config.authUrl;
this.auth = createAuthClient({ baseURL: authUrl });
const mcpUrl = typeof config === "string" ? config + "/mcp" : config.mcpUrl;
this.useOAuthApproval = createOAuthApprovalHook(mcpUrl);
const aiUrl = typeof config === "string" ? config + "/ai" : config.aiUrl;
this.ai = new FineAIClient({ baseUrl: aiUrl });
const storageUrl = typeof config === "string" ? config + "/storage" : config.storageUrl;
this.storage = new FineStorageClient({ baseUrl: storageUrl });
}
transcriber() {
const baseUrl = typeof this.config === "string" ? this.config + "/transcribe" : this.config.transcribeUrl;
return new FineTranscriber({ baseUrl });
}
}
//# sourceMappingURL=index.js.map