403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/pull/client/src/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/pull/client/src/tagwatcher.js
export type TagWatcherOptions = {
	restClient: any
}

export class TagWatcher
{
	queue: { [string]: boolean } = {};
	watchUpdateInterval = 1_740_000;
	watchForceUpdateInterval = 5000;

	constructor(options: TagWatcherOptions)
	{
		this.restClient = options.restClient;
	}

	extend(tag, force)
	{
		if (!tag || this.queue[tag])
		{
			return;
		}

		this.queue[tag] = true;
		if (force)
		{
			this.scheduleUpdate(true);
		}
	}

	clear(tagId)
	{
		delete this.queue[tagId];
	}

	scheduleUpdate(force)
	{
		clearTimeout(this.watchUpdateTimeout);
		this.watchUpdateTimeout = setTimeout(
			() => {
				this.update();
			},
			force ? this.watchForceUpdateInterval : this.watchUpdateInterval,
		);
	}

	update()
	{
		const watchTags = Object.keys(this.queue);
		if (watchTags.length > 0)
		{
			this.restClient.callMethod('pull.watch.extend', { tags: watchTags }, (result) => {
				if (result.error())
				{
					this.scheduleUpdate();

					return;
				}

				const updatedTags = result.data();

				for (const tagId of Object.keys(updatedTags))
				{
					if (!updatedTags[tagId])
					{
						this.clear(tagId);
					}
				}
				this.scheduleUpdate();
			});
		}
		else
		{
			this.scheduleUpdate();
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit