/** * External dependencies */ import { registerExperimentType } from '@nab/experiments'; import { registerCoreConversionActions } from '@nab/conversion-action-library'; import { registerCoreSegmentationRules } from '@nab/segmentation-rule-library'; /** * Internal dependencies */ import { settings as css } from './css'; import { settings as customPostType } from './custom-post-type'; import { settings as headline } from './headline'; import { settings as heatmap } from './heatmap'; import { settings as javascript } from './javascript'; import { settings as menu } from './menu'; import { settings as page } from './page'; import { settings as post } from './post'; import { settings as template } from './template'; import { settings as theme } from './theme'; import { settings as syncedPattern } from './synced-pattern'; import { settings as popup } from './popup'; import { settings as url } from './url'; import { settings as widget } from './widget'; import { settings as php } from './php'; import { settings as wcProduct } from './woocommerce-product'; import { settings as wcBulkSale } from './woocommerce-bulk-sale'; /** * Function to register core experiments. * * @example * ```js * import { registerCoreExperiments } from '@nab/experiment-library'; * * registerCoreExperiments(); * ``` */ export const registerCoreExperiments = (): void => { registerCoreConversionActions(); registerCoreSegmentationRules(); [ // Content experiments page, post, customPostType, syncedPattern, headline, url, // Heatmap and scrollmap heatmap, // Site-wide experiments template, theme, popup, widget, menu, css, javascript, php, // WooCommerce experiments wcProduct, wcBulkSale, ].forEach( ( settings ) => { if ( ! settings ) { return; } registerExperimentType( settings.name, settings ); } ); };