1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import { arrayEach } from './../helpers/array';
- import { defineGetter } from './../helpers/object';
- var MIXIN_NAME = 'localHooks';
- /**
- * Mixin object to extend objects functionality for local hooks.
- *
- * @type {Object}
- */
- var localHooks = {
- /**
- * Internal hooks storage.
- */
- _localHooks: Object.create(null),
- /**
- * Add hook to the collection.
- *
- * @param {String} key Hook name.
- * @param {Function} callback Hook callback
- */
- addLocalHook: function addLocalHook(key, callback) {
- if (!this._localHooks[key]) {
- this._localHooks[key] = [];
- }
- this._localHooks[key].push(callback);
- },
- /**
- * Run hooks.
- *
- * @param {String} key Hook name.
- * @param {*} params
- */
- runLocalHooks: function runLocalHooks(key) {
- var _this = this;
- for (var _len = arguments.length, params = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- params[_key - 1] = arguments[_key];
- }
- if (this._localHooks[key]) {
- arrayEach(this._localHooks[key], function (callback) {
- return callback.apply(_this, params);
- });
- }
- },
- /**
- * Clear all added hooks.
- */
- clearLocalHooks: function clearLocalHooks() {
- this._localHooks = {};
- }
- };
- defineGetter(localHooks, 'MIXIN_NAME', MIXIN_NAME, {
- writable: false,
- enumerable: false
- });
- export default localHooks;
|