403Webshell
Server IP : 104.21.14.103  /  Your IP : 18.119.28.230
Web Server : LiteSpeed
System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : giankuin ( 1871)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/giankuin/www/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/js/base/context/cart-checkout/event-emit/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/giankuin/www/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/js/base/context/cart-checkout/event-emit//emitters.js
const getObserversByPriority = ( observers, eventType ) => {
	return observers[ eventType ]
		? Array.from( observers[ eventType ].values() ).sort( ( a, b ) => {
				return a.priority - b.priority;
		  } )
		: [];
};

/**
 * Emits events on registered observers for the provided type and passes along
 * the provided data.
 *
 * This event emitter will silently catch promise errors, but doesn't care
 * otherwise if any errors are caused by observers. So events that do care
 * should use `emitEventWithAbort` instead.
 *
 * @param {Object} observers The registered observers to omit to.
 * @param {string} eventType The event type being emitted.
 * @param {*}      data      Data passed along to the observer when it is
 *                           invoked.
 *
 * @return {Promise} A promise that resolves to true after all observers have
 *                   executed.
 */
export const emitEvent = async ( observers, eventType, data ) => {
	const observersByType = getObserversByPriority( observers, eventType );
	const observerResponses = [];
	for ( const observer of observersByType ) {
		try {
			const observerResponse = await Promise.resolve(
				observer.callback( data )
			);
			if ( typeof observerResponse === 'object' ) {
				observerResponses.push( observerResponse );
			}
		} catch ( e ) {
			// we don't care about errors blocking execution, but will
			// console.error for troubleshooting.
			// eslint-disable-next-line no-console
			console.error( e );
		}
	}
	return observerResponses.length ? observerResponses : true;
};

/**
 * Emits events on registered observers for the provided type and passes along
 * the provided data. This event emitter will abort and return any value from
 * observers that do not return true.
 *
 * @param {Object} observers The registered observers to omit to.
 * @param {string} eventType The event type being emitted.
 * @param {*}      data      Data passed along to the observer when it is
 *                           invoked.
 *
 * @return {Promise} Returns a promise that resolves to either boolean or the
 *                   return value of the aborted observer.
 */
export const emitEventWithAbort = async ( observers, eventType, data ) => {
	const observersByType = getObserversByPriority( observers, eventType );
	let emitterResponse = true;
	for ( const observer of observersByType ) {
		try {
			const response = await Promise.resolve( observer.callback( data ) );
			if (
				typeof response === 'object' &&
				typeof response.type === 'undefined'
			) {
				throw new Error(
					'If you want to abort event emitter processing, your observer must return an object with a type property'
				);
			}
			emitterResponse = typeof response === 'object' ? response : true;
			if ( emitterResponse !== true ) {
				return emitterResponse;
			}
		} catch ( e ) {
			// we don't handle thrown errors but just console.log for
			// troubleshooting
			// eslint-disable-next-line no-console
			console.error( e );
			return { type: 'error' };
		}
	}
	return emitterResponse;
};

Youez - 2016 - github.com/yon3zu
LinuXploit