PHP Classes

File: modules/system/assets/js/snowboard/main/InnerProxyHandler.js

Recommend this page to a friend!
  Packages of Luke Towers   Winter   modules/system/assets/js/snowboard/main/InnerProxyHandler.js   Download  
File: modules/system/assets/js/snowboard/main/InnerProxyHandler.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Winter
Content management system that uses MVC
Author: By
Last change:
Date: 7 months ago
Size: 1,450 bytes
 

Contents

Class file image Download
/** * Internal proxy for Snowboard. * * This handler wraps the Snowboard instance that is passed to the constructor of plugin instances. * It prevents access to the following methods: * - `attachAbstracts`: No need to attach abstracts again. * - `loadUtilties`: No need to load utilities again. * - `initialise`: Snowboard is already initialised. * - `initialiseSingletons`: Singletons are already initialised. */ export default { get(target, prop, receiver) { if (typeof prop === 'string') { const propLower = prop.toLowerCase(); if (['attachAbstracts', 'loadUtilities', 'initialise', 'initialiseSingletons'].includes(prop)) { throw new Error(`You cannot use the "${prop}" Snowboard method within a plugin.`); } if (target.hasPlugin(propLower)) { return (...params) => Reflect.get(target, 'plugins')[propLower].getInstance(...params); } } return Reflect.get(target, prop, receiver); }, has(target, prop) { if (typeof prop === 'string') { const propLower = prop.toLowerCase(); if (['attachAbstracts', 'loadUtilities', 'initialise', 'initialiseSingletons'].includes(prop)) { return false; } if (target.hasPlugin(propLower)) { return true; } } return Reflect.has(target, prop); }, };