{"ast":null,"code":"import _asyncToGenerator from \"C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { taskHolder } from \"../connection/taskHolder.js\";\nimport { ModelAPIRequest } from \"../models/model-manager.js\";\nimport { uniqueGenerator } from \"../utils.js\";\nexport class transactionOnCommit {\n static prepare(Model) {\n const TableSchema = Model.getTableSchema();\n const DatabaseSchema = Model.getDBSchema();\n const databaseName = DatabaseSchema.databaseName;\n const table = TableSchema.name;\n this.stores[databaseName] = {};\n this.stores[databaseName][table] = {};\n }\n static subscribe(Model, callback) {\n var _this = this;\n const TableSchema = Model.getTableSchema();\n const DatabaseSchema = Model.getDBSchema();\n const databaseName = DatabaseSchema.databaseName;\n const table = TableSchema.name;\n const SubscriptionName = databaseName + table;\n const queryId = uniqueGenerator();\n let subscribe = false;\n this.stores[databaseName][table][queryId] = callback;\n if (!this.subscription[SubscriptionName]) {\n //\n const args = {\n type: 'transactionOnCommit',\n subscribe: true\n };\n ModelAPIRequest.obj(DatabaseSchema, TableSchema).trigger(args, SubscriptionName, /*#__PURE__*/_asyncToGenerator(function* () {\n subscribe = true;\n taskHolder.updateFunction(SubscriptionName, 'callback', () => {\n for (const [requestId, callback] of Object.entries(_this.stores[databaseName][table])) {\n callback();\n }\n });\n }));\n }\n return {\n queryId,\n subscribe,\n unsubscribe: () => {\n return new Promise((resolve, reject) => {\n delete this.stores[databaseName][table][queryId];\n if (Object.keys(this.stores[databaseName][table]).length == 0) {\n ModelAPIRequest.obj(DatabaseSchema, TableSchema).trigger({\n type: 'transactionOnCommit',\n subscribe: false\n }, SubscriptionName, /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(function* (data) {\n delete _this.subscription[SubscriptionName];\n taskHolder.finish(SubscriptionName);\n resolve(data);\n });\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }());\n } else {\n resolve(true);\n }\n });\n }\n };\n }\n}\ntransactionOnCommit.stores = {};\ntransactionOnCommit.subscription = {};","map":{"version":3,"names":["taskHolder","ModelAPIRequest","uniqueGenerator","transactionOnCommit","prepare","Model","TableSchema","getTableSchema","DatabaseSchema","getDBSchema","databaseName","table","name","stores","subscribe","callback","_this","SubscriptionName","queryId","subscription","args","type","obj","trigger","_asyncToGenerator","updateFunction","requestId","Object","entries","unsubscribe","Promise","resolve","reject","keys","length","_ref2","data","finish","_x","apply","arguments"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/beast-orm/dist/src/triggers/transaction.js"],"sourcesContent":["import { taskHolder } from \"../connection/taskHolder.js\";\r\nimport { ModelAPIRequest } from \"../models/model-manager.js\";\r\nimport { uniqueGenerator } from \"../utils.js\";\r\nexport class transactionOnCommit {\r\n static prepare(Model) {\r\n const TableSchema = Model.getTableSchema();\r\n const DatabaseSchema = Model.getDBSchema();\r\n const databaseName = DatabaseSchema.databaseName;\r\n const table = TableSchema.name;\r\n this.stores[databaseName] = {};\r\n this.stores[databaseName][table] = {};\r\n }\r\n static subscribe(Model, callback) {\r\n const TableSchema = Model.getTableSchema();\r\n const DatabaseSchema = Model.getDBSchema();\r\n const databaseName = DatabaseSchema.databaseName;\r\n const table = TableSchema.name;\r\n const SubscriptionName = databaseName + table;\r\n const queryId = uniqueGenerator();\r\n let subscribe = false;\r\n this.stores[databaseName][table][queryId] = callback;\r\n if (!this.subscription[SubscriptionName]) {\r\n //\r\n const args = {\r\n type: 'transactionOnCommit',\r\n subscribe: true\r\n };\r\n ModelAPIRequest.obj(DatabaseSchema, TableSchema).trigger(args, SubscriptionName, async () => {\r\n subscribe = true;\r\n taskHolder.updateFunction(SubscriptionName, 'callback', () => {\r\n for (const [requestId, callback] of Object.entries(this.stores[databaseName][table])) {\r\n callback();\r\n }\r\n });\r\n });\r\n }\r\n return {\r\n queryId,\r\n subscribe,\r\n unsubscribe: () => {\r\n return new Promise((resolve, reject) => {\r\n delete this.stores[databaseName][table][queryId];\r\n if (Object.keys(this.stores[databaseName][table]).length == 0) {\r\n ModelAPIRequest.obj(DatabaseSchema, TableSchema).trigger({ type: 'transactionOnCommit', subscribe: false }, SubscriptionName, async (data) => {\r\n delete this.subscription[SubscriptionName];\r\n taskHolder.finish(SubscriptionName);\r\n resolve(data);\r\n });\r\n }\r\n else {\r\n resolve(true);\r\n }\r\n });\r\n }\r\n };\r\n }\r\n}\r\ntransactionOnCommit.stores = {};\r\ntransactionOnCommit.subscription = {};\r\n"],"mappings":";AAAA,SAASA,UAAU,QAAQ,6BAA6B;AACxD,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SAASC,eAAe,QAAQ,aAAa;AAC7C,OAAO,MAAMC,mBAAmB,CAAC;EAC7B,OAAOC,OAAOA,CAACC,KAAK,EAAE;IAClB,MAAMC,WAAW,GAAGD,KAAK,CAACE,cAAc,CAAC,CAAC;IAC1C,MAAMC,cAAc,GAAGH,KAAK,CAACI,WAAW,CAAC,CAAC;IAC1C,MAAMC,YAAY,GAAGF,cAAc,CAACE,YAAY;IAChD,MAAMC,KAAK,GAAGL,WAAW,CAACM,IAAI;IAC9B,IAAI,CAACC,MAAM,CAACH,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAACG,MAAM,CAACH,YAAY,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC;EACzC;EACA,OAAOG,SAASA,CAACT,KAAK,EAAEU,QAAQ,EAAE;IAAA,IAAAC,KAAA;IAC9B,MAAMV,WAAW,GAAGD,KAAK,CAACE,cAAc,CAAC,CAAC;IAC1C,MAAMC,cAAc,GAAGH,KAAK,CAACI,WAAW,CAAC,CAAC;IAC1C,MAAMC,YAAY,GAAGF,cAAc,CAACE,YAAY;IAChD,MAAMC,KAAK,GAAGL,WAAW,CAACM,IAAI;IAC9B,MAAMK,gBAAgB,GAAGP,YAAY,GAAGC,KAAK;IAC7C,MAAMO,OAAO,GAAGhB,eAAe,CAAC,CAAC;IACjC,IAAIY,SAAS,GAAG,KAAK;IACrB,IAAI,CAACD,MAAM,CAACH,YAAY,CAAC,CAACC,KAAK,CAAC,CAACO,OAAO,CAAC,GAAGH,QAAQ;IACpD,IAAI,CAAC,IAAI,CAACI,YAAY,CAACF,gBAAgB,CAAC,EAAE;MACtC;MACA,MAAMG,IAAI,GAAG;QACTC,IAAI,EAAE,qBAAqB;QAC3BP,SAAS,EAAE;MACf,CAAC;MACDb,eAAe,CAACqB,GAAG,CAACd,cAAc,EAAEF,WAAW,CAAC,CAACiB,OAAO,CAACH,IAAI,EAAEH,gBAAgB,eAAAO,iBAAA,CAAE,aAAY;QACzFV,SAAS,GAAG,IAAI;QAChBd,UAAU,CAACyB,cAAc,CAACR,gBAAgB,EAAE,UAAU,EAAE,MAAM;UAC1D,KAAK,MAAM,CAACS,SAAS,EAAEX,QAAQ,CAAC,IAAIY,MAAM,CAACC,OAAO,CAACZ,KAAI,CAACH,MAAM,CAACH,YAAY,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE;YAClFI,QAAQ,CAAC,CAAC;UACd;QACJ,CAAC,CAAC;MACN,CAAC,EAAC;IACN;IACA,OAAO;MACHG,OAAO;MACPJ,SAAS;MACTe,WAAW,EAAEA,CAAA,KAAM;QACf,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;UACpC,OAAO,IAAI,CAACnB,MAAM,CAACH,YAAY,CAAC,CAACC,KAAK,CAAC,CAACO,OAAO,CAAC;UAChD,IAAIS,MAAM,CAACM,IAAI,CAAC,IAAI,CAACpB,MAAM,CAACH,YAAY,CAAC,CAACC,KAAK,CAAC,CAAC,CAACuB,MAAM,IAAI,CAAC,EAAE;YAC3DjC,eAAe,CAACqB,GAAG,CAACd,cAAc,EAAEF,WAAW,CAAC,CAACiB,OAAO,CAAC;cAAEF,IAAI,EAAE,qBAAqB;cAAEP,SAAS,EAAE;YAAM,CAAC,EAAEG,gBAAgB;cAAA,IAAAkB,KAAA,GAAAX,iBAAA,CAAE,WAAOY,IAAI,EAAK;gBAC1I,OAAOpB,KAAI,CAACG,YAAY,CAACF,gBAAgB,CAAC;gBAC1CjB,UAAU,CAACqC,MAAM,CAACpB,gBAAgB,CAAC;gBACnCc,OAAO,CAACK,IAAI,CAAC;cACjB,CAAC;cAAA,iBAAAE,EAAA;gBAAA,OAAAH,KAAA,CAAAI,KAAA,OAAAC,SAAA;cAAA;YAAA,IAAC;UACN,CAAC,MACI;YACDT,OAAO,CAAC,IAAI,CAAC;UACjB;QACJ,CAAC,CAAC;MACN;IACJ,CAAC;EACL;AACJ;AACA5B,mBAAmB,CAACU,MAAM,GAAG,CAAC,CAAC;AAC/BV,mBAAmB,CAACgB,YAAY,GAAG,CAAC,CAAC"},"metadata":{},"sourceType":"module"}