UNPKG

dtamind-components

Version:

Apps integration for Dtamind. Contain Nodes and Credentials.

52 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VectorStoreDriver = void 0; const src_1 = require("../../../../src"); const utils_1 = require("../utils"); class VectorStoreDriver { constructor(nodeData, options) { this.nodeData = nodeData; this.options = options; } async adaptInstance(instance, _metaDataFilters) { return instance; } getHost() { return (0, utils_1.getHost)(this.nodeData); } getPort() { return (0, utils_1.getPort)(this.nodeData); } getSSL() { return (0, utils_1.getSSL)(this.nodeData); } getDatabase() { return (0, utils_1.getDatabase)(this.nodeData); } getTableName() { return this.sanitizeTableName((0, utils_1.getTableName)(this.nodeData)); } getEmbeddings() { return this.nodeData.inputs?.embeddings; } sanitizeTableName(tableName) { // Trim and normalize case, turn whitespace into underscores tableName = tableName.trim().toLowerCase().replace(/\s+/g, '_'); // Validate using a regex (alphanumeric and underscores only) if (!/^[a-zA-Z0-9_]+$/.test(tableName)) { throw new Error('Invalid table name'); } return tableName; } async getCredentials() { const credentialData = await (0, src_1.getCredentialData)(this.nodeData.credential ?? '', this.options); const user = (0, src_1.getCredentialParam)('user', credentialData, this.nodeData, process.env.POSTGRES_VECTORSTORE_USER); const password = (0, src_1.getCredentialParam)('password', credentialData, this.nodeData, process.env.POSTGRES_VECTORSTORE_PASSWORD); return { user, password }; } } exports.VectorStoreDriver = VectorStoreDriver; //# sourceMappingURL=Base.js.map