woocommerce/plugins/woocommerce-blocks/assets/js/settings/blocks/feature-flags.js

58 lines
1.8 KiB
JavaScript
Raw Normal View History

/**
* External dependencies
*/
import { registerBlockType } from '@wordpress/blocks';
/**
* Internal dependencies
*/
import { WOOCOMMERCE_BLOCKS_PHASE } from './constants';
/**
* Registers a new experimental block provided a unique name and an object defining its
* behavior. Once registered, the block is made available as an option to any
* editor interface where blocks are implemented.
*
* @param {string} name Block name.
* @param {Object} settings Block settings.
*
* @return {?Object} The block, if it has been successfully registered;
* otherwise `undefined`.
*/
export const registerExperimentalBlockType = ( name, settings ) => {
if ( WOOCOMMERCE_BLOCKS_PHASE > 2 ) {
return registerBlockType( name, settings );
}
};
/**
* Registers a new feature plugin block provided a unique name and an object
* defining its behavior. Once registered, the block is made available as an
* option to any editor interface where blocks are implemented.
*
* @param {string} name Block name.
* @param {Object} settings Block settings.
*
* @return {?Object} The block, if it has been successfully registered;
* otherwise `undefined`.
*/
export const registerFeaturePluginBlockType = ( name, settings ) => {
if ( WOOCOMMERCE_BLOCKS_PHASE > 1 ) {
return registerBlockType( name, settings );
}
};
/**
* Checks if we're executing the code in an experimental build mode.
*
* @return {boolean} True if this is an experimental build, false otherwise.
*/
export const isExperimentalBuild = () => WOOCOMMERCE_BLOCKS_PHASE > 2;
/**
* Checks if we're executing the code in an feature plugin or experimental build mode.
*
* @return {boolean} True if this is an experimental or feature plugin build, false otherwise.
*/
export const isFeaturePluginBuild = () => WOOCOMMERCE_BLOCKS_PHASE > 1;