@eggjs/dal-runtime
Version:
tegg dal decorator
70 lines • 6.54 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,
};
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==