UNPKG

zing-orm

Version:
63 lines 4.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ArangodbDriver = void 0; // import * as chalk from 'chalk'; class ArangodbDriver { constructor() { // Using a fixed Oracle time zone helps avoid machine and deployment differences // process.env.ORA_SDTZ = 'UTC'; // On Windows and macOS, you can specify the directory containing the Oracle // Client Libraries at runtime, or before Node.js starts. On other platforms // the system library search path must always be set before Node.js is started. // See the node-oracledb installation documentation. // If the search path is not correct, you will get a DPI-1047 error. this.type = "arangodb"; this.dirver = require("arangojs"); if (process.platform === 'win32') { // Windows // console.log(chalk.blueBright('[zing-orm]'), chalk.yellow('use default PATH C:\\oracle\\instantclient_19_11, you should check and install Visual Studio Redistributables.')); } else if (process.platform === 'darwin') { // macOS } } async getConnection(_options) { // Fetch each row as an object //todo options joi check let connection; try { // connection = await this.dirver.getConnection({ // user: _options.user, // password: _options.password, // connectString: `${_options.host}:${_options.port}/${_options.database}`, // }); connection = new this.dirver.Database({ url: `http://${_options.host}:${_options.port}`, databaseName: _options.database, auth: { username: _options.user, password: _options.password }, }); } catch (err) { console.error("获取 arangodb connection 失败!!!", err); throw Error(`获取 arangodb connection 失败!!!, 错误: ${err}`); } // todo rewrite check connection succesful function here if (!!connection) console.log("获取 arangodb connection 成功."); return connection; } async closeConnection(_connection) { try { if (!!_connection) { await _connection.close(); console.log("关闭 arangodb connection 成功."); } } catch (err) { console.error(err); throw Error(`关闭 arangodb connection 失败!!!, 错误: ${err}`); } } } exports.ArangodbDriver = ArangodbDriver; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJhbmdvZGJEcml2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJBcmFuZ29kYkRyaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxrQ0FBa0M7QUFFbEMsTUFBYSxjQUFjO0lBT3ZCO1FBQ0ksZ0ZBQWdGO1FBQ2hGLGdDQUFnQztRQUNoQyw0RUFBNEU7UUFDNUUsNkVBQTZFO1FBQzdFLCtFQUErRTtRQUMvRSxvREFBb0Q7UUFDcEQsb0VBQW9FO1FBWi9ELFNBQUksR0FBRyxVQUFVLENBQUM7UUFFbEIsV0FBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVlsQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQzlCLFVBQVU7WUFDViwrS0FBK0s7U0FDbEw7YUFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFO1lBQ3RDLFFBQVE7U0FDWDtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQXVCO1FBQ3ZDLDhCQUE4QjtRQUM5Qix3QkFBd0I7UUFDeEIsSUFBSSxVQUFlLENBQUM7UUFDcEIsSUFBSTtZQUNBLGlEQUFpRDtZQUNqRCwyQkFBMkI7WUFDM0IsbUNBQW1DO1lBQ25DLCtFQUErRTtZQUMvRSxNQUFNO1lBRU4sVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ2xDLEdBQUcsRUFBRSxVQUFVLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDL0MsWUFBWSxFQUFFLFFBQVEsQ0FBQyxRQUFRO2dCQUMvQixJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRTthQUNqRSxDQUFDLENBQUM7U0FFTjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNuRCxNQUFNLEtBQUssQ0FBQyxxQ0FBcUMsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUMzRDtRQUNELHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsQ0FBQyxVQUFVO1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQWdCO1FBQ2xDLElBQUk7WUFDQSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ2YsTUFBTSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQzthQUM3QztTQUNKO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLE1BQU0sS0FBSyxDQUFDLHFDQUFxQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1NBQzFEO0lBQ0wsQ0FBQztDQUNKO0FBOURELHdDQThEQyJ9