@bitrix24/b24jssdk
Version:
Bitrix24 REST API JavaScript SDK
1 lines • 4.39 kB
Source Map (JSON)
{"version":3,"file":"params-factory.mjs","sources":["../../../../../src/core/http/limiters/params-factory.ts"],"sourcesContent":["import type { RestrictionParams } from '../../../types/limiters'\n\n/**\n * Factory for creating constraint parameters\n */\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class ParamsFactory {\n /**\n * Default parameters for regular tariffs\n *\n * @see Http.#restrictionParams\n */\n static getDefault(): RestrictionParams {\n return {\n rateLimit: {\n burstLimit: 50,\n drainRate: 2,\n adaptiveEnabled: true\n },\n operatingLimit: {\n windowMs: 600_000, // 10 min\n limitMs: 480_000, // 480 sec\n heavyPercent: 80\n },\n adaptiveConfig: {\n enabled: true,\n thresholdPercent: 80,\n coefficient: 0.01,\n maxDelay: 7_000\n },\n maxRetries: 3,\n retryDelay: 1_000\n }\n }\n\n /**\n * Parameters for the Enterprise plan\n */\n static getEnterprise(): RestrictionParams {\n return {\n ...this.getDefault(),\n rateLimit: {\n burstLimit: 250,\n drainRate: 5,\n adaptiveEnabled: true\n }\n }\n }\n\n /**\n * Parameters for bulk data processing\n */\n static getBatchProcessing(): RestrictionParams {\n return {\n ...this.getDefault(),\n rateLimit: {\n burstLimit: 30,\n drainRate: 1,\n adaptiveEnabled: true\n },\n operatingLimit: {\n windowMs: 600_000,\n limitMs: 480_000,\n heavyPercent: 50 // Higher threshold for notifications\n },\n adaptiveConfig: {\n enabled: true,\n thresholdPercent: 50, // More threshold\n coefficient: 0.015, // More pause\n maxDelay: 10_000 // Max 10 seconds\n },\n maxRetries: 5 // More attempts\n }\n }\n\n /**\n * Real-time parameters\n */\n static getRealtime(): RestrictionParams {\n return {\n ...this.getDefault(),\n adaptiveConfig: {\n enabled: false, // Off\n thresholdPercent: 100,\n coefficient: 0.001,\n maxDelay: 480_000\n },\n maxRetries: 1\n }\n }\n\n /**\n * Tariff plan based parameters\n */\n static fromTariffPlan(plan: string): RestrictionParams {\n switch (plan.toLowerCase()) {\n case 'enterprise':\n return this.getEnterprise()\n case 'company':\n case 'start':\n case 'standard':\n case 'basic':\n default:\n return this.getDefault()\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;AAMO,MAAM,aAAA,CAAc;AAAA,EAN3B;AAM2B,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzB,OAAO,UAAA,GAAgC;AACrC,IAAA,OAAO;AAAA,MACL,SAAA,EAAW;AAAA,QACT,UAAA,EAAY,EAAA;AAAA,QACZ,SAAA,EAAW,CAAA;AAAA,QACX,eAAA,EAAiB;AAAA,OACnB;AAAA,MACA,cAAA,EAAgB;AAAA,QACd,QAAA,EAAU,GAAA;AAAA;AAAA,QACV,OAAA,EAAS,IAAA;AAAA;AAAA,QACT,YAAA,EAAc;AAAA,OAChB;AAAA,MACA,cAAA,EAAgB;AAAA,QACd,OAAA,EAAS,IAAA;AAAA,QACT,gBAAA,EAAkB,EAAA;AAAA,QAClB,WAAA,EAAa,IAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,UAAA,EAAY,CAAA;AAAA,MACZ,UAAA,EAAY;AAAA,KACd;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,aAAA,GAAmC;AACxC,IAAA,OAAO;AAAA,MACL,GAAG,KAAK,UAAA,EAAW;AAAA,MACnB,SAAA,EAAW;AAAA,QACT,UAAA,EAAY,GAAA;AAAA,QACZ,SAAA,EAAW,CAAA;AAAA,QACX,eAAA,EAAiB;AAAA;AACnB,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,kBAAA,GAAwC;AAC7C,IAAA,OAAO;AAAA,MACL,GAAG,KAAK,UAAA,EAAW;AAAA,MACnB,SAAA,EAAW;AAAA,QACT,UAAA,EAAY,EAAA;AAAA,QACZ,SAAA,EAAW,CAAA;AAAA,QACX,eAAA,EAAiB;AAAA,OACnB;AAAA,MACA,cAAA,EAAgB;AAAA,QACd,QAAA,EAAU,GAAA;AAAA,QACV,OAAA,EAAS,IAAA;AAAA,QACT,YAAA,EAAc;AAAA;AAAA,OAChB;AAAA,MACA,cAAA,EAAgB;AAAA,QACd,OAAA,EAAS,IAAA;AAAA,QACT,gBAAA,EAAkB,EAAA;AAAA;AAAA,QAClB,WAAA,EAAa,KAAA;AAAA;AAAA,QACb,QAAA,EAAU;AAAA;AAAA,OACZ;AAAA,MACA,UAAA,EAAY;AAAA;AAAA,KACd;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,WAAA,GAAiC;AACtC,IAAA,OAAO;AAAA,MACL,GAAG,KAAK,UAAA,EAAW;AAAA,MACnB,cAAA,EAAgB;AAAA,QACd,OAAA,EAAS,KAAA;AAAA;AAAA,QACT,gBAAA,EAAkB,GAAA;AAAA,QAClB,WAAA,EAAa,IAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,UAAA,EAAY;AAAA,KACd;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,eAAe,IAAA,EAAiC;AACrD,IAAA,QAAQ,IAAA,CAAK,aAAY;AAAG,MAC1B,KAAK,YAAA;AACH,QAAA,OAAO,KAAK,aAAA,EAAc;AAAA,MAC5B,KAAK,SAAA;AAAA,MACL,KAAK,OAAA;AAAA,MACL,KAAK,UAAA;AAAA,MACL,KAAK,OAAA;AAAA,MACL;AACE,QAAA,OAAO,KAAK,UAAA,EAAW;AAAA;AAC3B,EACF;AACF;;;;"}