UNPKG

@eggjs/dal-runtime

Version:
76 lines 7.31 kB
"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=