UNPKG

pocketsmith-mcp

Version:

MCP server for managing budgets via PocketSmith API

55 lines (54 loc) 1.99 kB
/** * @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; }