registerBuilder method

void registerBuilder(
  1. ContentBuilder<ContentItem> builder, {
  2. List<ContentDescriptor>? descriptors = const [],
})

Register a ContentBuilder directly This allows other plugins to register content builders programmatically

Implementation

void registerBuilder(ContentBuilder builder,
    {List<ContentDescriptor>? descriptors = const []}) {
  final schemaType = builder.content.schemaType;

  if (_contentBuilderMap.containsKey(schemaType)) {
    VyuhBinding.instance.log.warn(
      'ContentBuilder for schemaType: $schemaType is already registered. Overriding.',
    );
  }

  _contentBuilderMap[schemaType] = builder;

  final matchingDescriptors = descriptors
          ?.where((element) => element.schemaType == schemaType)
          .toList(growable: false) ??
      [];

  builder.init(matchingDescriptors);

  VyuhBinding.instance.log.info(
    'Registered ContentBuilder for schemaType: $schemaType',
  );
}