@ancon/wildcat-utils 1.24.1 → 1.25.0
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.
- package/axios-5f25f7ff.js +3 -0
- package/axios-aa12e368.mjs +1334 -0
- package/error/index.d.ts +3 -1
- package/error/index.js +1 -1
- package/error/index.mjs +10 -4
- package/error/isLockedError.d.ts +3 -0
- package/error/isLockedError.js +1 -0
- package/error/isLockedError.mjs +8 -0
- package/error/isNetworkError.d.ts +3 -0
- package/error/isNetworkError.js +1 -0
- package/error/isNetworkError.mjs +8 -0
- package/hangfire/createHangfirePoller.js +1 -2
- package/hangfire/createHangfirePoller.mjs +54 -977
- package/hangfire/index.js +1 -1
- package/hangfire/index.mjs +7 -6
- package/index-4a932b99.js +1 -0
- package/index-bc13ec04.mjs +21 -0
- package/index.js +1 -1
- package/index.mjs +128 -122
- package/package.json +11 -1
package/error/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import createCodedError, { CodedError } from './createCodedError';
|
|
2
2
|
import isCodedError from './isCodedError';
|
|
3
|
+
import isNetworkError from './isNetworkError';
|
|
4
|
+
import isLockedError from './isLockedError';
|
|
3
5
|
export type { CodedError };
|
|
4
|
-
export { createCodedError, isCodedError };
|
|
6
|
+
export { createCodedError, isCodedError, isNetworkError, isLockedError };
|
package/error/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./createCodedError.js"),e=require("./isCodedError.js");exports.createCodedError=r;exports.isCodedError=e;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./createCodedError.js"),e=require("./isCodedError.js"),o=require("./isNetworkError.js"),i=require("./isLockedError.js");require("../index-4a932b99.js");require("../axios-5f25f7ff.js");exports.createCodedError=r;exports.isCodedError=e;exports.isNetworkError=o;exports.isLockedError=i;
|
package/error/index.mjs
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import { default as
|
|
2
|
-
import { default as
|
|
1
|
+
import { default as a } from "./createCodedError.mjs";
|
|
2
|
+
import { default as f } from "./isCodedError.mjs";
|
|
3
|
+
import { default as m } from "./isNetworkError.mjs";
|
|
4
|
+
import { default as i } from "./isLockedError.mjs";
|
|
5
|
+
import "../index-bc13ec04.mjs";
|
|
6
|
+
import "../axios-aa12e368.mjs";
|
|
3
7
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
8
|
+
a as createCodedError,
|
|
9
|
+
f as isCodedError,
|
|
10
|
+
i as isLockedError,
|
|
11
|
+
m as isNetworkError
|
|
6
12
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const s=require("../index-4a932b99.js");require("../axios-5f25f7ff.js");function e(r){return s.isAxiosError(r)&&r.status===423}module.exports=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("../index-4a932b99.js");require("../axios-5f25f7ff.js");function s(r){return e.isAxiosError(r)&&r.message==="Network Error"}module.exports=s;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`),function(d){if(o=d.indexOf(":"),s=r.trim(d.substr(0,o)).toLowerCase(),a=r.trim(d.substr(o+1)),s){if(n[s]&&e.indexOf(s)>=0)return;s==="set-cookie"?n[s]=(n[s]?n[s]:[]).concat([a]):n[s]=n[s]?n[s]+", "+a:a}}),n},Q}var Y,Ae;function Qr(){if(Ae)return Y;Ae=1;var r=m;return Y=r.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a"),n;function s(a){var o=a;return t&&(i.setAttribute("href",o),o=i.href),i.setAttribute("href",o),{href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:i.pathname.charAt(0)==="/"?i.pathname:"/"+i.pathname}}return n=s(window.location.href),function(o){var f=r.isString(o)?s(o):o;return f.protocol===n.protocol&&f.host===n.host}}():function(){return function(){return!0}}(),Y}var Z,Ce;function I(){if(Ce)return Z;Ce=1;var r=q,e=m;function t(i){r.call(this,i??"canceled",r.ERR_CANCELED),this.name="CanceledError"}return e.inherits(t,r,{__CANCEL__:!0}),Z=t,Z}var ee,Te;function Yr(){return Te||(Te=1,ee=function(e){var t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}),ee}var re,Pe;function _e(){if(Pe)return re;Pe=1;var r=m,e=Wr(),t=zr(),i=Ve,n=er,s=Kr(),a=Qr(),o=Ye,f=q,d=I(),c=Yr();return re=function(u){return new Promise(function(ur,x){var D=u.data,U=u.headers,B=u.responseType,A;function be(){u.cancelToken&&u.cancelToken.unsubscribe(A),u.signal&&u.signal.removeEventListener("abort",A)}r.isFormData(D)&&r.isStandardBrowserEnv()&&delete U["Content-Type"];var l=new XMLHttpRequest;if(u.auth){var fr=u.auth.username||"",lr=u.auth.password?unescape(encodeURIComponent(u.auth.password)):"";U.Authorization="Basic "+btoa(fr+":"+lr)}var G=n(u.baseURL,u.url);l.open(u.method.toUpperCase(),i(G,u.params,u.paramsSerializer),!0),l.timeout=u.timeout;function Re(){if(l){var b="getAllResponseHeaders"in l?s(l.getAllResponseHeaders()):null,C=!B||B==="text"||B==="json"?l.responseText:l.response,g={data:C,status:l.status,statusText:l.statusText,headers:b,config:u,request:l};e(function(V){ur(V),be()},function(V){x(V),be()},g),l=null}}if("onloadend"in l?l.onloadend=Re:l.onreadystatechange=function(){!l||l.readyState!==4||l.status===0&&!(l.responseURL&&l.responseURL.indexOf("file:")===0)||setTimeout(Re)},l.onabort=function(){l&&(x(new f("Request aborted",f.ECONNABORTED,u,l)),l=null)},l.onerror=function(){x(new f("Network Error",f.ERR_NETWORK,u,l,l)),l=null},l.ontimeout=function(){var C=u.timeout?"timeout of "+u.timeout+"ms exceeded":"timeout exceeded",g=u.transitional||o;u.timeoutErrorMessage&&(C=u.timeoutErrorMessage),x(new f(C,g.clarifyTimeoutError?f.ETIMEDOUT:f.ECONNABORTED,u,l)),l=null},r.isStandardBrowserEnv()){var we=(u.withCredentials||a(G))&&u.xsrfCookieName?t.read(u.xsrfCookieName):void 0;we&&(U[u.xsrfHeaderName]=we)}"setRequestHeader"in l&&r.forEach(U,function(C,g){typeof D>"u"&&g.toLowerCase()==="content-type"?delete U[g]:l.setRequestHeader(g,C)}),r.isUndefined(u.withCredentials)||(l.withCredentials=!!u.withCredentials),B&&B!=="json"&&(l.responseType=u.responseType),typeof u.onDownloadProgress=="function"&&l.addEventListener("progress",u.onDownloadProgress),typeof u.onUploadProgress=="function"&&l.upload&&l.upload.addEventListener("progress",u.onUploadProgress),(u.cancelToken||u.signal)&&(A=function(b){l&&(x(!b||b&&b.type?new d:b),l.abort(),l=null)},u.cancelToken&&u.cancelToken.subscribe(A),u.signal&&(u.signal.aborted?A():u.signal.addEventListener("abort",A))),D||(D=null);var J=c(G);if(J&&["http","https","file"].indexOf(J)===-1){x(new f("Unsupported protocol "+J+":",f.ERR_BAD_REQUEST,u));return}l.send(D)})},re}var te,Ne;function Zr(){return Ne||(Ne=1,te=null),te}var p=m,qe=Hr,De=q,et=Ye,rt=Ze,tt={"Content-Type":"application/x-www-form-urlencoded"};function Ue(r,e){!p.isUndefined(r)&&p.isUndefined(r["Content-Type"])&&(r["Content-Type"]=e)}function nt(){var r;return(typeof XMLHttpRequest<"u"||typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]")&&(r=_e()),r}function it(r,e,t){if(p.isString(r))try{return(e||JSON.parse)(r),p.trim(r)}catch(i){if(i.name!=="SyntaxError")throw i}return(t||JSON.stringify)(r)}var W={transitional:et,adapter:nt(),transformRequest:[function(e,t){if(qe(t,"Accept"),qe(t,"Content-Type"),p.isFormData(e)||p.isArrayBuffer(e)||p.isBuffer(e)||p.isStream(e)||p.isFile(e)||p.isBlob(e))return e;if(p.isArrayBufferView(e))return e.buffer;if(p.isURLSearchParams(e))return Ue(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString();var i=p.isObject(e),n=t&&t["Content-Type"],s;if((s=p.isFileList(e))||i&&n==="multipart/form-data"){var a=this.env&&this.env.FormData;return rt(s?{"files[]":e}:e,a&&new a)}else if(i||n==="application/json")return Ue(t,"application/json"),it(e);return e}],transformResponse:[function(e){var t=this.transitional||W.transitional,i=t&&t.silentJSONParsing,n=t&&t.forcedJSONParsing,s=!i&&this.responseType==="json";if(s||n&&p.isString(e)&&e.length)try{return JSON.parse(e)}catch(a){if(s)throw a.name==="SyntaxError"?De.from(a,De.ERR_BAD_RESPONSE,this,null,this.response):a}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Zr()},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};p.forEach(["delete","get","head"],function(e){W.headers[e]={}});p.forEach(["post","put","patch"],function(e){W.headers[e]=p.merge(tt)});var Ee=W,st=m,at=Ee,ot=function(e,t,i){var n=this||at;return st.forEach(i,function(a){e=a.call(n,e,t)}),e},ne,Be;function rr(){return Be||(Be=1,ne=function(e){return!!(e&&e.__CANCEL__)}),ne}var ke=m,ie=ot,ut=rr(),ft=Ee,lt=I();function se(r){if(r.cancelToken&&r.cancelToken.throwIfRequested(),r.signal&&r.signal.aborted)throw new lt}var ct=function(e){se(e),e.headers=e.headers||{},e.data=ie.call(e,e.data,e.headers,e.transformRequest),e.headers=ke.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),ke.forEach(["delete","get","head","post","put","patch","common"],function(n){delete e.headers[n]});var t=e.adapter||ft.adapter;return t(e).then(function(n){return se(e),n.data=ie.call(e,n.data,n.headers,e.transformResponse),n},function(n){return ut(n)||(se(e),n&&n.response&&(n.response.data=ie.call(e,n.response.data,n.response.headers,e.transformResponse))),Promise.reject(n)})},E=m,tr=function(e,t){t=t||{};var i={};function n(c,h){return E.isPlainObject(c)&&E.isPlainObject(h)?E.merge(c,h):E.isPlainObject(h)?E.merge({},h):E.isArray(h)?h.slice():h}function s(c){if(E.isUndefined(t[c])){if(!E.isUndefined(e[c]))return n(void 0,e[c])}else return n(e[c],t[c])}function a(c){if(!E.isUndefined(t[c]))return n(void 0,t[c])}function o(c){if(E.isUndefined(t[c])){if(!E.isUndefined(e[c]))return n(void 0,e[c])}else return n(void 0,t[c])}function f(c){if(c in t)return n(e[c],t[c]);if(c in e)return n(void 0,e[c])}var d={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:f};return E.forEach(Object.keys(e).concat(Object.keys(t)),function(h){var u=d[h]||s,y=u(h);E.isUndefined(y)&&u!==f||(i[h]=y)}),i},ae,Le;function nr(){return Le||(Le=1,ae={version:"0.27.2"}),ae}var dt=nr().version,w=q,ye={};["object","boolean","number","function","string","symbol"].forEach(function(r,e){ye[r]=function(i){return typeof i===r||"a"+(e<1?"n ":" ")+r}});var Fe={};ye.transitional=function(e,t,i){function n(s,a){return"[Axios v"+dt+"] Transitional option '"+s+"'"+a+(i?". "+i:"")}return function(s,a,o){if(e===!1)throw new w(n(a," has been removed"+(t?" in "+t:"")),w.ERR_DEPRECATED);return t&&!Fe[a]&&(Fe[a]=!0,console.warn(n(a," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(s,a,o):!0}};function ht(r,e,t){if(typeof r!="object")throw new w("options must be an object",w.ERR_BAD_OPTION_VALUE);for(var i=Object.keys(r),n=i.length;n-- >0;){var s=i[n],a=e[s];if(a){var o=r[s],f=o===void 0||a(o,s,r);if(f!==!0)throw new w("option "+s+" must be "+f,w.ERR_BAD_OPTION_VALUE);continue}if(t!==!0)throw new w("Unknown option "+s,w.ERR_BAD_OPTION)}}var pt={assertOptions:ht,validators:ye},ir=m,mt=Ve,$e=jr,je=ct,z=tr,vt=er,sr=pt,P=sr.validators;function N(r){this.defaults=r,this.interceptors={request:new $e,response:new $e}}N.prototype.request=function(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=z(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var i=t.transitional;i!==void 0&&sr.assertOptions(i,{silentJSONParsing:P.transitional(P.boolean),forcedJSONParsing:P.transitional(P.boolean),clarifyTimeoutError:P.transitional(P.boolean)},!1);var n=[],s=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(t)===!1||(s=s&&y.synchronous,n.unshift(y.fulfilled,y.rejected))});var a=[];this.interceptors.response.forEach(function(y){a.push(y.fulfilled,y.rejected)});var o;if(!s){var f=[je,void 0];for(Array.prototype.unshift.apply(f,n),f=f.concat(a),o=Promise.resolve(t);f.length;)o=o.then(f.shift(),f.shift());return o}for(var d=t;n.length;){var c=n.shift(),h=n.shift();try{d=c(d)}catch(u){h(u);break}}try{o=je(d)}catch(u){return Promise.reject(u)}for(;a.length;)o=o.then(a.shift(),a.shift());return o};N.prototype.getUri=function(e){e=z(this.defaults,e);var t=vt(e.baseURL,e.url);return mt(t,e.params,e.paramsSerializer)};ir.forEach(["delete","get","head","options"],function(e){N.prototype[e]=function(t,i){return this.request(z(i||{},{method:e,url:t,data:(i||{}).data}))}});ir.forEach(["post","put","patch"],function(e){function t(i){return function(s,a,o){return this.request(z(o||{},{method:e,headers:i?{"Content-Type":"multipart/form-data"}:{},url:s,data:a}))}}N.prototype[e]=t(),N.prototype[e+"Form"]=t(!0)});var Et=N,oe,Me;function yt(){if(Me)return oe;Me=1;var r=I();function e(t){if(typeof t!="function")throw new TypeError("executor must be a function.");var i;this.promise=new Promise(function(a){i=a});var n=this;this.promise.then(function(s){if(n._listeners){var a,o=n._listeners.length;for(a=0;a<o;a++)n._listeners[a](s);n._listeners=null}}),this.promise.then=function(s){var a,o=new Promise(function(f){n.subscribe(f),a=f}).then(s);return o.cancel=function(){n.unsubscribe(a)},o},t(function(a){n.reason||(n.reason=new r(a),i(n.reason))})}return e.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},e.prototype.subscribe=function(i){if(this.reason){i(this.reason);return}this._listeners?this._listeners.push(i):this._listeners=[i]},e.prototype.unsubscribe=function(i){if(this._listeners){var n=this._listeners.indexOf(i);n!==-1&&this._listeners.splice(n,1)}},e.source=function(){var i,n=new e(function(a){i=a});return{token:n,cancel:i}},oe=e,oe}var ue,He;function bt(){return He||(He=1,ue=function(e){return function(i){return e.apply(null,i)}}),ue}var fe,Ie;function Rt(){if(Ie)return fe;Ie=1;var r=m;return fe=function(t){return r.isObject(t)&&t.isAxiosError===!0},fe}var We=m,wt=ze,$=Et,gt=tr,Ot=Ee;function ar(r){var e=new $(r),t=wt($.prototype.request,e);return We.extend(t,$.prototype,e),We.extend(t,e),t.create=function(n){return ar(gt(r,n))},t}var v=ar(Ot);v.Axios=$;v.CanceledError=I();v.CancelToken=yt();v.isCancel=rr();v.VERSION=nr().version;v.toFormData=Ze;v.AxiosError=q;v.Cancel=v.CanceledError;v.all=function(e){return Promise.all(e)};v.spread=bt();v.isAxiosError=Rt();Er.exports=v;j.default=v;(function(r){r.exports=j})(vr);const St=mr(le);class or{constructor(e){O(this,"busyWorkers",new Set);O(this,"enabledGroups",new Set);O(this,"groups",new Map);O(this,"workerByIdMap",new Map);O(this,"timer",null);O(this,"config",{maxGroupsSize:50,maxWorkersSize:20,getIsNetworkOnline(){return!0},async getRequestHeaders(){return{}},debug(...e){console.log(...e)}});this.config={...this.config,...e??null}}stopTimer(){this.timer!=null&&(this.config.debug("*stop timer*"),clearInterval(this.timer),this.timer=null)}startTimer(){if(this.timer!=null)throw L(new Error("Timer already started"),k.ErrorCode.GenericUnexpectedHangfireError);this.config.debug("*start timer*"),this.timer=setInterval(()=>{this.config.debug("*tick*",{busyWorkers:this.busyWorkers.size,enabledGroups:this.enabledGroups.size,groups:this.groups}),this.enabledGroups.forEach(e=>{const t=this.groups.get(e);t&&t.forEach(i=>this.executeWorkerRequest(i))}),this.groups.size<1&&this.stopTimer()},5e3)}async executeWorkerRequest(e){const t=this.config.getIsNetworkOnline();!this.busyWorkers.has(e.workerId)&&t&&(this.busyWorkers.add(e.workerId),St({url:e.url,method:"get",headers:await this.config.getRequestHeaders()}).then(i=>{i&&!pr(i)?(e.resolve(i),this.deleteWorker(e.groupId,e.workerId)):this.busyWorkers.delete(e.workerId)}).catch(i=>{e.reject(i),this.deleteWorker(e.groupId,e.workerId)}))}deleteWorker(e,t){const i=this.groups.get(e);this.config.debug("*delete worker*",i.size,i),i.delete(t),this.workerByIdMap.delete(t),this.busyWorkers.delete(t),i.size<1&&(this.groups.delete(e),this.enabledGroups.delete(e),this.enabledGroups.size<1&&this.stopTimer())}createWorker(e,{workerId:t,url:i}){if(!this.groups.has(e)){if(this.groups.size>=this.config.maxGroupsSize){const s=L(new Error("Max number of Hangfire groups exceeded"),k.ErrorCode.GenericUnexpectedHangfireError,{count:this.groups.size});throw this.destroy(),s}this.groups.set(e,new Map)}const n=this.groups.get(e);return new Promise((s,a)=>{if(n.has(t))throw L(new Error("Duplicate Hangfire worker ID"),k.ErrorCode.GenericUnexpectedHangfireError);if(n.size>=this.config.maxWorkersSize){const f=L(new Error("Max number of Hangfire workers in group exceeded"),k.ErrorCode.GenericUnexpectedHangfireError,{groupId:e,count:n.size});throw a(f),this.destroy(),f}const o={workerId:t,groupId:e,url:i,resolve:s,reject:a};n.set(t,o),this.workerByIdMap.set(t,o),this.enabledGroups.has(e)||this.enabledGroups.add(e),this.timer==null&&this.enabledGroups.size>0&&this.startTimer()})}triggerWorker(e){this.config.debug("*triggerWorker*");const t=this.workerByIdMap.get(e);t&&this.executeWorkerRequest(t)}enableWorkers(e){this.config.debug("*enable*",e),this.enabledGroups.add(e),this.groups.has(e)&&this.timer==null&&this.startTimer()}disableWorkers(e){this.config.debug("*disable*",e),this.enabledGroups.delete(e),this.enabledGroups.size<1&&this.stopTimer()}destroy(){this.config.debug("*destroy*"),this.groups.clear(),this.stopTimer()}}function xt(r){return new or(r)}exports.HangfirePoller=or;exports.default=xt;
|
|
1
|
+
"use strict";var g=Object.defineProperty;var f=(t,e,r)=>e in t?g(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var i=(t,e,r)=>(f(t,typeof e!="symbol"?e+"":e,r),r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const p=require("../axios-5f25f7ff.js"),n=require("@ancon/wildcat-types"),a=require("../error/createCodedError.js"),b=require("../api/isNoContentResponse.js");class c{constructor(e){i(this,"busyWorkers",new Set);i(this,"enabledGroups",new Set);i(this,"groups",new Map);i(this,"workerByIdMap",new Map);i(this,"timer",null);i(this,"config",{maxGroupsSize:50,maxWorkersSize:20,getIsNetworkOnline(){return!0},async getRequestHeaders(){return{}},debug(...e){console.log(...e)}});this.config={...this.config,...e??null}}stopTimer(){this.timer!=null&&(this.config.debug("*stop timer*"),clearInterval(this.timer),this.timer=null)}startTimer(){if(this.timer!=null)throw a(new Error("Timer already started"),n.ErrorCode.GenericUnexpectedHangfireError);this.config.debug("*start timer*"),this.timer=setInterval(()=>{this.config.debug("*tick*",{busyWorkers:this.busyWorkers.size,enabledGroups:this.enabledGroups.size,groups:this.groups}),this.enabledGroups.forEach(e=>{const r=this.groups.get(e);r&&r.forEach(s=>this.executeWorkerRequest(s))}),this.groups.size<1&&this.stopTimer()},5e3)}async executeWorkerRequest(e){const r=this.config.getIsNetworkOnline();!this.busyWorkers.has(e.workerId)&&r&&(this.busyWorkers.add(e.workerId),p.axios({url:e.url,method:"get",headers:await this.config.getRequestHeaders()}).then(s=>{s&&!b(s)?(e.resolve(s),this.deleteWorker(e.groupId,e.workerId)):this.busyWorkers.delete(e.workerId)}).catch(s=>{e.reject(s),this.deleteWorker(e.groupId,e.workerId)}))}deleteWorker(e,r){const s=this.groups.get(e);s&&(this.config.debug("*delete worker*",s.size,s),s.delete(r),this.workerByIdMap.delete(r),this.busyWorkers.delete(r),s.size<1&&(this.groups.delete(e),this.enabledGroups.delete(e),this.enabledGroups.size<1&&this.stopTimer()))}createWorker(e,{workerId:r,url:s}){if(!this.groups.has(e)){if(this.groups.size>=this.config.maxGroupsSize){const u=a(new Error("Max number of Hangfire groups exceeded"),n.ErrorCode.GenericUnexpectedHangfireError,{count:this.groups.size});throw this.destroy(),u}this.groups.set(e,new Map)}const o=this.groups.get(e);return new Promise((u,h)=>{if(o.has(r))throw a(new Error("Duplicate Hangfire worker ID"),n.ErrorCode.GenericUnexpectedHangfireError);if(o.size>=this.config.maxWorkersSize){const d=a(new Error("Max number of Hangfire workers in group exceeded"),n.ErrorCode.GenericUnexpectedHangfireError,{groupId:e,count:o.size});throw h(d),this.destroy(),d}const l={workerId:r,groupId:e,url:s,resolve:u,reject:h};o.set(r,l),this.workerByIdMap.set(r,l),this.enabledGroups.has(e)||this.enabledGroups.add(e),this.timer==null&&this.enabledGroups.size>0&&this.startTimer()})}triggerWorker(e){this.config.debug("*triggerWorker*");const r=this.workerByIdMap.get(e);r&&this.executeWorkerRequest(r)}enableWorkers(e){this.config.debug("*enable*",e),this.enabledGroups.add(e),this.groups.has(e)&&this.timer==null&&this.startTimer()}disableWorkers(e){this.config.debug("*disable*",e),this.enabledGroups.delete(e),this.enabledGroups.size<1&&this.stopTimer()}destroy(){this.config.debug("*destroy*"),this.groups.clear(),this.stopTimer()}}function m(t){return new c(t)}exports.HangfirePoller=c;exports.default=m;
|