Bun support for ionic CLI

How can I use Bun as the default package manager with ionic CLI?

after updating the global config with

ionic config set -g npmClient bun

I got the following error when running ionic start

> ionic integrations enable capacitor --quiet -- my-app io.ionic.starter
Error: unknown installer: bun
    at pkgManagerArgs (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/utils/npm.js:54:19)
    at Integration.installCapacitorCore (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/integrations/capacitor/index.js:133:74)
    at Integration.add (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/integrations/capacitor/index.js:121:24)
    at async IntegrationsEnableCommand.run (/Users/kng/.bun/install/global/node_modules/@ionic/cli/commands/integrations/enable.js:64:17)
    at async Promise.all (index 0)
    at async IntegrationsEnableCommand.execute (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/command.js:104:9)
    at async Executor.run (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/executor.js:55:9)
    at async Executor.execute (/Users/kng/.bun/install/global/node_modules/@ionic/cli-framework/lib/executor.js:71:13)
    at async runCommand (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/executor.js:63:5)
    at async StartCommand.run (/Users/kng/.bun/install/global/node_modules/@ionic/cli/commands/start.js:601:17)

Seems that it fails when installing capacitor.

its already mentioned in issue #5093, and a pull request #5097 has been created

However, seems the CLI is not actively maintained. A temp work around is to modify ~/.bun/install/global/node_modules/@ionic/cli/lib/utils/npm.js

add the bun case in the switch statement:

switch (npmClient) {
    // other cases ... //
    case 'bun':
        vocab = { run: 'run', install: 'i', bareInstall: 'i', uninstall: 'uninstall', dedupe: 'dedupe', rebuild: 'rebuild', global: '-g', save: '--save', saveDev: '-D', saveExact: '-E', nonInteractive: '', lockFileOnly: '--package-lock-only' };
        break;
    // other cases ... //