import PluginsLoader from '@epicformbuilder/common/services/PluginsLoader'

/** Components that only make sense once per form. Structural, not a paid limit. */
const SINGLE_INSTANCE: ReadonlySet<string> = new Set( [ 'SuccessMessage', 'FailureMessage', 'ProcessingMessage' ] )

export function maxPerForm( component: string ): number {
  const declared = PluginsLoader.getEditorPart( component )?.maxPerForm
  if ( 'number' === typeof declared && declared > 0 ) return declared
  return SINGLE_INSTANCE.has( component ) ? 1 : Infinity
}
