@eggjs/tegg-transaction-decorator
Version:
tegg transaction decorator
19 lines • 1.76 kB
JavaScript
import { PropagationType } from '@eggjs/tegg-types';
import { TransactionMetadataUtil } from '../util/index.js';
export function Transactional(params) {
const propagation = params?.propagation || PropagationType.REQUIRED;
if (!Object.values(PropagationType).includes(propagation)) {
throw new Error(`unknown propagation type ${propagation}`);
}
const datasourceName = params?.datasourceName;
return function (target, propertyKey) {
const constructor = target.constructor;
TransactionMetadataUtil.setIsTransactionClazz(constructor);
TransactionMetadataUtil.addTransactionMetadata(constructor, {
propagation,
method: propertyKey,
datasourceName,
});
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlRyYW5zYWN0aW9uYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBNEI7SUFDeEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLFdBQVcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxjQUFjLENBQUM7SUFFOUMsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF3QjtRQUNuRCxNQUFNLFdBQVcsR0FBc0IsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUMxRCx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUU7WUFDMUQsV0FBVztZQUNYLE1BQU0sRUFBRSxXQUFXO1lBQ25CLGNBQWM7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIn0=