UNPKG

zing-orm

Version:
75 lines 6.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OracleDriver = void 0; const chalk = require("chalk"); class OracleDriver { constructor() { this.type = "oracle"; this.dirver = require('oracledb'); // 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. if (process.platform === 'win32') { // Windows if (process.env.PATH.indexOf('oracle') === -1 && process.env.PATH.indexOf('Oracle') === -1 && process.env.PATH.indexOf('ORACLE') === -1 && process.env.PATH.indexOf('instantclient') === -1 && process.env.PATH.indexOf('Instantclient') === -1 && process.env.PATH.indexOf('INSTANTCLIENT') === -1) { let path = ''; if (process.env.PATH.charAt(process.env.PATH.length - 1) !== ';') { path += ';'; } path += 'C:\\oracle\\instantclient_19_11;'; process.env.PATH = process.env.PATH + path; } // this.dirver.initOracleClient({ libDir: 'C:\\oracle\\instantclient_19_11' }); 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 if (!process.env.LD_LIBRARY_PATH) { process.env.LD_LIBRARY_PATH = '/Downloads/instantclient_19_8'; console.log(chalk.blueBright('[zing-orm]'), chalk.yellow('use default LD_LIBRARY_PATH /Downloads/instantclient_19_8')); } // this.dirver.initOracleClient({ libDir: process.env.HOME + '/Downloads/instantclient_19_8' }); } } async getConnection(_options) { // Fetch each row as an object this.dirver.outFormat = this.dirver.OUT_FORMAT_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}`, }); } catch (err) { console.error("获取 oracle connection 失败!!!", err); throw Error(`获取 oracle connection 失败!!!, 错误: ${err}`); } if (!!connection) console.log("获取 oracle connection 成功."); return connection; } async closeConnection(_connection) { try { if (!!_connection) { await _connection.close(); console.log("关闭 oracle connection 成功."); } } catch (err) { console.error(err); throw Error(`关闭 oracle connection 失败!!!, 错误: ${err}`); } } } exports.OracleDriver = OracleDriver; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JhY2xlRHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiT3JhY2xlRHJpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLCtCQUErQjtBQUUvQixNQUFhLFlBQVk7SUFPckI7UUFMUyxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBRWhCLFdBQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFJbEMsZ0ZBQWdGO1FBQ2hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUM3Qiw0RUFBNEU7UUFDNUUsNkVBQTZFO1FBQzdFLCtFQUErRTtRQUMvRSxvREFBb0Q7UUFDcEQsb0VBQW9FO1FBRXBFLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsRUFBRSxVQUFVO1lBQzFDLElBQ0ksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNsRDtnQkFFRSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxN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