summaryrefslogtreecommitdiffstats
path: root/acf2/transaction/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'acf2/transaction/init.lua')
-rw-r--r--acf2/transaction/init.lua13
1 files changed, 10 insertions, 3 deletions
diff --git a/acf2/transaction/init.lua b/acf2/transaction/init.lua
index 482c00e..943e337 100644
--- a/acf2/transaction/init.lua
+++ b/acf2/transaction/init.lua
@@ -113,7 +113,14 @@ end
local store = require('acf2.persistence')
-
-return function(txn, defer_validation)
- return ModelTransaction(txn or store, not (txn and defer_validation))
+local def_store = require('acf2.persistence.defer')
+
+return function(options)
+ options = options or {}
+ return ModelTransaction(
+ options.parent or (
+ options.allow_commit_defer and def_store or store
+ ),
+ not (txn and options.defer_validation)
+ )
end