import type { CommandItem } from '@features/block-editor/types';
import BLOCK_DEFINITIONS from '@features/block-editor/config/blocks';

/**
 * CommandItem に、その type に対応する action / convert / isDisabled / isActive を差し込む。
 * 実体はすべて `config/blocks/{type}.ts` 側に置かれている。
 * 定義のない type は黙って捨てる。
 */
export default function resolveCommands(
  commands: CommandItem[],
  recordUsage: (command: CommandItem) => void
): CommandItem[] {
  return commands.flatMap((cmd) => {
    const def = BLOCK_DEFINITIONS[cmd.name];
    if (!def) {
      return [];
    }
    return [
      {
        ...cmd,
        ...def.createActions(cmd, { recordUsage }),
      },
    ];
  });
}
