2c4e257285a1d33f237d82c8b0575306ca8c50331a986da8bf9240511ea457e0.json 30 KB

1
  1. {"ast":null,"code":"\"use strict\";\n\nvar _asyncToGenerator = require(\"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/asyncToGenerator.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nconst EventEmitter = require(\"eventemitter3\");\nconst p_timeout_1 = require(\"p-timeout\");\nconst priority_queue_1 = require(\"./priority-queue\");\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst empty = () => {};\nconst timeoutError = new p_timeout_1.TimeoutError();\n/**\nPromise queue with concurrency control.\n*/\nclass PQueue extends EventEmitter {\n constructor(options) {\n var _a, _b, _c, _d;\n super();\n this._intervalCount = 0;\n this._intervalEnd = 0;\n this._pendingCount = 0;\n this._resolveEmpty = empty;\n this._resolveIdle = empty;\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = Object.assign({\n carryoverConcurrencyCount: false,\n intervalCap: Infinity,\n interval: 0,\n concurrency: Infinity,\n autoStart: true,\n queueClass: priority_queue_1.default\n }, options);\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${(_b = (_a = options.intervalCap) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${(_d = (_c = options.interval) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : ''}\\` (${typeof options.interval})`);\n }\n this._carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this._isIntervalIgnored = options.intervalCap === Infinity || options.interval === 0;\n this._intervalCap = options.intervalCap;\n this._interval = options.interval;\n this._queue = new options.queueClass();\n this._queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this._timeout = options.timeout;\n this._throwOnTimeout = options.throwOnTimeout === true;\n this._isPaused = options.autoStart === false;\n }\n get _doesIntervalAllowAnother() {\n return this._isIntervalIgnored || this._intervalCount < this._intervalCap;\n }\n get _doesConcurrentAllowAnother() {\n return this._pendingCount < this._concurrency;\n }\n _next() {\n this._pendingCount--;\n this._tryToStartAnother();\n this.emit('next');\n }\n _resolvePromises() {\n this._resolveEmpty();\n this._resolveEmpty = empty;\n if (this._pendingCount === 0) {\n this._resolveIdle();\n this._resolveIdle = empty;\n this.emit('idle');\n }\n }\n _onResumeInterval() {\n this._onInterval();\n this._initializeIntervalIfNeeded();\n this._timeoutId = undefined;\n }\n _isIntervalPaused() {\n const now = Date.now();\n if (this._intervalId === undefined) {\n const delay = this._intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this._intervalCount = this._carryoverConcurrencyCount ? this._pendingCount : 0;\n } else {\n // Act as the interval is pending\n if (this._timeoutId === undefined) {\n this._timeoutId = setTimeout(() => {\n this._onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n _tryToStartAnother() {\n if (this._queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this._intervalId) {\n clearInterval(this._intervalId);\n }\n this._intervalId = undefined;\n this._resolvePromises();\n return false;\n }\n if (!this._isPaused) {\n const canInitializeInterval = !this._isIntervalPaused();\n if (this._doesIntervalAllowAnother && this._doesConcurrentAllowAnother) {\n const job = this._queue.dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this._initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n _initializeIntervalIfNeeded() {\n if (this._isIntervalIgnored || this._intervalId !== undefined) {\n return;\n }\n this._intervalId = setInterval(() => {\n this._onInterval();\n }, this._interval);\n this._intervalEnd = Date.now() + this._interval;\n }\n _onInterval() {\n if (this._intervalCount === 0 && this._pendingCount === 0 && this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = undefined;\n }\n this._intervalCount = this._carryoverConcurrencyCount ? this._pendingCount : 0;\n this._processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n _processQueue() {\n // eslint-disable-next-line no-empty\n while (this._tryToStartAnother()) {}\n }\n get concurrency() {\n return this._concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this._concurrency = newConcurrency;\n this._processQueue();\n }\n /**\n Adds a sync or async task to the queue. Always returns a promise.\n */\n add(fn, options = {}) {\n var _this = this;\n return _asyncToGenerator(function* () {\n return new Promise((resolve, reject) => {\n const run = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* () {\n _this._pendingCount++;\n _this._intervalCount++;\n try {\n const operation = _this._timeout === undefined && options.timeout === undefined ? fn() : p_timeout_1.default(Promise.resolve(fn()), options.timeout === undefined ? _this._timeout : options.timeout, () => {\n if (options.throwOnTimeout === undefined ? _this._throwOnTimeout : options.throwOnTimeout) {\n reject(timeoutError);\n }\n return undefined;\n });\n resolve(yield operation);\n } catch (error) {\n reject(error);\n }\n _this._next();\n });\n return function run() {\n return _ref.apply(this, arguments);\n };\n }();\n _this._queue.enqueue(run, options);\n _this._tryToStartAnother();\n _this.emit('add');\n });\n })();\n }\n /**\n Same as `.add()`, but accepts an array of sync or async functions.\n @returns A promise that resolves when all functions are resolved.\n */\n addAll(functions, options) {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n return Promise.all(functions.map( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(function* (function_) {\n return _this2.add(function_, options);\n });\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }()));\n })();\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this._isPaused) {\n return this;\n }\n this._isPaused = false;\n this._processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this._isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this._queue = new this._queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n @returns A promise that settles when the queue becomes empty.\n */\n onEmpty() {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n // Instantly resolve if the queue is empty\n if (_this3._queue.size === 0) {\n return;\n }\n return new Promise(resolve => {\n const existingResolve = _this3._resolveEmpty;\n _this3._resolveEmpty = () => {\n existingResolve();\n resolve();\n };\n });\n })();\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n onIdle() {\n var _this4 = this;\n return _asyncToGenerator(function* () {\n // Instantly resolve if none pending and if nothing else is queued\n if (_this4._pendingCount === 0 && _this4._queue.size === 0) {\n return;\n }\n return new Promise(resolve => {\n const existingResolve = _this4._resolveIdle;\n _this4._resolveIdle = () => {\n existingResolve();\n resolve();\n };\n });\n })();\n }\n /**\n Size of the queue.\n */\n get size() {\n return this._queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-fn-reference-in-iterator\n return this._queue.filter(options).length;\n }\n /**\n Number of pending promises.\n */\n get pending() {\n return this._pendingCount;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this._isPaused;\n }\n get timeout() {\n return this._timeout;\n }\n /**\n Set the timeout for future operations.\n */\n set timeout(milliseconds) {\n this._timeout = milliseconds;\n }\n}\nexports.default = PQueue;","map":{"version":3,"names":["_asyncToGenerator","require","default","Object","defineProperty","exports","value","EventEmitter","p_timeout_1","priority_queue_1","empty","timeoutError","TimeoutError","PQueue","constructor","options","_a","_b","_c","_d","_intervalCount","_intervalEnd","_pendingCount","_resolveEmpty","_resolveIdle","assign","carryoverConcurrencyCount","intervalCap","Infinity","interval","concurrency","autoStart","queueClass","TypeError","toString","undefined","Number","isFinite","_carryoverConcurrencyCount","_isIntervalIgnored","_intervalCap","_interval","_queue","_queueClass","_timeout","timeout","_throwOnTimeout","throwOnTimeout","_isPaused","_doesIntervalAllowAnother","_doesConcurrentAllowAnother","_concurrency","_next","_tryToStartAnother","emit","_resolvePromises","_onResumeInterval","_onInterval","_initializeIntervalIfNeeded","_timeoutId","_isIntervalPaused","now","Date","_intervalId","delay","setTimeout","size","clearInterval","canInitializeInterval","job","dequeue","setInterval","_processQueue","newConcurrency","add","fn","_this","Promise","resolve","reject","run","_ref","operation","error","apply","arguments","enqueue","addAll","functions","_this2","all","map","_ref2","function_","_x","start","pause","clear","onEmpty","_this3","existingResolve","onIdle","_this4","sizeBy","filter","length","pending","isPaused","milliseconds"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/p-queue/dist/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst EventEmitter = require(\"eventemitter3\");\nconst p_timeout_1 = require(\"p-timeout\");\nconst priority_queue_1 = require(\"./priority-queue\");\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst empty = () => { };\nconst timeoutError = new p_timeout_1.TimeoutError();\n/**\nPromise queue with concurrency control.\n*/\nclass PQueue extends EventEmitter {\n constructor(options) {\n var _a, _b, _c, _d;\n super();\n this._intervalCount = 0;\n this._intervalEnd = 0;\n this._pendingCount = 0;\n this._resolveEmpty = empty;\n this._resolveIdle = empty;\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = Object.assign({ carryoverConcurrencyCount: false, intervalCap: Infinity, interval: 0, concurrency: Infinity, autoStart: true, queueClass: priority_queue_1.default }, options);\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${(_b = (_a = options.intervalCap) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${(_d = (_c = options.interval) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : ''}\\` (${typeof options.interval})`);\n }\n this._carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this._isIntervalIgnored = options.intervalCap === Infinity || options.interval === 0;\n this._intervalCap = options.intervalCap;\n this._interval = options.interval;\n this._queue = new options.queueClass();\n this._queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this._timeout = options.timeout;\n this._throwOnTimeout = options.throwOnTimeout === true;\n this._isPaused = options.autoStart === false;\n }\n get _doesIntervalAllowAnother() {\n return this._isIntervalIgnored || this._intervalCount < this._intervalCap;\n }\n get _doesConcurrentAllowAnother() {\n return this._pendingCount < this._concurrency;\n }\n _next() {\n this._pendingCount--;\n this._tryToStartAnother();\n this.emit('next');\n }\n _resolvePromises() {\n this._resolveEmpty();\n this._resolveEmpty = empty;\n if (this._pendingCount === 0) {\n this._resolveIdle();\n this._resolveIdle = empty;\n this.emit('idle');\n }\n }\n _onResumeInterval() {\n this._onInterval();\n this._initializeIntervalIfNeeded();\n this._timeoutId = undefined;\n }\n _isIntervalPaused() {\n const now = Date.now();\n if (this._intervalId === undefined) {\n const delay = this._intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this._intervalCount = (this._carryoverConcurrencyCount) ? this._pendingCount : 0;\n }\n else {\n // Act as the interval is pending\n if (this._timeoutId === undefined) {\n this._timeoutId = setTimeout(() => {\n this._onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n _tryToStartAnother() {\n if (this._queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this._intervalId) {\n clearInterval(this._intervalId);\n }\n this._intervalId = undefined;\n this._resolvePromises();\n return false;\n }\n if (!this._isPaused) {\n const canInitializeInterval = !this._isIntervalPaused();\n if (this._doesIntervalAllowAnother && this._doesConcurrentAllowAnother) {\n const job = this._queue.dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this._initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n _initializeIntervalIfNeeded() {\n if (this._isIntervalIgnored || this._intervalId !== undefined) {\n return;\n }\n this._intervalId = setInterval(() => {\n this._onInterval();\n }, this._interval);\n this._intervalEnd = Date.now() + this._interval;\n }\n _onInterval() {\n if (this._intervalCount === 0 && this._pendingCount === 0 && this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = undefined;\n }\n this._intervalCount = this._carryoverConcurrencyCount ? this._pendingCount : 0;\n this._processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n _processQueue() {\n // eslint-disable-next-line no-empty\n while (this._tryToStartAnother()) { }\n }\n get concurrency() {\n return this._concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this._concurrency = newConcurrency;\n this._processQueue();\n }\n /**\n Adds a sync or async task to the queue. Always returns a promise.\n */\n async add(fn, options = {}) {\n return new Promise((resolve, reject) => {\n const run = async () => {\n this._pendingCount++;\n this._intervalCount++;\n try {\n const operation = (this._timeout === undefined && options.timeout === undefined) ? fn() : p_timeout_1.default(Promise.resolve(fn()), (options.timeout === undefined ? this._timeout : options.timeout), () => {\n if (options.throwOnTimeout === undefined ? this._throwOnTimeout : options.throwOnTimeout) {\n reject(timeoutError);\n }\n return undefined;\n });\n resolve(await operation);\n }\n catch (error) {\n reject(error);\n }\n this._next();\n };\n this._queue.enqueue(run, options);\n this._tryToStartAnother();\n this.emit('add');\n });\n }\n /**\n Same as `.add()`, but accepts an array of sync or async functions.\n\n @returns A promise that resolves when all functions are resolved.\n */\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this._isPaused) {\n return this;\n }\n this._isPaused = false;\n this._processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this._isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this._queue = new this._queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this._queue.size === 0) {\n return;\n }\n return new Promise(resolve => {\n const existingResolve = this._resolveEmpty;\n this._resolveEmpty = () => {\n existingResolve();\n resolve();\n };\n });\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this._pendingCount === 0 && this._queue.size === 0) {\n return;\n }\n return new Promise(resolve => {\n const existingResolve = this._resolveIdle;\n this._resolveIdle = () => {\n existingResolve();\n resolve();\n };\n });\n }\n /**\n Size of the queue.\n */\n get size() {\n return this._queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-fn-reference-in-iterator\n return this._queue.filter(options).length;\n }\n /**\n Number of pending promises.\n */\n get pending() {\n return this._pendingCount;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this._isPaused;\n }\n get timeout() {\n return this._timeout;\n }\n /**\n Set the timeout for future operations.\n */\n set timeout(milliseconds) {\n this._timeout = milliseconds;\n }\n}\nexports.default = PQueue;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}