UNPKG

vespa-ts

Version:

A reusable TypeScript package for interacting with Vespa search engine with dependency injection support

63 lines 1.89 kB
import { VespaService } from "./vespa"; /** * Factory function to create a configured VespaService instance */ export function createVespaService(dependencies) { return new VespaService(dependencies); } /** * Console-based logger implementation */ export class ConsoleLogger { constructor(metadata = {}) { this.metadata = {}; this.metadata = metadata; } debug(message, ...args) { console.debug(`[DEBUG]${this.formatMetadata()} ${message}`, ...args); } info(message, ...args) { console.info(`[INFO]${this.formatMetadata()} ${message}`, ...args); } warn(message, ...args) { console.warn(`[WARN]${this.formatMetadata()} ${message}`, ...args); } error(message, ...args) { const msg = message instanceof Error ? message.message : message; console.error(`[ERROR]${this.formatMetadata()} ${msg}`, ...args); } child(metadata) { return new ConsoleLogger({ ...this.metadata, ...metadata }); } formatMetadata() { const keys = Object.keys(this.metadata); if (keys.length === 0) return ''; const formatted = keys.map(key => `${key}:${this.metadata[key]}`).join(', '); return ` [${formatted}]`; } } /** * Helper function to create default config */ export function createDefaultConfig(overrides = {}) { const defaultConfig = { vespaMaxRetryAttempts: 3, vespaRetryDelay: 1000, vespaBaseHost: "localhost", page: 10, isDebugMode: false, userQueryUpdateInterval: 60 * 1000, namespace: "namespace", cluster: "my_content", productionServerUrl: "", apiKey: "", }; return { ...defaultConfig, ...overrides, }; } // Export the main VespaService class export { VespaService } from "./vespa"; //# sourceMappingURL=index.js.map