Socket
Socket
Sign inDemoInstall

@wordpress/hooks

Package Overview
Dependencies
1
Maintainers
25
Versions
151
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@wordpress/hooks


Version published
Maintainers
25
Install size
476 kB
Created

Package description

What is @wordpress/hooks?

@wordpress/hooks is a library that provides a way to manage and trigger custom actions and filters in JavaScript. It is inspired by the WordPress PHP hooks system and allows developers to add, remove, and execute custom hooks in their JavaScript applications.

What are @wordpress/hooks's main functionalities?

Adding Actions

This feature allows you to add custom actions that can be triggered at specific points in your application. The code sample demonstrates how to add an action named 'myCustomAction' in the 'myNamespace' namespace.

const { addAction } = require('@wordpress/hooks');

addAction('myCustomAction', 'myNamespace', () => {
  console.log('Action triggered!');
});

Doing Actions

This feature allows you to trigger actions that have been added. The code sample demonstrates how to trigger the 'myCustomAction' action, which will execute any functions hooked to it.

const { doAction } = require('@wordpress/hooks');

doAction('myCustomAction');

Adding Filters

This feature allows you to add custom filters that can modify data at specific points in your application. The code sample demonstrates how to add a filter named 'myCustomFilter' in the 'myNamespace' namespace, which appends ' filtered' to the input value.

const { addFilter } = require('@wordpress/hooks');

addFilter('myCustomFilter', 'myNamespace', (value) => {
  return value + ' filtered';
});

Applying Filters

This feature allows you to apply filters to data, modifying it according to the functions hooked to the filter. The code sample demonstrates how to apply the 'myCustomFilter' filter to the string 'original value', resulting in 'original value filtered'.

const { applyFilters } = require('@wordpress/hooks');

const result = applyFilters('myCustomFilter', 'original value');
console.log(result); // Outputs: 'original value filtered'

Other packages similar to @wordpress/hooks

Readme

Source

Hooks

A lightweight & efficient EventManager for JavaScript.

Installation

Install the module

npm install @wordpress/hooks --save

This package assumes that your code will run in an ES2015+ environment. If you're using an environment that has limited or no support for such language features and APIs, you should include the polyfill shipped in @wordpress/babel-preset-default in your code.

Usage

In your JavaScript project, use hooks as follows:

import { createHooks } from '@wordpress/hooks';

myObject.hooks = createHooks();
myObject.hooks.addAction(); //etc...
The global instance

In the above example, we are creating a custom instance of the Hooks object and registering hooks there. The package also creates a default global instance that's accessible through the defaultHooks named exports, and its methods are also separately exported one-by-one.

In the WordPress context, that enables API functions to be called via the global wp.hooks object, like wp.hooks.addAction(), etc.

One notable difference between the JS and PHP hooks API is that in the JS version, addAction() and addFilter() also need to include a namespace as the second argument. Namespace uniquely identifies a callback in the form vendor/plugin/function.

API Usage

  • createHooks()
  • addAction( 'hookName', 'namespace', callback, priority )
  • addFilter( 'hookName', 'namespace', callback, priority )
  • removeAction( 'hookName', 'namespace' )
  • removeFilter( 'hookName', 'namespace' )
  • removeAllActions( 'hookName' )
  • removeAllFilters( 'hookName' )
  • doAction( 'hookName', arg1, arg2, moreArgs, finalArg )
  • applyFilters( 'hookName', content, arg1, arg2, moreArgs, finalArg )
  • doingAction( 'hookName' )
  • doingFilter( 'hookName' )
  • didAction( 'hookName' )
  • didFilter( 'hookName' )
  • hasAction( 'hookName', 'namespace' )
  • hasFilter( 'hookName', 'namespace' )
  • actions
  • filters
  • defaultHooks

Events on action/filter add or remove

Whenever an action or filter is added or removed, a matching hookAdded or hookRemoved action is triggered.

  • hookAdded action is triggered when addFilter() or addAction() method is called, passing values for hookName, functionName, callback and priority.
  • hookRemoved action is triggered when removeFilter() or removeAction() method is called, passing values for hookName and functionName.

The all hook

In non-minified builds developers can register a filter or action that will be called on all hooks, for example: addAction( 'all', 'namespace', callbackFunction );. Useful for debugging, the code supporting the all hook is stripped from the production code for performance reasons.

Contributing to this package

This is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to npm and used by WordPress as well as other software projects.

To find out more about contributing to this package or Gutenberg as a whole, please read the project's main contributor guide.



Code is Poetry.

Keywords

FAQs

Last updated on 10 Aug 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc