pocketsmith-mcp
Version:
MCP server for managing budgets via PocketSmith API
55 lines (54 loc) • 1.99 kB
TypeScript
/**
* @fileoverview Manages DuckDB instance and connection lifecycle.
* @module services/duck-db/duckDBConnectionManager
*/
import * as duckdb from "@duckdb/node-api";
import { RequestContext } from "../../utils/index.js";
import { DuckDBServiceConfig } from "./types.js";
export declare class DuckDBConnectionManager {
private dbInstance;
private dbConnection;
private isInitialized;
private currentConfig;
/**
* Initializes the DuckDB instance and connection.
* @param {DuckDBServiceConfig} [config] - Configuration for the service.
* @returns {Promise<void>}
*/
initialize(config?: DuckDBServiceConfig): Promise<void>;
/**
* Installs and loads a DuckDB extension.
* @param {string} extensionName - The name of the extension.
* @param {RequestContext} parentContext - The parent request context.
* @returns {Promise<void>}
*/
loadExtension(extensionName: string, parentContext: RequestContext): Promise<void>;
/**
* Closes the DuckDB connection and instance.
* @returns {Promise<void>}
*/
close(): Promise<void>;
/**
* Ensures that the service is initialized.
* @param {RequestContext} context - The request context for error reporting.
* @throws {McpError} If the service is not initialized.
*/
ensureInitialized(context: RequestContext): void;
/**
* Gets the underlying DuckDB connection object.
* @returns {duckdb.DuckDBConnection}
* @throws {McpError} If the service is not initialized.
*/
getConnection(): duckdb.DuckDBConnection;
/**
* Gets the underlying DuckDB instance object.
* @returns {duckdb.DuckDBInstance}
* @throws {McpError} If the service is not initialized.
*/
getInstance(): duckdb.DuckDBInstance;
/**
* Checks if the service is currently initialized.
* @returns {boolean} True if initialized, false otherwise.
*/
get isServiceInitialized(): boolean;
}