@decaf-ts/transactional-decorators 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- var t,e;t=this,e=function(t,e,i,s){"use strict";class a{constructor(){this.queue=[],this.locked=!1}async execute(t){let e;await this.acquire();try{e=await Promise.resolve(t())}catch(t){throw this.release(),t}return this.release(),e}async acquire(){const t=this;return t.locked?new Promise(e=>t.queue.push(e)):(t.locked=!0,Promise.resolve())}release(){const t=this.queue.shift();t?void 0===globalThis.window?globalThis.process.nextTick(t):setTimeout(t,0):this.locked=!1}}const n={TRANSACTIONAL:"transactional"};e.Metadata.transactionals=t=>{const i=e.Metadata.get(t,n.TRANSACTIONAL);return i?Object.keys(i):[]},e.Metadata.isTransactional=t=>!!e.Metadata.get(t,n.TRANSACTIONAL);class o extends i.InternalError{constructor(t="Transaction timed out"){super(t,o.name,500)}}const r=new WeakMap;class c extends s.LoggedClass{static{this.debug=!1}static{this.globalTimeout=-1}static{this.metadataCache=new WeakMap}static{this.log=new Proxy(s.Logging.for(c),{get:(t,e,i)=>"log"!==e||c.debug?Reflect.get(t,e,i):(...t)=>{}})}get log(){return this._log||(this._log=c.log),this._log}static{this.contexts=new WeakMap}constructor(t,e,i,s){super(),this.initialFireDispatched=!1,this.released=!1,this.id=Date.now(),this.action=i,this.method=e,this.logs=[[this.id,t,e].join(" | ")],this.source=t,this.metadata=s,this.completion=new Promise((t,e)=>{this.resolveCompletion=t,this.rejectCompletion=e})}static async push(t,e,...i){const s=this.log.for(this.push),a=c.describeTarget(t),n=c.describeTarget(e),o=new c(a,n,async()=>{const a=s.for(o.id.toString());try{a.verbose("Executing transaction method "+n),a.debug("With arguments: "+JSON.stringify(i));const s=await Promise.resolve(e.call(o.bindToTransaction(t),...i));return a.verbose(`Transaction method ${n} executed successfully`),a.debug("Result: "+JSON.stringify(s)),await o.release(),a.debug("lock released"),s}catch(t){throw await o.release(t),t}});return s.debug(`Pushing transaction ${o.id} for method ${n} on issuer ${a}`),c.submit(o)}static async run(t,e,i){const s="function"!=typeof t,a=s?t:void 0,n=s?e:t;if("function"!=typeof n)throw Error("Transaction.run requires an async function");const o=s?i:e,r=Array.isArray(o)&&o.length?o:void 0,l=a?c.describeTarget(a):c.describeTarget(n),h=c.describeTarget(n);let d;return d=new c(l,h,async()=>{let t;try{const t=a?d.bindToTransaction(a):void 0;return await n.call(t??d)}catch(e){throw t=e,e}finally{await d.release(t instanceof Error?t:void 0)}},r),c.submit(d)}static setLock(t){this.lock=t}static getLock(){return this.lock||(this.lock=new l),this.lock}static submit(t){return c.getLock().submit(t)}static async release(t){return c.getLock().release(t)}async release(t){this.released||(this.released=!0,await c.release(t))}getMetadata(){return this.metadata?[...this.metadata]:void 0}static getTransactionalMetadata(t){let s=this.metadataCache.get(t);if(s)return s;const a=new Set(["__transactionProxy","__transactionTarget","string"==typeof i.DBKeys.ORIGINAL?i.DBKeys.ORIGINAL:"__originalObj"]),n=e.Metadata.transactionals(t)??[],o=(e.Metadata.properties(t)||[]).filter(t=>!a.has(t)),r=new Map;return o.forEach(i=>{const s=e.Metadata.type(t,i);r.set(i,!!s&&e.Metadata.isTransactional(s))}),s={methods:n,propertyKeys:o,propertyDesignTypes:r},this.metadataCache.set(t,s),s}bindTransaction(t){this.log.for(this.bindTransaction).verbose(`Binding the ${t.toString()} to ${this}`),this.logs.push(...t.logs),t.bindTransaction=this.bindToTransaction.bind(this),t.bindToTransaction=this.bindToTransaction.bind(this),this.action=t.action}bindToTransaction(t){const a=this.log.for(this.bindToTransaction);a.verbose(`Binding object ${s.getObjectName(t)} to transaction ${this.id}`);const n=c.getTransactionalMetadata(t.constructor),o=n.methods;if(!o.length)return t;const r=this,l=new Set(["__transactionProxy","__transactionTarget","string"==typeof i.DBKeys.ORIGINAL?i.DBKeys.ORIGINAL:"__originalObj"]),h=new Set(n.propertyKeys);Object.getOwnPropertyNames(t).forEach(t=>{l.has(t)||h.add(t)});const d=Array.from(h).filter(i=>{if(n.propertyDesignTypes.get(i))return!0;const s=t[i];return!(!s||"object"!=typeof s&&"function"!=typeof s||!e.Metadata.isTransactional(s.constructor))});a.debug(`found transaction methods: ${o.join(", ")} and properties: ${d.join(", ")}`);const g=new Proxy(t,{get:(t,e,i)=>o.includes(e)?new Proxy(t[e],{apply:(t,e,i)=>Reflect.apply(t,e,[r,...i])}):d.includes(e)?r.bindToTransaction(t[e]):Reflect.get(t,e,i)});return g[i.DBKeys.ORIGINAL]=t[i.DBKeys.ORIGINAL]||t,g.toString=()=>s.getObjectName(g[i.DBKeys.ORIGINAL])+" proxy for transaction "+this.id,g.__transactionProxy=!0,g.__transactionTarget=t.__transactionTarget||t,c.contexts.set(g,r),g}applyGlobalTimeout(t){if(0>=c.globalTimeout)return t;const e=c.globalTimeout,i=this.log.for(this.applyGlobalTimeout);return new Promise((s,a)=>{let n=!1;const r=setTimeout(()=>{if(n)return;const t=new o(`Transaction ${this.toString()} exceeded timeout of ${e}ms`);i.warn(t.message),this.release(t).catch(t=>i.error(t)),a(t)},e);t.then(t=>{n=!0,clearTimeout(r),s(t)}).catch(t=>{n=!0,clearTimeout(r),a(t)})})}fire(){if(!this.action)throw Error("Missing the method");const t=(async()=>this.action?await this.action():void 0)(),e=c.globalTimeout>0?this.applyGlobalTimeout(t):t;return this.initialFireDispatched||(this.initialFireDispatched=!0,e.then(t=>(this.resolveCompletion?.(t),t)).catch(t=>{throw this.rejectCompletion?.(t),t})),e}toString(t=!0,e=!1){return`${t?`[${this.id}]`:""}[Transaction][${this.source}.${this.method}${e?"]\nTransaction Log:\n"+this.logs.join("\n"):"]"}`}static contextTransaction(t){if(t&&t.__transactionProxy)return this.contexts.get(t)}wait(){return this.completion}static describeTarget(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)return s.getObjectName(t);const e=t;let i=r.get(e);return i||(i=s.getObjectName(t),r.set(e,i)),i}}class l extends s.LoggedClass{get log(){return this._log||(this._log=c.log.for(this)),this._log}logger(t){return this.loggerCache.has(t)||this.loggerCache.set(t,this.log.for(this[t])),this.loggerCache.get(t)}constructor(t=1,e,i){super(),this.counter=t,this.onBegin=e,this.onEnd=i,this.pendingTransactions=[],this.currentTransaction=void 0,this.loggerCache=new Map,this.lock=new a}async submit(t){const e=this.logger("submit");if(await this.lock.acquire(),e.silly("Lock acquired to submit transaction "+t.id),this.currentTransaction&&this.currentTransaction.id===t.id)return this.lock.release(),e.silly("Released lock for re-entrant transaction "+t.id),t.fire();let i;return this.counter>0?(this.counter--,this.lock.release(),e.silly("Released lock for transaction "+t.id),i=this.fireTransaction(t)):(e.debug(`Pushing transaction ${t.id} to the queue`),this.pendingTransactions.push(t),i=t.wait(),this.lock.release(),e.silly("Released lock after queuing transaction "+t.id)),i}async fireTransaction(t){const e=this.logger("fireTransaction");return await this.lock.acquire(),e.silly("Lock acquired obtain transaction "+t.id),this.currentTransaction=t,this.lock.release(),e.silly("Released lock after obtaining "+t.id),this.onBegin&&(e.verbose("Calling onBegin for transaction "+t.id),await this.onBegin()),e.info(`Starting transaction ${t.id}. ${this.pendingTransactions.length} remaining...`),t.fire()}async release(t){const e=this.logger("release");await this.lock.acquire(),this.currentTransaction||e.warn("Trying to release an unexisting transaction. should never happen..."),e.verbose("Releasing transaction "+this.currentTransaction?.toString(!0,!0));const i=this.currentTransaction?.id;if(this.currentTransaction=void 0,this.lock.release(),e.silly("Released lock after clearing transaction "+i),this.onEnd&&(e.verbose("Calling onEnd for transaction "+i),await this.onEnd(t)),await this.lock.acquire(),e.silly(`Acquired lock after completing transaction ${i} for pending transaction verification`),this.pendingTransactions.length>0){const t=this.pendingTransactions.shift(),i=()=>this.fireTransaction.call(this,t).catch(t=>{this.log.for(this.fireTransaction).error(t)});e.silly(`Marking ${t.id} for execution`),s.isBrowser()?setTimeout(i,0):globalThis.process.nextTick(i)}else e.debug("No pending transactions. Incrementing counter."),this.counter++;this.lock.release(),e.silly("Released lock after completing transaction "+i)}}const h="##VERSION##",d="##PACKAGE##";e.Metadata.registerLibrary(d,h),t.Lock=a,t.PACKAGE_NAME=d,t.SynchronousLock=l,t.TimeoutError=o,t.Transaction=c,t.TransactionalKeys=n,t.VERSION=h,t.transactional=(...t)=>(s,a,o)=>{if(!o)throw new i.InternalError("This decorator only applies to methods");return e.method()(s,a,o),e.Metadata.set(s.constructor,e.Metadata.key(n.TRANSACTIONAL,a),{data:t}),o.value=new Proxy(o.value,{apply:async(e,i,n)=>new Promise((o,r)=>{async function l(t,e,i){return!e||e instanceof Error||i||(i=e,e=void 0),await t.release(e),e?r(e):o(i)}const h=n[0],d=(()=>{let t=0;for(;t<n.length&&n[t]instanceof c;)t++;return t})(),g=d>0?n.slice(d):n,u=h instanceof c?h:c.contextTransaction(i);if(u){const n=new c(s.name,a,async()=>{try{return o(await Reflect.apply(e,n.bindToTransaction(i),g))}catch(t){return r(t)}},t.length?t:void 0);u.bindTransaction(n),u.fire()}else{const n=new c(s.name,a,async()=>{try{return l(n,void 0,await Reflect.apply(e,n.bindToTransaction(i),g))}catch(t){return l(n,t)}},t.length?t:void 0);c.submit(n)}})}),o}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/logging"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["transactional-decorators"]={},t.decafTsDecoration,t.decafTsDbDecorators,t.decafTsLogging);
1
+ var t,e;t=this,e=function(t,e,i,a){"use strict";class s{constructor(){this.queue=[],this.locked=!1}async execute(t){let e;await this.acquire();try{e=await Promise.resolve(t())}catch(t){throw this.release(),t}return this.release(),e}async acquire(){const t=this;return t.locked?new Promise(e=>t.queue.push(e)):(t.locked=!0,Promise.resolve())}release(){const t=this.queue.shift();t?void 0===globalThis.window?globalThis.process.nextTick(t):setTimeout(t,0):this.locked=!1}}const n={TRANSACTIONAL:"transactional"};e.Metadata.transactionals=t=>{const i=e.Metadata.get(t,n.TRANSACTIONAL);return i?Object.keys(i):[]},e.Metadata.isTransactional=t=>!!e.Metadata.get(t,n.TRANSACTIONAL);class o extends i.InternalError{constructor(t="Transaction timed out"){super(t,o.name,500)}}const r=new WeakMap;class c extends a.LoggedClass{static{this.debug=!1}static{this.globalTimeout=-1}static{this.metadataCache=new WeakMap}static{this.log=new Proxy(a.Logging.for(c),{get:(t,e,i)=>"log"!==e||c.debug?Reflect.get(t,e,i):(...t)=>{}})}get log(){return this._log||(this._log=c.log),this._log}static{this.contexts=new WeakMap}constructor(t,e,i,a){super(),this.initialFireDispatched=!1,this.released=!1,this.id=Date.now(),this.action=i,this.method=e,this.logs=[[this.id,t,e].join(" | ")],this.source=t,this.metadata=a,this.completion=new Promise((t,e)=>{this.resolveCompletion=t,this.rejectCompletion=e})}static async push(t,e,...i){const a=this.log.for(this.push),s=c.describeTarget(t),n=c.describeTarget(e),o=new c(s,n,async()=>{const s=a.for(o.id.toString());try{s.verbose("Executing transaction method "+n),s.debug("With arguments: "+JSON.stringify(i));const a=await Promise.resolve(e.call(o.bindToTransaction(t),...i));return s.verbose(`Transaction method ${n} executed successfully`),s.debug("Result: "+JSON.stringify(a)),await o.release(),s.debug("lock released"),a}catch(t){throw await o.release(t),t}});return a.debug(`Pushing transaction ${o.id} for method ${n} on issuer ${s}`),c.submit(o)}static async run(t,e,i){const a="function"!=typeof t,s=a?t:void 0,n=a?e:t;if("function"!=typeof n)throw Error("Transaction.run requires an async function");const o=a?i:e,r=Array.isArray(o)&&o.length?o:void 0,l=s?c.describeTarget(s):c.describeTarget(n),h=c.describeTarget(n);let d;return d=new c(l,h,async()=>{let t;try{const t=s?d.bindToTransaction(s):void 0;return await n.call(t??d)}catch(e){throw t=e,e}finally{await d.release(t instanceof Error?t:void 0)}},r),c.submit(d)}static setLock(t){this.lock=t}static getLock(){return this.lock||(this.lock=new l),this.lock}static submit(t){return c.getLock().submit(t)}static async release(t){return c.getLock().release(t)}async release(t){this.released||(this.released=!0,await c.release(t))}getMetadata(){return this.metadata?[...this.metadata]:void 0}static getTransactionalMetadata(t){let a=this.metadataCache.get(t);if(a)return a;const s=new Set(["__transactionProxy","__transactionTarget","string"==typeof i.DBKeys.ORIGINAL?i.DBKeys.ORIGINAL:"__originalObj"]),n=e.Metadata.transactionals(t)??[],o=(e.Metadata.properties(t)||[]).filter(t=>!s.has(t)),r=new Map;return o.forEach(i=>{const a=e.Metadata.type(t,i);r.set(i,!!a&&e.Metadata.isTransactional(a))}),a={methods:n,propertyKeys:o,propertyDesignTypes:r},this.metadataCache.set(t,a),a}bindTransaction(t){this.log.for(this.bindTransaction).verbose(`Binding the ${t.toString()} to ${this}`),this.logs.push(...t.logs),t.bindTransaction=this.bindToTransaction.bind(this),t.bindToTransaction=this.bindToTransaction.bind(this),this.action=t.action}bindToTransaction(t){const s=this.log.for(this.bindToTransaction);s.verbose(`Binding object ${a.getObjectName(t)} to transaction ${this.id}`);const n=c.getTransactionalMetadata(t.constructor),o=n.methods;if(!o.length)return t;const r=this,l=new Set(["__transactionProxy","__transactionTarget","string"==typeof i.DBKeys.ORIGINAL?i.DBKeys.ORIGINAL:"__originalObj"]),h=new Set(n.propertyKeys);Object.getOwnPropertyNames(t).forEach(t=>{l.has(t)||h.add(t)});const d=Array.from(h).filter(i=>{if(n.propertyDesignTypes.get(i))return!0;const a=t[i];return!(!a||"object"!=typeof a&&"function"!=typeof a||!e.Metadata.isTransactional(a.constructor))});s.debug(`found transaction methods: ${o.join(", ")} and properties: ${d.join(", ")}`);const g=new Proxy(t,{get:(t,e,i)=>o.includes(e)?new Proxy(t[e],{apply:(t,e,i)=>Reflect.apply(t,e,[r,...i])}):d.includes(e)?r.bindToTransaction(t[e]):Reflect.get(t,e,i)});return g[i.DBKeys.ORIGINAL]=t[i.DBKeys.ORIGINAL]||t,g.toString=()=>a.getObjectName(g[i.DBKeys.ORIGINAL])+" proxy for transaction "+this.id,g.__transactionProxy=!0,g.__transactionTarget=t.__transactionTarget||t,c.contexts.set(g,r),g}applyGlobalTimeout(t){if(0>=c.globalTimeout)return t;const e=c.globalTimeout,i=this.log.for(this.applyGlobalTimeout);return new Promise((a,s)=>{let n=!1;const r=setTimeout(()=>{if(n)return;const t=new o(`Transaction ${this.toString()} exceeded timeout of ${e}ms`);i.warn(t.message),this.release(t).catch(t=>i.error(t)),s(t)},e);t.then(t=>{n=!0,clearTimeout(r),a(t)}).catch(t=>{n=!0,clearTimeout(r),s(t)})})}fire(){if(!this.action)throw Error("Missing the method");const t=(async()=>this.action?await this.action():void 0)(),e=c.globalTimeout>0?this.applyGlobalTimeout(t):t;return this.initialFireDispatched||(this.initialFireDispatched=!0,e.then(t=>(this.resolveCompletion?.(t),t)).catch(t=>{throw this.rejectCompletion?.(t),t})),e}toString(t=!0,e=!1){return`${t?`[${this.id}]`:""}[Transaction][${this.source}.${this.method}${e?"]\nTransaction Log:\n"+this.logs.join("\n"):"]"}`}static contextTransaction(t){if(t&&t.__transactionProxy)return this.contexts.get(t)}wait(){return this.completion}static describeTarget(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)return a.getObjectName(t);const e=t;let i=r.get(e);return i||(i=a.getObjectName(t),r.set(e,i)),i}}class l extends a.LoggedClass{get log(){return this._log||(this._log=c.log.for(this)),this._log}logger(t){return this.loggerCache.has(t)||this.loggerCache.set(t,this.log.for(this[t])),this.loggerCache.get(t)}constructor(t=1,e,i){super(),this.counter=t,this.onBegin=e,this.onEnd=i,this.pendingTransactions=[],this.currentTransaction=void 0,this.loggerCache=new Map,this.lock=new s}async submit(t){const e=this.logger("submit");if(await this.lock.acquire(),e.silly("Lock acquired to submit transaction "+t.id),this.currentTransaction&&this.currentTransaction.id===t.id)return this.lock.release(),e.silly("Released lock for re-entrant transaction "+t.id),t.fire();let i;return this.counter>0?(this.counter--,this.lock.release(),e.silly("Released lock for transaction "+t.id),i=this.fireTransaction(t)):(e.debug(`Pushing transaction ${t.id} to the queue`),this.pendingTransactions.push(t),i=t.wait(),this.lock.release(),e.silly("Released lock after queuing transaction "+t.id)),i}async fireTransaction(t){const e=this.logger("fireTransaction");return await this.lock.acquire(),e.silly("Lock acquired obtain transaction "+t.id),this.currentTransaction=t,this.lock.release(),e.silly("Released lock after obtaining "+t.id),this.onBegin&&(e.verbose("Calling onBegin for transaction "+t.id),await this.onBegin()),e.info(`Starting transaction ${t.id}. ${this.pendingTransactions.length} remaining...`),t.fire()}async release(t){const e=this.logger("release");await this.lock.acquire(),this.currentTransaction||e.warn("Trying to release an unexisting transaction. should never happen..."),e.verbose("Releasing transaction "+this.currentTransaction?.toString(!0,!0));const i=this.currentTransaction?.id;if(this.currentTransaction=void 0,this.lock.release(),e.silly("Released lock after clearing transaction "+i),this.onEnd&&(e.verbose("Calling onEnd for transaction "+i),await this.onEnd(t)),await this.lock.acquire(),e.silly(`Acquired lock after completing transaction ${i} for pending transaction verification`),this.pendingTransactions.length>0){const t=this.pendingTransactions.shift(),i=()=>this.fireTransaction.call(this,t).catch(t=>{this.log.for(this.fireTransaction).error(t)});e.silly(`Marking ${t.id} for execution`),a.isBrowser()?setTimeout(i,0):globalThis.process.nextTick(i)}else e.debug("No pending transactions. Incrementing counter."),this.counter++;this.lock.release(),e.silly("Released lock after completing transaction "+i)}}const h="##VERSION##",d="##PACKAGE##";e.Metadata.registerLibrary(d,h),t.Lock=s,t.PACKAGE_NAME=d,t.SynchronousLock=l,t.TimeoutError=o,t.Transaction=c,t.TransactionalKeys=n,t.VERSION=h,t.transactional=(...t)=>e.Decoration.for(n.TRANSACTIONAL).define({decorator:(...t)=>(a,s,o)=>{if(!o)throw new i.InternalError("This decorator only applies to methods");return e.method()(a,s,o),e.Metadata.set(a.constructor,e.Metadata.key(n.TRANSACTIONAL,s),{data:t}),o.value=new Proxy(o.value,{apply:async(e,i,n)=>new Promise((o,r)=>{async function l(t,e,i){return!e||e instanceof Error||i||(i=e,e=void 0),await t.release(e),e?r(e):o(i)}const h=n[0],d=(()=>{let t=0;for(;t<n.length&&n[t]instanceof c;)t++;return t})(),g=d>0?n.slice(d):n,u=h instanceof c?h:c.contextTransaction(i);if(u){const n=new c(a.name,s,async()=>{try{return o(await Reflect.apply(e,n.bindToTransaction(i),g))}catch(t){return r(t)}},t.length?t:void 0);u.bindTransaction(n),u.fire()}else{const n=new c(a.name,s,async()=>{try{return l(n,void 0,await Reflect.apply(e,n.bindToTransaction(i),g))}catch(t){return l(n,t)}},t.length?t:void 0);c.submit(n)}})}),o},args:t}).apply()},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/logging"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["transactional-decorators"]={},t.decafTsDecoration,t.decafTsDbDecorators,t.decafTsLogging);
2
2
  //# sourceMappingURL=transactional-decorators.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactional-decorators.cjs","sources":["../src/locks/Lock.ts","../src/constants.ts","../src/overrides/overrides.ts","../src/errors.ts","../src/Transaction.ts","../src/locks/SynchronousLock.ts","../src/index.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["Lock","constructor","this","queue","locked","execute","func","result","acquire","Promise","resolve","e","release","self","push","next","shift","globalThis","window","process","nextTick","setTimeout","TransactionalKeys","TRANSACTIONAL","Metadata","transactionals","obj","meta","get","Object","keys","isTransactional","TimeoutError","InternalError","message","super","name","objectNameCache","WeakMap","Transaction","LoggedClass","debug","globalTimeout","metadataCache","log","Proxy","Logging","for","target","prop","receiver","Reflect","args","contexts","source","method","action","metadata","initialFireDispatched","released","id","Date","now","logs","join","completion","reject","resolveCompletion","rejectCompletion","issuer","issuerName","describeTarget","methodName","transaction","async","l","toString","verbose","JSON","stringify","call","bindToTransaction","submit","run","contextOrRunnable","runnableOrMetadata","maybeMetadata","contextProvided","context","undefined","runnable","Error","rawMetadata","metadataValue","Array","isArray","length","sourceName","caughtError","boundContext","error","setLock","lock","getLock","SynchronousLock","err","getMetadata","getTransactionalMetadata","cached","reservedProps","Set","DBKeys","ORIGINAL","methods","propertyKeys","properties","filter","has","propertyDesignTypes","Map","forEach","type","set","bindTransaction","nextTransaction","bind","getObjectName","transactionalMethods","props","getOwnPropertyNames","add","transactionProps","from","p","value","boundObj","includes","apply","methodTarget","thisArg","argArray","__transactionProxy","__transactionTarget","applyGlobalTimeout","execution","timeoutMs","settled","timer","warn","catch","releaseErr","then","clearTimeout","fire","baseExecution","executeAction","withId","withLog","contextTransaction","wait","key","logger","loggerCache","counter","onBegin","onEnd","pendingTransactions","currentTransaction","silly","resultPromise","fireTransaction","info","cb","isBrowser","VERSION","PACKAGE_NAME","registerLibrary","data","propertyKey","descriptor","exitFunction","candidate","transactionPrefixLength","count","invocationArgs","slice","activeTransaction","updatedTransaction","newTransaction"],"mappings":"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"}
1
+ {"version":3,"file":"transactional-decorators.cjs","sources":["../src/locks/Lock.ts","../src/constants.ts","../src/overrides/overrides.ts","../src/errors.ts","../src/Transaction.ts","../src/locks/SynchronousLock.ts","../src/index.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["Lock","constructor","this","queue","locked","execute","func","result","acquire","Promise","resolve","e","release","self","push","next","shift","globalThis","window","process","nextTick","setTimeout","TransactionalKeys","TRANSACTIONAL","Metadata","transactionals","obj","meta","get","Object","keys","isTransactional","TimeoutError","InternalError","message","super","name","objectNameCache","WeakMap","Transaction","LoggedClass","debug","globalTimeout","metadataCache","log","Proxy","Logging","for","target","prop","receiver","Reflect","args","contexts","source","method","action","metadata","initialFireDispatched","released","id","Date","now","logs","join","completion","reject","resolveCompletion","rejectCompletion","issuer","issuerName","describeTarget","methodName","transaction","async","l","toString","verbose","JSON","stringify","call","bindToTransaction","submit","run","contextOrRunnable","runnableOrMetadata","maybeMetadata","contextProvided","context","undefined","runnable","Error","rawMetadata","metadataValue","Array","isArray","length","sourceName","caughtError","boundContext","error","setLock","lock","getLock","SynchronousLock","err","getMetadata","getTransactionalMetadata","cached","reservedProps","Set","DBKeys","ORIGINAL","methods","propertyKeys","properties","filter","has","propertyDesignTypes","Map","forEach","type","set","bindTransaction","nextTransaction","bind","getObjectName","transactionalMethods","props","getOwnPropertyNames","add","transactionProps","from","p","value","boundObj","includes","apply","methodTarget","thisArg","argArray","__transactionProxy","__transactionTarget","applyGlobalTimeout","execution","timeoutMs","settled","timer","warn","catch","releaseErr","then","clearTimeout","fire","baseExecution","executeAction","withId","withLog","contextTransaction","wait","key","logger","loggerCache","counter","onBegin","onEnd","pendingTransactions","currentTransaction","silly","resultPromise","fireTransaction","info","cb","isBrowser","VERSION","PACKAGE_NAME","registerLibrary","data","Decoration","define","decorator","propertyKey","descriptor","exitFunction","candidate","transactionPrefixLength","count","invocationArgs","slice","activeTransaction","updatedTransaction","newTransaction"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Metadata as t,method as e}from"@decaf-ts/decoration";import{InternalError as i,DBKeys as n}from"@decaf-ts/db-decorators";import{LoggedClass as s,Logging as a,getObjectName as r,isBrowser as o}from"@decaf-ts/logging";class c{constructor(){this.queue=[],this.locked=!1}async execute(t){let e;await this.acquire();try{e=await Promise.resolve(t())}catch(t){throw this.release(),t}return this.release(),e}async acquire(){const t=this;return t.locked?new Promise(e=>t.queue.push(e)):(t.locked=!0,Promise.resolve())}release(){const t=this.queue.shift();t?void 0===globalThis.window?globalThis.process.nextTick(t):setTimeout(t,0):this.locked=!1}}const l={TRANSACTIONAL:"transactional"};t.transactionals=e=>{const i=t.get(e,"transactional");return i?Object.keys(i):[]},t.isTransactional=e=>!!t.get(e,"transactional");class h extends i{constructor(t="Transaction timed out"){super(t,h.name,500)}}const u=new WeakMap;class g extends s{static{this.debug=!1}static{this.globalTimeout=-1}static{this.metadataCache=new WeakMap}static{this.log=new Proxy(a.for(g),{get:(t,e,i)=>"log"!==e||g.debug?Reflect.get(t,e,i):(...t)=>{}})}get log(){return this._log||(this._log=g.log),this._log}static{this.contexts=new WeakMap}constructor(t,e,i,n){super(),this.initialFireDispatched=!1,this.released=!1,this.id=Date.now(),this.action=i,this.method=e,this.logs=[[this.id,t,e].join(" | ")],this.source=t,this.metadata=n,this.completion=new Promise((t,e)=>{this.resolveCompletion=t,this.rejectCompletion=e})}static async push(t,e,...i){const n=this.log.for(this.push),s=g.describeTarget(t),a=g.describeTarget(e),r=new g(s,a,async()=>{const s=n.for(r.id.toString());try{s.verbose("Executing transaction method "+a),s.debug("With arguments: "+JSON.stringify(i));const n=await Promise.resolve(e.call(r.bindToTransaction(t),...i));return s.verbose(`Transaction method ${a} executed successfully`),s.debug("Result: "+JSON.stringify(n)),await r.release(),s.debug("lock released"),n}catch(t){throw await r.release(t),t}});return n.debug(`Pushing transaction ${r.id} for method ${a} on issuer ${s}`),g.submit(r)}static async run(t,e,i){const n="function"!=typeof t,s=n?t:void 0,a=n?e:t;if("function"!=typeof a)throw Error("Transaction.run requires an async function");const r=n?i:e,o=Array.isArray(r)&&r.length?r:void 0,c=s?g.describeTarget(s):g.describeTarget(a),l=g.describeTarget(a);let h;return h=new g(c,l,async()=>{let t;try{const t=s?h.bindToTransaction(s):void 0;return await a.call(t??h)}catch(e){throw t=e,e}finally{await h.release(t instanceof Error?t:void 0)}},o),g.submit(h)}static setLock(t){this.lock=t}static getLock(){return this.lock||(this.lock=new d),this.lock}static submit(t){return g.getLock().submit(t)}static async release(t){return g.getLock().release(t)}async release(t){this.released||(this.released=!0,await g.release(t))}getMetadata(){return this.metadata?[...this.metadata]:void 0}static getTransactionalMetadata(e){let i=this.metadataCache.get(e);if(i)return i;const s=new Set(["__transactionProxy","__transactionTarget","string"==typeof n.ORIGINAL?n.ORIGINAL:"__originalObj"]),a=t.transactionals(e)??[],r=(t.properties(e)||[]).filter(t=>!s.has(t)),o=new Map;return r.forEach(i=>{const n=t.type(e,i);o.set(i,!!n&&t.isTransactional(n))}),i={methods:a,propertyKeys:r,propertyDesignTypes:o},this.metadataCache.set(e,i),i}bindTransaction(t){this.log.for(this.bindTransaction).verbose(`Binding the ${t.toString()} to ${this}`),this.logs.push(...t.logs),t.bindTransaction=this.bindToTransaction.bind(this),t.bindToTransaction=this.bindToTransaction.bind(this),this.action=t.action}bindToTransaction(e){const i=this.log.for(this.bindToTransaction);i.verbose(`Binding object ${r(e)} to transaction ${this.id}`);const s=g.getTransactionalMetadata(e.constructor),a=s.methods;if(!a.length)return e;const o=this,c=new Set(["__transactionProxy","__transactionTarget","string"==typeof n.ORIGINAL?n.ORIGINAL:"__originalObj"]),l=new Set(s.propertyKeys);Object.getOwnPropertyNames(e).forEach(t=>{c.has(t)||l.add(t)});const h=Array.from(l).filter(i=>{if(s.propertyDesignTypes.get(i))return!0;const n=e[i];return!(!n||"object"!=typeof n&&"function"!=typeof n||!t.isTransactional(n.constructor))});i.debug(`found transaction methods: ${a.join(", ")} and properties: ${h.join(", ")}`);const u=new Proxy(e,{get:(t,e,i)=>a.includes(e)?new Proxy(t[e],{apply:(t,e,i)=>Reflect.apply(t,e,[o,...i])}):h.includes(e)?o.bindToTransaction(t[e]):Reflect.get(t,e,i)});return u[n.ORIGINAL]=e[n.ORIGINAL]||e,u.toString=()=>r(u[n.ORIGINAL])+" proxy for transaction "+this.id,u.__transactionProxy=!0,u.__transactionTarget=e.__transactionTarget||e,g.contexts.set(u,o),u}applyGlobalTimeout(t){if(0>=g.globalTimeout)return t;const e=g.globalTimeout,i=this.log.for(this.applyGlobalTimeout);return new Promise((n,s)=>{let a=!1;const r=setTimeout(()=>{if(a)return;const t=new h(`Transaction ${this.toString()} exceeded timeout of ${e}ms`);i.warn(t.message),this.release(t).catch(t=>i.error(t)),s(t)},e);t.then(t=>{a=!0,clearTimeout(r),n(t)}).catch(t=>{a=!0,clearTimeout(r),s(t)})})}fire(){if(!this.action)throw Error("Missing the method");const t=(async()=>this.action?await this.action():void 0)(),e=g.globalTimeout>0?this.applyGlobalTimeout(t):t;return this.initialFireDispatched||(this.initialFireDispatched=!0,e.then(t=>(this.resolveCompletion?.(t),t)).catch(t=>{throw this.rejectCompletion?.(t),t})),e}toString(t=!0,e=!1){return`${t?`[${this.id}]`:""}[Transaction][${this.source}.${this.method}${e?"]\nTransaction Log:\n"+this.logs.join("\n"):"]"}`}static contextTransaction(t){if(t&&t.__transactionProxy)return this.contexts.get(t)}wait(){return this.completion}static describeTarget(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)return r(t);const e=t;let i=u.get(e);return i||(i=r(t),u.set(e,i)),i}}class d extends s{get log(){return this._log||(this._log=g.log.for(this)),this._log}logger(t){return this.loggerCache.has(t)||this.loggerCache.set(t,this.log.for(this[t])),this.loggerCache.get(t)}constructor(t=1,e,i){super(),this.counter=t,this.onBegin=e,this.onEnd=i,this.pendingTransactions=[],this.currentTransaction=void 0,this.loggerCache=new Map,this.lock=new c}async submit(t){const e=this.logger("submit");if(await this.lock.acquire(),e.silly("Lock acquired to submit transaction "+t.id),this.currentTransaction&&this.currentTransaction.id===t.id)return this.lock.release(),e.silly("Released lock for re-entrant transaction "+t.id),t.fire();let i;return this.counter>0?(this.counter--,this.lock.release(),e.silly("Released lock for transaction "+t.id),i=this.fireTransaction(t)):(e.debug(`Pushing transaction ${t.id} to the queue`),this.pendingTransactions.push(t),i=t.wait(),this.lock.release(),e.silly("Released lock after queuing transaction "+t.id)),i}async fireTransaction(t){const e=this.logger("fireTransaction");return await this.lock.acquire(),e.silly("Lock acquired obtain transaction "+t.id),this.currentTransaction=t,this.lock.release(),e.silly("Released lock after obtaining "+t.id),this.onBegin&&(e.verbose("Calling onBegin for transaction "+t.id),await this.onBegin()),e.info(`Starting transaction ${t.id}. ${this.pendingTransactions.length} remaining...`),t.fire()}async release(t){const e=this.logger("release");await this.lock.acquire(),this.currentTransaction||e.warn("Trying to release an unexisting transaction. should never happen..."),e.verbose("Releasing transaction "+this.currentTransaction?.toString(!0,!0));const i=this.currentTransaction?.id;if(this.currentTransaction=void 0,this.lock.release(),e.silly("Released lock after clearing transaction "+i),this.onEnd&&(e.verbose("Calling onEnd for transaction "+i),await this.onEnd(t)),await this.lock.acquire(),e.silly(`Acquired lock after completing transaction ${i} for pending transaction verification`),this.pendingTransactions.length>0){const t=this.pendingTransactions.shift(),i=()=>this.fireTransaction.call(this,t).catch(t=>{this.log.for(this.fireTransaction).error(t)});e.silly(`Marking ${t.id} for execution`),o()?setTimeout(i,0):globalThis.process.nextTick(i)}else e.debug("No pending transactions. Incrementing counter."),this.counter++;this.lock.release(),e.silly("Released lock after completing transaction "+i)}}function f(...n){return(s,a,r)=>{if(!r)throw new i("This decorator only applies to methods");return e()(s,a,r),t.set(s.constructor,t.key("transactional",a),{data:n}),r.value=new Proxy(r.value,{apply:async(t,e,i)=>new Promise((r,o)=>{async function c(t,e,i){return!e||e instanceof Error||i||(i=e,e=void 0),await t.release(e),e?o(e):r(i)}const l=i[0],h=(()=>{let t=0;for(;t<i.length&&i[t]instanceof g;)t++;return t})(),u=h>0?i.slice(h):i,d=l instanceof g?l:g.contextTransaction(e);if(d){const i=new g(s.name,a,async()=>{try{return r(await Reflect.apply(t,i.bindToTransaction(e),u))}catch(t){return o(t)}},n.length?n:void 0);d.bindTransaction(i),d.fire()}else{const i=new g(s.name,a,async()=>{try{return c(i,void 0,await Reflect.apply(t,i.bindToTransaction(e),u))}catch(t){return c(i,t)}},n.length?n:void 0);g.submit(i)}})}),r}}const T="##VERSION##",p="##PACKAGE##";t.registerLibrary(p,T);export{c as Lock,p as PACKAGE_NAME,d as SynchronousLock,h as TimeoutError,g as Transaction,l as TransactionalKeys,T as VERSION,f as transactional};
1
+ import{Metadata as t,Decoration as e,method as i}from"@decaf-ts/decoration";import{InternalError as n,DBKeys as s}from"@decaf-ts/db-decorators";import{LoggedClass as a,Logging as r,getObjectName as o,isBrowser as c}from"@decaf-ts/logging";class l{constructor(){this.queue=[],this.locked=!1}async execute(t){let e;await this.acquire();try{e=await Promise.resolve(t())}catch(t){throw this.release(),t}return this.release(),e}async acquire(){const t=this;return t.locked?new Promise(e=>t.queue.push(e)):(t.locked=!0,Promise.resolve())}release(){const t=this.queue.shift();t?void 0===globalThis.window?globalThis.process.nextTick(t):setTimeout(t,0):this.locked=!1}}const h={TRANSACTIONAL:"transactional"};t.transactionals=e=>{const i=t.get(e,"transactional");return i?Object.keys(i):[]},t.isTransactional=e=>!!t.get(e,"transactional");class u extends n{constructor(t="Transaction timed out"){super(t,u.name,500)}}const g=new WeakMap;class d extends a{static{this.debug=!1}static{this.globalTimeout=-1}static{this.metadataCache=new WeakMap}static{this.log=new Proxy(r.for(d),{get:(t,e,i)=>"log"!==e||d.debug?Reflect.get(t,e,i):(...t)=>{}})}get log(){return this._log||(this._log=d.log),this._log}static{this.contexts=new WeakMap}constructor(t,e,i,n){super(),this.initialFireDispatched=!1,this.released=!1,this.id=Date.now(),this.action=i,this.method=e,this.logs=[[this.id,t,e].join(" | ")],this.source=t,this.metadata=n,this.completion=new Promise((t,e)=>{this.resolveCompletion=t,this.rejectCompletion=e})}static async push(t,e,...i){const n=this.log.for(this.push),s=d.describeTarget(t),a=d.describeTarget(e),r=new d(s,a,async()=>{const s=n.for(r.id.toString());try{s.verbose("Executing transaction method "+a),s.debug("With arguments: "+JSON.stringify(i));const n=await Promise.resolve(e.call(r.bindToTransaction(t),...i));return s.verbose(`Transaction method ${a} executed successfully`),s.debug("Result: "+JSON.stringify(n)),await r.release(),s.debug("lock released"),n}catch(t){throw await r.release(t),t}});return n.debug(`Pushing transaction ${r.id} for method ${a} on issuer ${s}`),d.submit(r)}static async run(t,e,i){const n="function"!=typeof t,s=n?t:void 0,a=n?e:t;if("function"!=typeof a)throw Error("Transaction.run requires an async function");const r=n?i:e,o=Array.isArray(r)&&r.length?r:void 0,c=s?d.describeTarget(s):d.describeTarget(a),l=d.describeTarget(a);let h;return h=new d(c,l,async()=>{let t;try{const t=s?h.bindToTransaction(s):void 0;return await a.call(t??h)}catch(e){throw t=e,e}finally{await h.release(t instanceof Error?t:void 0)}},o),d.submit(h)}static setLock(t){this.lock=t}static getLock(){return this.lock||(this.lock=new f),this.lock}static submit(t){return d.getLock().submit(t)}static async release(t){return d.getLock().release(t)}async release(t){this.released||(this.released=!0,await d.release(t))}getMetadata(){return this.metadata?[...this.metadata]:void 0}static getTransactionalMetadata(e){let i=this.metadataCache.get(e);if(i)return i;const n=new Set(["__transactionProxy","__transactionTarget","string"==typeof s.ORIGINAL?s.ORIGINAL:"__originalObj"]),a=t.transactionals(e)??[],r=(t.properties(e)||[]).filter(t=>!n.has(t)),o=new Map;return r.forEach(i=>{const n=t.type(e,i);o.set(i,!!n&&t.isTransactional(n))}),i={methods:a,propertyKeys:r,propertyDesignTypes:o},this.metadataCache.set(e,i),i}bindTransaction(t){this.log.for(this.bindTransaction).verbose(`Binding the ${t.toString()} to ${this}`),this.logs.push(...t.logs),t.bindTransaction=this.bindToTransaction.bind(this),t.bindToTransaction=this.bindToTransaction.bind(this),this.action=t.action}bindToTransaction(e){const i=this.log.for(this.bindToTransaction);i.verbose(`Binding object ${o(e)} to transaction ${this.id}`);const n=d.getTransactionalMetadata(e.constructor),a=n.methods;if(!a.length)return e;const r=this,c=new Set(["__transactionProxy","__transactionTarget","string"==typeof s.ORIGINAL?s.ORIGINAL:"__originalObj"]),l=new Set(n.propertyKeys);Object.getOwnPropertyNames(e).forEach(t=>{c.has(t)||l.add(t)});const h=Array.from(l).filter(i=>{if(n.propertyDesignTypes.get(i))return!0;const s=e[i];return!(!s||"object"!=typeof s&&"function"!=typeof s||!t.isTransactional(s.constructor))});i.debug(`found transaction methods: ${a.join(", ")} and properties: ${h.join(", ")}`);const u=new Proxy(e,{get:(t,e,i)=>a.includes(e)?new Proxy(t[e],{apply:(t,e,i)=>Reflect.apply(t,e,[r,...i])}):h.includes(e)?r.bindToTransaction(t[e]):Reflect.get(t,e,i)});return u[s.ORIGINAL]=e[s.ORIGINAL]||e,u.toString=()=>o(u[s.ORIGINAL])+" proxy for transaction "+this.id,u.__transactionProxy=!0,u.__transactionTarget=e.__transactionTarget||e,d.contexts.set(u,r),u}applyGlobalTimeout(t){if(0>=d.globalTimeout)return t;const e=d.globalTimeout,i=this.log.for(this.applyGlobalTimeout);return new Promise((n,s)=>{let a=!1;const r=setTimeout(()=>{if(a)return;const t=new u(`Transaction ${this.toString()} exceeded timeout of ${e}ms`);i.warn(t.message),this.release(t).catch(t=>i.error(t)),s(t)},e);t.then(t=>{a=!0,clearTimeout(r),n(t)}).catch(t=>{a=!0,clearTimeout(r),s(t)})})}fire(){if(!this.action)throw Error("Missing the method");const t=(async()=>this.action?await this.action():void 0)(),e=d.globalTimeout>0?this.applyGlobalTimeout(t):t;return this.initialFireDispatched||(this.initialFireDispatched=!0,e.then(t=>(this.resolveCompletion?.(t),t)).catch(t=>{throw this.rejectCompletion?.(t),t})),e}toString(t=!0,e=!1){return`${t?`[${this.id}]`:""}[Transaction][${this.source}.${this.method}${e?"]\nTransaction Log:\n"+this.logs.join("\n"):"]"}`}static contextTransaction(t){if(t&&t.__transactionProxy)return this.contexts.get(t)}wait(){return this.completion}static describeTarget(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)return o(t);const e=t;let i=g.get(e);return i||(i=o(t),g.set(e,i)),i}}class f extends a{get log(){return this._log||(this._log=d.log.for(this)),this._log}logger(t){return this.loggerCache.has(t)||this.loggerCache.set(t,this.log.for(this[t])),this.loggerCache.get(t)}constructor(t=1,e,i){super(),this.counter=t,this.onBegin=e,this.onEnd=i,this.pendingTransactions=[],this.currentTransaction=void 0,this.loggerCache=new Map,this.lock=new l}async submit(t){const e=this.logger("submit");if(await this.lock.acquire(),e.silly("Lock acquired to submit transaction "+t.id),this.currentTransaction&&this.currentTransaction.id===t.id)return this.lock.release(),e.silly("Released lock for re-entrant transaction "+t.id),t.fire();let i;return this.counter>0?(this.counter--,this.lock.release(),e.silly("Released lock for transaction "+t.id),i=this.fireTransaction(t)):(e.debug(`Pushing transaction ${t.id} to the queue`),this.pendingTransactions.push(t),i=t.wait(),this.lock.release(),e.silly("Released lock after queuing transaction "+t.id)),i}async fireTransaction(t){const e=this.logger("fireTransaction");return await this.lock.acquire(),e.silly("Lock acquired obtain transaction "+t.id),this.currentTransaction=t,this.lock.release(),e.silly("Released lock after obtaining "+t.id),this.onBegin&&(e.verbose("Calling onBegin for transaction "+t.id),await this.onBegin()),e.info(`Starting transaction ${t.id}. ${this.pendingTransactions.length} remaining...`),t.fire()}async release(t){const e=this.logger("release");await this.lock.acquire(),this.currentTransaction||e.warn("Trying to release an unexisting transaction. should never happen..."),e.verbose("Releasing transaction "+this.currentTransaction?.toString(!0,!0));const i=this.currentTransaction?.id;if(this.currentTransaction=void 0,this.lock.release(),e.silly("Released lock after clearing transaction "+i),this.onEnd&&(e.verbose("Calling onEnd for transaction "+i),await this.onEnd(t)),await this.lock.acquire(),e.silly(`Acquired lock after completing transaction ${i} for pending transaction verification`),this.pendingTransactions.length>0){const t=this.pendingTransactions.shift(),i=()=>this.fireTransaction.call(this,t).catch(t=>{this.log.for(this.fireTransaction).error(t)});e.silly(`Marking ${t.id} for execution`),c()?setTimeout(i,0):globalThis.process.nextTick(i)}else e.debug("No pending transactions. Incrementing counter."),this.counter++;this.lock.release(),e.silly("Released lock after completing transaction "+i)}}function T(...s){return e.for("transactional").define({decorator:(...e)=>(s,a,r)=>{if(!r)throw new n("This decorator only applies to methods");return i()(s,a,r),t.set(s.constructor,t.key("transactional",a),{data:e}),r.value=new Proxy(r.value,{apply:async(t,i,n)=>new Promise((r,o)=>{async function c(t,e,i){return!e||e instanceof Error||i||(i=e,e=void 0),await t.release(e),e?o(e):r(i)}const l=n[0],h=(()=>{let t=0;for(;t<n.length&&n[t]instanceof d;)t++;return t})(),u=h>0?n.slice(h):n,g=l instanceof d?l:d.contextTransaction(i);if(g){const n=new d(s.name,a,async()=>{try{return r(await Reflect.apply(t,n.bindToTransaction(i),u))}catch(t){return o(t)}},e.length?e:void 0);g.bindTransaction(n),g.fire()}else{const n=new d(s.name,a,async()=>{try{return c(n,void 0,await Reflect.apply(t,n.bindToTransaction(i),u))}catch(t){return c(n,t)}},e.length?e:void 0);d.submit(n)}})}),r},args:s}).apply()}const p="##VERSION##",y="##PACKAGE##";t.registerLibrary(y,p);export{l as Lock,y as PACKAGE_NAME,f as SynchronousLock,u as TimeoutError,d as Transaction,h as TransactionalKeys,p as VERSION,T as transactional};
2
2
  //# sourceMappingURL=transactional-decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactional-decorators.js","sources":["../src/locks/Lock.ts","../src/constants.ts","../src/overrides/overrides.ts","../src/errors.ts","../src/Transaction.ts","../src/locks/SynchronousLock.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["Lock","constructor","this","queue","locked","execute","func","result","acquire","Promise","resolve","e","release","self","push","next","shift","globalThis","window","process","nextTick","setTimeout","TransactionalKeys","TRANSACTIONAL","Metadata","transactionals","obj","meta","get","Object","keys","isTransactional","TimeoutError","InternalError","message","super","name","objectNameCache","WeakMap","Transaction","LoggedClass","debug","globalTimeout","metadataCache","log","Proxy","Logging","for","target","prop","receiver","Reflect","args","contexts","source","method","action","metadata","initialFireDispatched","released","id","Date","now","logs","join","completion","reject","resolveCompletion","rejectCompletion","issuer","issuerName","describeTarget","methodName","transaction","async","l","toString","verbose","JSON","stringify","call","bindToTransaction","submit","run","contextOrRunnable","runnableOrMetadata","maybeMetadata","contextProvided","context","undefined","runnable","Error","rawMetadata","metadataValue","Array","isArray","length","sourceName","caughtError","boundContext","error","setLock","lock","getLock","SynchronousLock","err","getMetadata","getTransactionalMetadata","cached","reservedProps","Set","DBKeys","ORIGINAL","methods","propertyKeys","properties","filter","has","propertyDesignTypes","Map","forEach","type","set","bindTransaction","nextTransaction","bind","getObjectName","transactionalMethods","props","getOwnPropertyNames","add","transactionProps","from","p","value","boundObj","includes","apply","methodTarget","thisArg","argArray","__transactionProxy","__transactionTarget","applyGlobalTimeout","execution","timeoutMs","settled","timer","warn","catch","releaseErr","then","clearTimeout","fire","baseExecution","executeAction","withId","withLog","contextTransaction","wait","key","logger","loggerCache","counter","onBegin","onEnd","pendingTransactions","currentTransaction","silly","resultPromise","fireTransaction","info","cb","isBrowser","transactional","data","propertyKey","descriptor","exitFunction","candidate","transactionPrefixLength","count","invocationArgs","slice","activeTransaction","updatedTransaction","newTransaction","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"transactional-decorators.js","sources":["../src/locks/Lock.ts","../src/constants.ts","../src/overrides/overrides.ts","../src/errors.ts","../src/Transaction.ts","../src/locks/SynchronousLock.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["Lock","constructor","this","queue","locked","execute","func","result","acquire","Promise","resolve","e","release","self","push","next","shift","globalThis","window","process","nextTick","setTimeout","TransactionalKeys","TRANSACTIONAL","Metadata","transactionals","obj","meta","get","Object","keys","isTransactional","TimeoutError","InternalError","message","super","name","objectNameCache","WeakMap","Transaction","LoggedClass","debug","globalTimeout","metadataCache","log","Proxy","Logging","for","target","prop","receiver","Reflect","args","contexts","source","method","action","metadata","initialFireDispatched","released","id","Date","now","logs","join","completion","reject","resolveCompletion","rejectCompletion","issuer","issuerName","describeTarget","methodName","transaction","async","l","toString","verbose","JSON","stringify","call","bindToTransaction","submit","run","contextOrRunnable","runnableOrMetadata","maybeMetadata","contextProvided","context","undefined","runnable","Error","rawMetadata","metadataValue","Array","isArray","length","sourceName","caughtError","boundContext","error","setLock","lock","getLock","SynchronousLock","err","getMetadata","getTransactionalMetadata","cached","reservedProps","Set","DBKeys","ORIGINAL","methods","propertyKeys","properties","filter","has","propertyDesignTypes","Map","forEach","type","set","bindTransaction","nextTransaction","bind","getObjectName","transactionalMethods","props","getOwnPropertyNames","add","transactionProps","from","p","value","boundObj","includes","apply","methodTarget","thisArg","argArray","__transactionProxy","__transactionTarget","applyGlobalTimeout","execution","timeoutMs","settled","timer","warn","catch","releaseErr","then","clearTimeout","fire","baseExecution","executeAction","withId","withLog","contextTransaction","wait","key","logger","loggerCache","counter","onBegin","onEnd","pendingTransactions","currentTransaction","silly","resultPromise","fireTransaction","info","cb","isBrowser","transactional","data","Decoration","define","decorator","propertyKey","descriptor","exitFunction","candidate","transactionPrefixLength","count","invocationArgs","slice","activeTransaction","updatedTransaction","newTransaction","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -38,68 +38,76 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
38
38
  * @category Decorators
39
39
  */
40
40
  function transactional(...data) {
41
- return function (target, propertyKey, descriptor) {
42
- if (!descriptor)
43
- throw new db_decorators_1.InternalError("This decorator only applies to methods");
44
- (0, decoration_1.method)()(target, propertyKey, descriptor);
45
- decoration_1.Metadata.set(target.constructor, decoration_1.Metadata.key(constants_1.TransactionalKeys.TRANSACTIONAL, propertyKey), {
46
- data: data,
47
- });
48
- descriptor.value = new Proxy(descriptor.value, {
49
- async apply(obj, thisArg, argArray) {
50
- return new Promise((resolve, reject) => {
51
- async function exitFunction(transaction, err, result) {
52
- if (err && !(err instanceof Error) && !result) {
53
- result = err;
54
- err = undefined;
55
- }
56
- await transaction.release(err);
57
- return err
58
- ? reject(err)
59
- : resolve(result);
60
- }
61
- const candidate = argArray[0];
62
- const transactionPrefixLength = (() => {
63
- let count = 0;
64
- while (count < argArray.length &&
65
- argArray[count] instanceof Transaction_1.Transaction) {
66
- count++;
67
- }
68
- return count;
69
- })();
70
- const invocationArgs = transactionPrefixLength > 0
71
- ? argArray.slice(transactionPrefixLength)
72
- : argArray;
73
- const activeTransaction = candidate instanceof Transaction_1.Transaction
74
- ? candidate
75
- : Transaction_1.Transaction.contextTransaction(thisArg);
76
- if (activeTransaction) {
77
- const updatedTransaction = new Transaction_1.Transaction(target.name, propertyKey, async () => {
78
- try {
79
- return resolve(await Reflect.apply(obj, updatedTransaction.bindToTransaction(thisArg), invocationArgs));
80
- }
81
- catch (e) {
82
- return reject(e);
83
- }
84
- }, data.length ? data : undefined);
85
- activeTransaction.bindTransaction(updatedTransaction);
86
- activeTransaction.fire();
87
- }
88
- else {
89
- const newTransaction = new Transaction_1.Transaction(target.name, propertyKey, async () => {
90
- try {
91
- return exitFunction(newTransaction, undefined, await Reflect.apply(obj, newTransaction.bindToTransaction(thisArg), invocationArgs));
41
+ function innerTransactional(...data) {
42
+ return function (target, propertyKey, descriptor) {
43
+ if (!descriptor)
44
+ throw new db_decorators_1.InternalError("This decorator only applies to methods");
45
+ (0, decoration_1.method)()(target, propertyKey, descriptor);
46
+ decoration_1.Metadata.set(target.constructor, decoration_1.Metadata.key(constants_1.TransactionalKeys.TRANSACTIONAL, propertyKey), {
47
+ data: data,
48
+ });
49
+ descriptor.value = new Proxy(descriptor.value, {
50
+ async apply(obj, thisArg, argArray) {
51
+ return new Promise((resolve, reject) => {
52
+ async function exitFunction(transaction, err, result) {
53
+ if (err && !(err instanceof Error) && !result) {
54
+ result = err;
55
+ err = undefined;
92
56
  }
93
- catch (e) {
94
- return exitFunction(newTransaction, e);
57
+ await transaction.release(err);
58
+ return err
59
+ ? reject(err)
60
+ : resolve(result);
61
+ }
62
+ const candidate = argArray[0];
63
+ const transactionPrefixLength = (() => {
64
+ let count = 0;
65
+ while (count < argArray.length &&
66
+ argArray[count] instanceof Transaction_1.Transaction) {
67
+ count++;
95
68
  }
96
- }, data.length ? data : undefined);
97
- Transaction_1.Transaction.submit(newTransaction);
98
- }
99
- });
100
- },
101
- });
102
- return descriptor;
103
- };
69
+ return count;
70
+ })();
71
+ const invocationArgs = transactionPrefixLength > 0
72
+ ? argArray.slice(transactionPrefixLength)
73
+ : argArray;
74
+ const activeTransaction = candidate instanceof Transaction_1.Transaction
75
+ ? candidate
76
+ : Transaction_1.Transaction.contextTransaction(thisArg);
77
+ if (activeTransaction) {
78
+ const updatedTransaction = new Transaction_1.Transaction(target.name, propertyKey, async () => {
79
+ try {
80
+ return resolve(await Reflect.apply(obj, updatedTransaction.bindToTransaction(thisArg), invocationArgs));
81
+ }
82
+ catch (e) {
83
+ return reject(e);
84
+ }
85
+ }, data.length ? data : undefined);
86
+ activeTransaction.bindTransaction(updatedTransaction);
87
+ activeTransaction.fire();
88
+ }
89
+ else {
90
+ const newTransaction = new Transaction_1.Transaction(target.name, propertyKey, async () => {
91
+ try {
92
+ return exitFunction(newTransaction, undefined, await Reflect.apply(obj, newTransaction.bindToTransaction(thisArg), invocationArgs));
93
+ }
94
+ catch (e) {
95
+ return exitFunction(newTransaction, e);
96
+ }
97
+ }, data.length ? data : undefined);
98
+ Transaction_1.Transaction.submit(newTransaction);
99
+ }
100
+ });
101
+ },
102
+ });
103
+ return descriptor;
104
+ };
105
+ }
106
+ return decoration_1.Decoration.for(constants_1.TransactionalKeys.TRANSACTIONAL)
107
+ .define({
108
+ decorator: innerTransactional,
109
+ args: data,
110
+ })
111
+ .apply();
104
112
  }
105
113
  //# sourceMappingURL=decorators.js.map
@@ -30,4 +30,4 @@
30
30
  * T-->>C: Return result/error
31
31
  * @category Decorators
32
32
  */
33
- export declare function transactional(...data: any[]): (target: any, propertyKey?: any, descriptor?: any) => any;
33
+ export declare function transactional(...data: any[]): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -30,4 +30,4 @@
30
30
  * T-->>C: Return result/error
31
31
  * @category Decorators
32
32
  */
33
- export declare function transactional(...data: any[]): (target: any, propertyKey?: any, descriptor?: any) => any;
33
+ export declare function transactional(...data: any[]): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
@@ -1,5 +1,5 @@
1
1
  import { TransactionalKeys } from "./constants.js";
2
- import { Metadata, method } from "@decaf-ts/decoration";
2
+ import { Decoration, Metadata, method } from "@decaf-ts/decoration";
3
3
  import { Transaction } from "./Transaction.js";
4
4
  import { InternalError } from "@decaf-ts/db-decorators";
5
5
  /**
@@ -35,68 +35,76 @@ import { InternalError } from "@decaf-ts/db-decorators";
35
35
  * @category Decorators
36
36
  */
37
37
  export function transactional(...data) {
38
- return function (target, propertyKey, descriptor) {
39
- if (!descriptor)
40
- throw new InternalError("This decorator only applies to methods");
41
- method()(target, propertyKey, descriptor);
42
- Metadata.set(target.constructor, Metadata.key(TransactionalKeys.TRANSACTIONAL, propertyKey), {
43
- data: data,
44
- });
45
- descriptor.value = new Proxy(descriptor.value, {
46
- async apply(obj, thisArg, argArray) {
47
- return new Promise((resolve, reject) => {
48
- async function exitFunction(transaction, err, result) {
49
- if (err && !(err instanceof Error) && !result) {
50
- result = err;
51
- err = undefined;
52
- }
53
- await transaction.release(err);
54
- return err
55
- ? reject(err)
56
- : resolve(result);
57
- }
58
- const candidate = argArray[0];
59
- const transactionPrefixLength = (() => {
60
- let count = 0;
61
- while (count < argArray.length &&
62
- argArray[count] instanceof Transaction) {
63
- count++;
64
- }
65
- return count;
66
- })();
67
- const invocationArgs = transactionPrefixLength > 0
68
- ? argArray.slice(transactionPrefixLength)
69
- : argArray;
70
- const activeTransaction = candidate instanceof Transaction
71
- ? candidate
72
- : Transaction.contextTransaction(thisArg);
73
- if (activeTransaction) {
74
- const updatedTransaction = new Transaction(target.name, propertyKey, async () => {
75
- try {
76
- return resolve(await Reflect.apply(obj, updatedTransaction.bindToTransaction(thisArg), invocationArgs));
77
- }
78
- catch (e) {
79
- return reject(e);
80
- }
81
- }, data.length ? data : undefined);
82
- activeTransaction.bindTransaction(updatedTransaction);
83
- activeTransaction.fire();
84
- }
85
- else {
86
- const newTransaction = new Transaction(target.name, propertyKey, async () => {
87
- try {
88
- return exitFunction(newTransaction, undefined, await Reflect.apply(obj, newTransaction.bindToTransaction(thisArg), invocationArgs));
38
+ function innerTransactional(...data) {
39
+ return function (target, propertyKey, descriptor) {
40
+ if (!descriptor)
41
+ throw new InternalError("This decorator only applies to methods");
42
+ method()(target, propertyKey, descriptor);
43
+ Metadata.set(target.constructor, Metadata.key(TransactionalKeys.TRANSACTIONAL, propertyKey), {
44
+ data: data,
45
+ });
46
+ descriptor.value = new Proxy(descriptor.value, {
47
+ async apply(obj, thisArg, argArray) {
48
+ return new Promise((resolve, reject) => {
49
+ async function exitFunction(transaction, err, result) {
50
+ if (err && !(err instanceof Error) && !result) {
51
+ result = err;
52
+ err = undefined;
89
53
  }
90
- catch (e) {
91
- return exitFunction(newTransaction, e);
54
+ await transaction.release(err);
55
+ return err
56
+ ? reject(err)
57
+ : resolve(result);
58
+ }
59
+ const candidate = argArray[0];
60
+ const transactionPrefixLength = (() => {
61
+ let count = 0;
62
+ while (count < argArray.length &&
63
+ argArray[count] instanceof Transaction) {
64
+ count++;
92
65
  }
93
- }, data.length ? data : undefined);
94
- Transaction.submit(newTransaction);
95
- }
96
- });
97
- },
98
- });
99
- return descriptor;
100
- };
66
+ return count;
67
+ })();
68
+ const invocationArgs = transactionPrefixLength > 0
69
+ ? argArray.slice(transactionPrefixLength)
70
+ : argArray;
71
+ const activeTransaction = candidate instanceof Transaction
72
+ ? candidate
73
+ : Transaction.contextTransaction(thisArg);
74
+ if (activeTransaction) {
75
+ const updatedTransaction = new Transaction(target.name, propertyKey, async () => {
76
+ try {
77
+ return resolve(await Reflect.apply(obj, updatedTransaction.bindToTransaction(thisArg), invocationArgs));
78
+ }
79
+ catch (e) {
80
+ return reject(e);
81
+ }
82
+ }, data.length ? data : undefined);
83
+ activeTransaction.bindTransaction(updatedTransaction);
84
+ activeTransaction.fire();
85
+ }
86
+ else {
87
+ const newTransaction = new Transaction(target.name, propertyKey, async () => {
88
+ try {
89
+ return exitFunction(newTransaction, undefined, await Reflect.apply(obj, newTransaction.bindToTransaction(thisArg), invocationArgs));
90
+ }
91
+ catch (e) {
92
+ return exitFunction(newTransaction, e);
93
+ }
94
+ }, data.length ? data : undefined);
95
+ Transaction.submit(newTransaction);
96
+ }
97
+ });
98
+ },
99
+ });
100
+ return descriptor;
101
+ };
102
+ }
103
+ return Decoration.for(TransactionalKeys.TRANSACTIONAL)
104
+ .define({
105
+ decorator: innerTransactional,
106
+ args: data,
107
+ })
108
+ .apply();
101
109
  }
102
110
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -17,5 +17,5 @@ export * from "./types";
17
17
  * @const VERSION
18
18
  * @memberOf module:transactions
19
19
  */
20
- export declare const VERSION = "0.1.5";
20
+ export declare const VERSION = "0.2.1";
21
21
  export declare const PACKAGE_NAME = "@decaf-ts/transactional-decorators";
package/lib/esm/index.js CHANGED
@@ -18,7 +18,7 @@ export * from "./types.js";
18
18
  * @const VERSION
19
19
  * @memberOf module:transactions
20
20
  */
21
- export const VERSION = "0.1.5";
21
+ export const VERSION = "0.2.1";
22
22
  export const PACKAGE_NAME = "@decaf-ts/transactional-decorators";
23
23
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
24
24
  //# sourceMappingURL=index.js.map
package/lib/index.cjs CHANGED
@@ -35,7 +35,7 @@ __exportStar(require("./types.cjs"), exports);
35
35
  * @const VERSION
36
36
  * @memberOf module:transactions
37
37
  */
38
- exports.VERSION = "0.1.5";
38
+ exports.VERSION = "0.2.1";
39
39
  exports.PACKAGE_NAME = "@decaf-ts/transactional-decorators";
40
40
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
41
41
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -17,5 +17,5 @@ export * from "./types";
17
17
  * @const VERSION
18
18
  * @memberOf module:transactions
19
19
  */
20
- export declare const VERSION = "0.1.5";
20
+ export declare const VERSION = "0.2.1";
21
21
  export declare const PACKAGE_NAME = "@decaf-ts/transactional-decorators";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/transactional-decorators",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Locking and transactions",
5
5
  "type": "module",
6
6
  "exports": {
@@ -76,11 +76,10 @@
76
76
  "@decaf-ts/logging": "latest",
77
77
  "@decaf-ts/utils": "latest"
78
78
  },
79
- "peerDependencies": {
79
+ "dependencies": {
80
80
  "@decaf-ts/db-decorators": "latest",
81
81
  "@decaf-ts/decoration": "latest",
82
82
  "@decaf-ts/decorator-validation": "latest",
83
- "@decaf-ts/injectable-decorators": "latest",
84
- "reflect-metadata": "^0.2.1"
83
+ "@decaf-ts/injectable-decorators": "latest"
85
84
  }
86
85
  }