Files
pole-book/server/node_modules/@strapi/database/dist/transaction-context.mjs.map

1 line
4.0 KiB
Plaintext

{"version":3,"file":"transaction-context.mjs","sources":["../src/transaction-context.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks';\nimport { Knex } from 'knex';\n\nexport type Callback = (...args: any[]) => Promise<any> | any;\n\nexport interface TransactionObject {\n commit: () => Promise<void>;\n rollback: () => Promise<void>;\n get: () => Knex.Transaction;\n}\nexport interface Store {\n trx: Knex.Transaction | null;\n commitCallbacks: Callback[];\n rollbackCallbacks: Callback[];\n}\n\nconst storage = new AsyncLocalStorage<Store>();\n\nconst transactionCtx = {\n async run<TCallback extends Callback>(trx: Knex.Transaction, cb: TCallback) {\n const store = storage.getStore();\n return storage.run<ReturnType<TCallback>, void[]>(\n {\n trx,\n // Fill with existing callbacks if nesting transactions\n commitCallbacks: store?.commitCallbacks || [],\n rollbackCallbacks: store?.rollbackCallbacks || [],\n },\n cb\n );\n },\n\n get() {\n const store = storage.getStore();\n return store?.trx;\n },\n\n async commit(trx: Knex.Transaction) {\n const store = storage.getStore();\n\n // Clear transaction from store\n if (store?.trx) {\n store.trx = null;\n }\n\n // Commit transaction\n await trx.commit();\n\n if (!store?.commitCallbacks.length) {\n return;\n }\n\n // Run callbacks\n store.commitCallbacks.forEach((cb) => cb());\n store.commitCallbacks = [];\n },\n\n async rollback(trx: Knex.Transaction) {\n const store = storage.getStore();\n\n // Clear transaction from store\n if (store?.trx) {\n store.trx = null;\n }\n\n // Rollback transaction\n await trx.rollback();\n\n if (!store?.rollbackCallbacks.length) {\n return;\n }\n\n // Run callbacks\n store.rollbackCallbacks.forEach((cb) => cb());\n store.rollbackCallbacks = [];\n },\n\n onCommit(cb: Callback) {\n const store = storage.getStore();\n if (store?.commitCallbacks) {\n store.commitCallbacks.push(cb);\n }\n },\n\n onRollback(cb: Callback) {\n const store = storage.getStore();\n if (store?.rollbackCallbacks) {\n store.rollbackCallbacks.push(cb);\n }\n },\n};\n\nexport { transactionCtx };\n"],"names":["storage","AsyncLocalStorage","transactionCtx","run","trx","cb","store","getStore","commitCallbacks","rollbackCallbacks","get","commit","length","forEach","rollback","onCommit","push","onRollback"],"mappings":";;AAgBA,MAAMA,UAAU,IAAIC,iBAAAA,EAAAA;AAEpB,MAAMC,cAAiB,GAAA;IACrB,MAAMC,GAAAA,CAAAA,CAAgCC,GAAqB,EAAEC,EAAa,EAAA;QACxE,MAAMC,KAAAA,GAAQN,QAAQO,QAAQ,EAAA;QAC9B,OAAOP,OAAAA,CAAQG,GAAG,CAChB;AACEC,YAAAA,GAAAA;;YAEAI,eAAiBF,EAAAA,KAAAA,EAAOE,mBAAmB,EAAE;YAC7CC,iBAAmBH,EAAAA,KAAAA,EAAOG,qBAAqB;SAEjDJ,EAAAA,EAAAA,CAAAA;AAEJ,KAAA;AAEAK,IAAAA,GAAAA,CAAAA,GAAAA;QACE,MAAMJ,KAAAA,GAAQN,QAAQO,QAAQ,EAAA;AAC9B,QAAA,OAAOD,KAAOF,EAAAA,GAAAA;AAChB,KAAA;AAEA,IAAA,MAAMO,QAAOP,GAAqB,EAAA;QAChC,MAAME,KAAAA,GAAQN,QAAQO,QAAQ,EAAA;;AAG9B,QAAA,IAAID,OAAOF,GAAK,EAAA;AACdE,YAAAA,KAAAA,CAAMF,GAAG,GAAG,IAAA;AACd;;AAGA,QAAA,MAAMA,IAAIO,MAAM,EAAA;QAEhB,IAAI,CAACL,KAAOE,EAAAA,eAAAA,CAAgBI,MAAQ,EAAA;AAClC,YAAA;AACF;;AAGAN,QAAAA,KAAAA,CAAME,eAAe,CAACK,OAAO,CAAC,CAACR,EAAOA,GAAAA,EAAAA,EAAAA,CAAAA;QACtCC,KAAME,CAAAA,eAAe,GAAG,EAAE;AAC5B,KAAA;AAEA,IAAA,MAAMM,UAASV,GAAqB,EAAA;QAClC,MAAME,KAAAA,GAAQN,QAAQO,QAAQ,EAAA;;AAG9B,QAAA,IAAID,OAAOF,GAAK,EAAA;AACdE,YAAAA,KAAAA,CAAMF,GAAG,GAAG,IAAA;AACd;;AAGA,QAAA,MAAMA,IAAIU,QAAQ,EAAA;QAElB,IAAI,CAACR,KAAOG,EAAAA,iBAAAA,CAAkBG,MAAQ,EAAA;AACpC,YAAA;AACF;;AAGAN,QAAAA,KAAAA,CAAMG,iBAAiB,CAACI,OAAO,CAAC,CAACR,EAAOA,GAAAA,EAAAA,EAAAA,CAAAA;QACxCC,KAAMG,CAAAA,iBAAiB,GAAG,EAAE;AAC9B,KAAA;AAEAM,IAAAA,QAAAA,CAAAA,CAASV,EAAY,EAAA;QACnB,MAAMC,KAAAA,GAAQN,QAAQO,QAAQ,EAAA;AAC9B,QAAA,IAAID,OAAOE,eAAiB,EAAA;YAC1BF,KAAME,CAAAA,eAAe,CAACQ,IAAI,CAACX,EAAAA,CAAAA;AAC7B;AACF,KAAA;AAEAY,IAAAA,UAAAA,CAAAA,CAAWZ,EAAY,EAAA;QACrB,MAAMC,KAAAA,GAAQN,QAAQO,QAAQ,EAAA;AAC9B,QAAA,IAAID,OAAOG,iBAAmB,EAAA;YAC5BH,KAAMG,CAAAA,iBAAiB,CAACO,IAAI,CAACX,EAAAA,CAAAA;AAC/B;AACF;AACF;;;;"}