UNPKG

@ultipa-graph/ultipa-driver

Version:

NodeJS SDK for ultipa-server 5.2

94 lines 3.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.UltipaDriver = exports.ConnectionFinal = void 0; const connection_1 = require("./extra/connection"); const connection_pool_1 = require("./connection.pool"); const fs_1 = __importDefault(require("fs")); /** * Extra api */ class ConnectionFinal extends connection_1.Connection { testConnectResult; setGraph(graphName) { this.defaultConfig.defaultGraph = graphName; } } exports.ConnectionFinal = ConnectionFinal; class UltipaDriver extends ConnectionFinal { connectionPool; constructor(config) { let crt; if (config.crt && config.crt.length !== 0) { crt = fs_1.default.readFileSync(config.crt); } super(config.hosts[0], config.username, config.password, crt, config); this.connectionPool = new connection_pool_1.ConnectionPool(config.hosts, config.username, config.password, crt, config); } setGraph(graphName) { this.defaultConfig.defaultGraph = graphName; this.connectionPool.setGraph(graphName); } } exports.UltipaDriver = UltipaDriver; // export class UltipaDriver extends ConnectionFinal { // private _instance: ConnectionFinal = null; // private _initPromise: Promise<ConnectionFinal> = null; // constructor(config: UltipaConfig) { // let crt: Buffer; // if (config.crt && config.crt.length !== 0) { // crt = fs.readFileSync(config.crt) // } // super(config.hosts[0], config.username, config.password, // crt, // config); // function withTimeout(promise: Promise<ConnectionFinal>, ms: number): Promise<ConnectionFinal> { // const timeoutPromise = new Promise<ConnectionFinal>((_, reject) => { // const timeoutId = setTimeout(() => { // clearTimeout(timeoutId); // reject(new Error('Connection timeout')); // }, ms); // }); // return Promise.race([promise, timeoutPromise]); // } // return new Proxy(this, { // get: (target: UltipaDriver, prop: string) => { // if (typeof target[prop] === 'function') { // return target[prop].bind(target); // } // if (prop in target) { // return target[prop]; // } // return async (...args: any[]) => { // if (!target._initPromise) { // target._initPromise = (async () => { // const pool = new ConnectionPool( // config.hosts, // config.username, // config.password, // crt, // config // ); // target._instance = await withTimeout( // pool.getActive(), // config?.timeout * 1000 || Number.MAX_SAFE_INTEGER // ); // return target._instance; // })(); // } // try { // await target._initPromise; // return target._instance[prop](...args); // } catch (error) { // target._initPromise = null; // target._instance = null; // throw error; // } // }; // } // }); // } // } //# sourceMappingURL=connection.final.js.map