56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
 | |
| // See LICENSE in the project root for license information.
 | |
| Object.defineProperty(exports, "__esModule", { value: true });
 | |
| exports.ProtectableMapView = void 0;
 | |
| /**
 | |
|  * The internal wrapper used by ProtectableMap.  It extends the real `Map<K, V>` base class,
 | |
|  * but hooks the destructive operations (clear/delete/set) to give the owner a chance
 | |
|  * to block them.
 | |
|  *
 | |
|  * NOTE: This is not a public API.
 | |
|  */
 | |
| class ProtectableMapView extends Map {
 | |
|     constructor(owner, parameters) {
 | |
|         super();
 | |
|         this._owner = owner;
 | |
|         this._parameters = parameters;
 | |
|     }
 | |
|     clear() {
 | |
|         // override
 | |
|         if (this._parameters.onClear) {
 | |
|             this._parameters.onClear(this._owner);
 | |
|         }
 | |
|         super.clear();
 | |
|     }
 | |
|     delete(key) {
 | |
|         // override
 | |
|         if (this._parameters.onDelete) {
 | |
|             this._parameters.onDelete(this._owner, key);
 | |
|         }
 | |
|         return super.delete(key);
 | |
|     }
 | |
|     set(key, value) {
 | |
|         // override
 | |
|         let modifiedValue = value;
 | |
|         if (this._parameters.onSet) {
 | |
|             modifiedValue = this._parameters.onSet(this._owner, key, modifiedValue);
 | |
|         }
 | |
|         super.set(key, modifiedValue);
 | |
|         return this;
 | |
|     }
 | |
|     // INTERNAL USAGE ONLY
 | |
|     _clearUnprotected() {
 | |
|         super.clear();
 | |
|     }
 | |
|     // INTERNAL USAGE ONLY
 | |
|     _deleteUnprotected(key) {
 | |
|         return super.delete(key);
 | |
|     }
 | |
|     // INTERNAL USAGE ONLY
 | |
|     _setUnprotected(key, value) {
 | |
|         super.set(key, value);
 | |
|     }
 | |
| }
 | |
| exports.ProtectableMapView = ProtectableMapView;
 | |
| //# sourceMappingURL=ProtectableMapView.js.map
 |