zing-orm
Version:
63 lines • 4.5 kB
JavaScript
;
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