@eggjs/dal-runtime
Version:
tegg dal decorator
76 lines • 7.31 kB
JavaScript
"use strict";
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _MysqlDataSource_instances, _MysqlDataSource_initRetryTimes, _MysqlDataSource_logger, _MysqlDataSource_doInit;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MysqlDataSource = void 0;
const rds_1 = require("@eggjs/rds");
const sdk_base_1 = __importDefault(require("sdk-base"));
const DEFAULT_OPTIONS = {
supportBigNumbers: true,
bigNumberStrings: true,
trace: true,
};
const DEFAULT_RETRY_TIMES = 3;
class MysqlDataSource extends sdk_base_1.default {
constructor(options) {
super({ initMethod: '_init' });
_MysqlDataSource_instances.add(this);
_MysqlDataSource_initRetryTimes.set(this, void 0);
_MysqlDataSource_logger.set(this, void 0);
const { name, initSql, forkDb, initRetryTimes, logger, executeType, ...mysqlOptions } = options;
__classPrivateFieldSet(this, _MysqlDataSource_logger, logger, "f");
this.forkDb = forkDb;
this.initSql = initSql ?? 'SELECT 1 + 1';
__classPrivateFieldSet(this, _MysqlDataSource_initRetryTimes, initRetryTimes ?? DEFAULT_RETRY_TIMES, "f");
this.name = name;
this.timezone = options.timezone;
this.executeType = executeType ?? 'query';
this.rdsOptions = Object.assign({}, DEFAULT_OPTIONS, mysqlOptions);
this.client = new rds_1.RDSClient(this.rdsOptions);
}
async _init() {
if (this.initSql) {
await __classPrivateFieldGet(this, _MysqlDataSource_instances, "m", _MysqlDataSource_doInit).call(this, 1);
}
}
async query(sql, params, options) {
const executeType = options?.executeType || this.executeType;
if (executeType === 'execute') {
return this.client.execute(sql, params, options);
}
return this.client.query(sql, params, options);
}
async beginTransactionScope(scope) {
return await this.client.beginTransactionScope(scope);
}
}
exports.MysqlDataSource = MysqlDataSource;
_MysqlDataSource_initRetryTimes = new WeakMap(), _MysqlDataSource_logger = new WeakMap(), _MysqlDataSource_instances = new WeakSet(), _MysqlDataSource_doInit = async function _MysqlDataSource_doInit(tryTimes) {
try {
__classPrivateFieldGet(this, _MysqlDataSource_logger, "f")?.log(`${tryTimes} try to initialize dataSource ${this.name}`);
const st = Date.now();
await this.client.query(this.initSql);
__classPrivateFieldGet(this, _MysqlDataSource_logger, "f")?.info(`dataSource initialization cost: ${Date.now() - st}, tryTimes: ${tryTimes}`);
}
catch (e) {
__classPrivateFieldGet(this, _MysqlDataSource_logger, "f")?.warn(`failed to initialize dataSource ${this.name}, tryTimes ${tryTimes}`, e);
if (!__classPrivateFieldGet(this, _MysqlDataSource_initRetryTimes, "f") || tryTimes >= __classPrivateFieldGet(this, _MysqlDataSource_initRetryTimes, "f")) {
throw e;
}
await __classPrivateFieldGet(this, _MysqlDataSource_instances, "m", _MysqlDataSource_doInit).call(this, tryTimes + 1);
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXlTcWxEYXRhU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL015U3FsRGF0YVNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQ0FBdUM7QUFFdkMsd0RBQTRCO0FBYTVCLE1BQU0sZUFBZSxHQUFxQjtJQUN4QyxpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFNOUIsTUFBYSxlQUFnQixTQUFRLGtCQUFJO0lBV3ZDLFlBQVksT0FBMEI7UUFDcEMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7O1FBTHhCLGtEQUF5QjtRQUN6QiwwQ0FBaUI7UUFLeEIsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ2hHLHVCQUFBLElBQUksMkJBQVcsTUFBTSxNQUFBLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksY0FBYyxDQUFDO1FBQ3pDLHVCQUFBLElBQUksbUNBQW1CLGNBQWMsSUFBSSxtQkFBbUIsTUFBQSxDQUFDO1FBQzdELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxPQUFPLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVTLEtBQUssQ0FBQyxLQUFLO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sdUJBQUEsSUFBSSwyREFBUSxNQUFaLElBQUksRUFBUyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQWlCRCxLQUFLLENBQUMsS0FBSyxDQUFVLEdBQVcsRUFBRSxNQUFjLEVBQUUsT0FBeUI7UUFDekUsTUFBTSxXQUFXLEdBQUcsT0FBTyxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRTdELElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCLENBQUksS0FBdUI7UUFDcEQsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGO0FBMURELDBDQTBEQztnS0EzQkMsS0FBSyxrQ0FBUyxRQUFnQjtJQUM1QixJQUFJLENBQUM7UUFDSCx1QkFBQSxJQUFJLCtCQUFRLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxpQ0FBaUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0UsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLHVCQUFBLElBQUksK0JBQVEsRUFBRSxJQUFJLENBQUMsbUNBQW1DLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLGVBQWUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLHVCQUFBLElBQUksK0JBQVEsRUFBRSxJQUFJLENBQUMsbUNBQW1DLElBQUksQ0FBQyxJQUFJLGNBQWMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLHVCQUFBLElBQUksdUNBQWdCLElBQUksUUFBUSxJQUFJLHVCQUFBLElBQUksdUNBQWdCLEVBQUUsQ0FBQztZQUM5RCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCxNQUFNLHVCQUFBLElBQUksMkRBQVEsTUFBWixJQUFJLEVBQVMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7QUFDSCxDQUFDIn0=