UNPKG

@wordpress/hooks

Version:
60 lines (56 loc) 2.16 kB
/** * Internal dependencies */ import createAddHook from './createAddHook'; import createRemoveHook from './createRemoveHook'; import createHasHook from './createHasHook'; import createRunHook from './createRunHook'; import createCurrentHook from './createCurrentHook'; import createDoingHook from './createDoingHook'; import createDidHook from './createDidHook'; /** * Internal class for constructing hooks. Use `createHooks()` function * * Note, it is necessary to expose this class to make its type public. * * @private */ export class _Hooks { constructor() { /** @type {import('.').Store} actions */ this.actions = Object.create(null); this.actions.__current = new Set(); /** @type {import('.').Store} filters */ this.filters = Object.create(null); this.filters.__current = new Set(); this.addAction = createAddHook(this, 'actions'); this.addFilter = createAddHook(this, 'filters'); this.removeAction = createRemoveHook(this, 'actions'); this.removeFilter = createRemoveHook(this, 'filters'); this.hasAction = createHasHook(this, 'actions'); this.hasFilter = createHasHook(this, 'filters'); this.removeAllActions = createRemoveHook(this, 'actions', true); this.removeAllFilters = createRemoveHook(this, 'filters', true); this.doAction = createRunHook(this, 'actions', false, false); this.doActionAsync = createRunHook(this, 'actions', false, true); this.applyFilters = createRunHook(this, 'filters', true, false); this.applyFiltersAsync = createRunHook(this, 'filters', true, true); this.currentAction = createCurrentHook(this, 'actions'); this.currentFilter = createCurrentHook(this, 'filters'); this.doingAction = createDoingHook(this, 'actions'); this.doingFilter = createDoingHook(this, 'filters'); this.didAction = createDidHook(this, 'actions'); this.didFilter = createDidHook(this, 'filters'); } } /** @typedef {_Hooks} Hooks */ /** * Returns an instance of the hooks object. * * @return {Hooks} A Hooks instance. */ function createHooks() { return new _Hooks(); } export default createHooks; //# sourceMappingURL=createHooks.js.map