Skip to content
This repository has been archived by the owner on Jul 9, 2018. It is now read-only.

Hooks: Update hooks public API to make it possible to apply to wp.hooks directly #45

Merged
merged 1 commit into from
Nov 27, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion packages/hooks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ A lightweight & efficient filter and action manager.

### API Usage

* `createHooks()`
* `addAction( 'hookName', 'functionName', callback, priority )`
* `addFilter( 'hookName', 'functionName', callback, priority )`
* `removeAction( 'hookName', 'functionName' )`
Expand All @@ -32,9 +33,11 @@ A lightweight & efficient filter and action manager.
* `didFilter( 'hookName' )`
* `hasAction( 'hookName' )`
* `hasFilter( 'hookName' )`
* `actions`
* `filters`

Hooks can be added to an object via composition:
`import createHooks from '../';`
`import { createHooks } from '@wordpress/hooks';`

`myObject.hooks = createHooks();`

Expand Down
40 changes: 40 additions & 0 deletions packages/hooks/src/createHooks.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
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';

/**
* Returns an instance of the hooks object.
*
* @return {Object} Object that contains all hooks.
*/
function createHooks() {
const actions = {};
const filters = {};

return {
addAction: createAddHook( actions ),
addFilter: createAddHook( filters ),
removeAction: createRemoveHook( actions ),
removeFilter: createRemoveHook( filters ),
hasAction: createHasHook( actions ),
hasFilter: createHasHook( filters ),
removeAllActions: createRemoveHook( actions, true ),
removeAllFilters: createRemoveHook( filters, true ),
doAction: createRunHook( actions ),
applyFilters: createRunHook( filters, true ),
currentAction: createCurrentHook( actions ),
currentFilter: createCurrentHook( filters ),
doingAction: createDoingHook( actions ),
doingFilter: createDoingHook( filters ),
didAction: createDidHook( actions ),
didFilter: createDidHook( filters ),
actions: actions,
filters: filters,
};
}

export default createHooks;
72 changes: 41 additions & 31 deletions packages/hooks/src/index.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,44 @@
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';
import createHooks from './createHooks';

function createHooks() {
const actions = {};
const filters = {};
const {
addAction,
addFilter,
removeAction,
removeFilter,
hasAction,
hasFilter,
removeAllActions,
removeAllFilters,
doAction,
applyFilters,
currentAction,
currentFilter,
doingAction,
doingFilter,
didAction,
didFilter,
actions,
filters,
} = createHooks();

return {
addAction: createAddHook( actions ),
addFilter: createAddHook( filters ),
removeAction: createRemoveHook( actions ),
removeFilter: createRemoveHook( filters ),
hasAction: createHasHook( actions ),
hasFilter: createHasHook( filters ),
removeAllActions: createRemoveHook( actions, true ),
removeAllFilters: createRemoveHook( filters, true ),
doAction: createRunHook( actions ),
applyFilters: createRunHook( filters, true ),
currentAction: createCurrentHook( actions ),
currentFilter: createCurrentHook( filters ),
doingAction: createDoingHook( actions ),
doingFilter: createDoingHook( filters ),
didAction: createDidHook( actions ),
didFilter: createDidHook( filters ),
actions: actions,
filters: filters,
};
export {
createHooks,
addAction,
addFilter,
removeAction,
removeFilter,
hasAction,
hasFilter,
removeAllActions,
removeAllFilters,
doAction,
applyFilters,
currentAction,
currentFilter,
doingAction,
doingFilter,
didAction,
didFilter,
actions,
filters,
};
export default createHooks;
Loading