UNPKG

@eggjs/dal-runtime

Version:
70 lines 6.54 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, }; 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, ...mysqlOptions } = options; __classPrivateFieldSet(this, _MysqlDataSource_logger, logger, "f"); this.forkDb = forkDb; this.initSql = initSql ?? 'SELECT 1 + 1'; __classPrivateFieldSet(this, _MysqlDataSource_initRetryTimes, initRetryTimes, "f"); this.name = name; this.timezone = options.timezone; 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) { return this.client.query(sql); } 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXlTcWxEYXRhU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL015U3FsRGF0YVNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQ0FBdUM7QUFFdkMsd0RBQTRCO0FBWTVCLE1BQU0sZUFBZSxHQUFxQjtJQUN4QyxpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBYSxlQUFnQixTQUFRLGtCQUFJO0lBVXZDLFlBQVksT0FBMEI7UUFDcEMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7O1FBSnhCLGtEQUF5QjtRQUN6QiwwQ0FBaUI7UUFJeEIsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDbkYsdUJBQUEsSUFBSSwyQkFBVyxNQUFNLE1BQUEsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxjQUFjLENBQUM7UUFDekMsdUJBQUEsSUFBSSxtQ0FBbUIsY0FBYyxNQUFBLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFUyxLQUFLLENBQUMsS0FBSztRQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixNQUFNLHVCQUFBLElBQUksMkRBQVEsTUFBWixJQUFJLEVBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFpQkQsS0FBSyxDQUFDLEtBQUssQ0FBVSxHQUFXO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUIsQ0FBSSxLQUF1QjtRQUNwRCxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0Y7QUFuREQsMENBbURDO2dLQXRCQyxLQUFLLGtDQUFTLFFBQWdCO0lBQzVCLElBQUksQ0FBQztRQUNILHVCQUFBLElBQUksK0JBQVEsRUFBRSxHQUFHLENBQUMsR0FBRyxRQUFRLGlDQUFpQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsdUJBQUEsSUFBSSwrQkFBUSxFQUFFLElBQUksQ0FBQyxtQ0FBbUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsZUFBZSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsdUJBQUEsSUFBSSwrQkFBUSxFQUFFLElBQUksQ0FBQyxtQ0FBbUMsSUFBSSxDQUFDLElBQUksY0FBYyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsdUJBQUEsSUFBSSx1Q0FBZ0IsSUFBSSxRQUFRLElBQUksdUJBQUEsSUFBSSx1Q0FBZ0IsRUFBRSxDQUFDO1lBQzlELE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztRQUNELE1BQU0sdUJBQUEsSUFBSSwyREFBUSxNQUFaLElBQUksRUFBUyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztBQUNILENBQUMifQ==