@eggjs/tegg-transaction-decorator
Version:
tegg transaction decorator
22 lines • 2.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Transactional = Transactional;
const tegg_types_1 = require("@eggjs/tegg-types");
const TransactionMetadataUtil_1 = require("../util/TransactionMetadataUtil");
function Transactional(params) {
const propagation = (params === null || params === void 0 ? void 0 : params.propagation) || tegg_types_1.PropagationType.REQUIRED;
if (!Object.values(tegg_types_1.PropagationType).includes(propagation)) {
throw new Error(`unknown propagation type ${propagation}`);
}
const datasourceName = params === null || params === void 0 ? void 0 : params.datasourceName;
return function (target, propertyKey) {
const constructor = target.constructor;
TransactionMetadataUtil_1.TransactionMetadataUtil.setIsTransactionClazz(constructor);
TransactionMetadataUtil_1.TransactionMetadataUtil.addTransactionMetadata(constructor, {
propagation,
method: propertyKey,
datasourceName,
});
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3IvVHJhbnNhY3Rpb25hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHNDQWdCQztBQXBCRCxrREFBb0Q7QUFFcEQsNkVBQTBFO0FBRTFFLFNBQWdCLGFBQWEsQ0FBQyxNQUE0QjtJQUN4RCxNQUFNLFdBQVcsR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxXQUFXLEtBQUksNEJBQWUsQ0FBQyxRQUFRLENBQUM7SUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsNEJBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxjQUFjLENBQUM7SUFFOUMsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF3QjtRQUNuRCxNQUFNLFdBQVcsR0FBc0IsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUMxRCxpREFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxpREFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUU7WUFDMUQsV0FBVztZQUNYLE1BQU0sRUFBRSxXQUFXO1lBQ25CLGNBQWM7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIn0=