@httpc/kit
Version:
httpc toolbox for building function-based API with minimal code and end-to-end type safety
18 lines (17 loc) • 876 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.useTransaction = void 0;
const assert_1 = __importDefault(require("assert"));
const di_1 = require("../di");
function useTransaction(...args) {
const func = args.pop();
(0, assert_1.default)(typeof func === "function", "last argument must be a function");
(0, assert_1.default)(args.length > 0, "you mys specify at least a service");
const data = (0, di_1.useInjected)("IDbService");
const instances = args.map(x => typeof x === "object" ? x : (0, di_1.useInjected)(x));
return data.startTransaction(data => func(...instances.map(x => x.inTransaction?.(data) || x)));
}
exports.useTransaction = useTransaction;