56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
/**
|
|
* External dependencies
|
|
*/
|
|
import {
|
|
registerBlockType,
|
|
Block,
|
|
BlockConfiguration,
|
|
} from '@wordpress/blocks';
|
|
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
import { WC_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.
|
|
*/
|
|
export const registerExperimentalBlockType = (
|
|
blockNameOrMetadata: string | BlockConfiguration,
|
|
settings: Record< string, unknown >
|
|
): Block | undefined => {
|
|
if ( WC_BLOCKS_PHASE > 2 ) {
|
|
return registerBlockType( blockNameOrMetadata, 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.
|
|
*/
|
|
export const registerFeaturePluginBlockType = (
|
|
blockNameOrMetadata: string | BlockConfiguration,
|
|
settings: Record< string, unknown >
|
|
): Block | undefined => {
|
|
if ( WC_BLOCKS_PHASE > 1 ) {
|
|
return registerBlockType( blockNameOrMetadata, 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 = (): boolean => WC_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 = (): boolean => WC_BLOCKS_PHASE > 1;
|