UNPKG

@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
"use strict"; 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;