import { S3mini } from '../S3.js';
import { S3miniBun } from './bun.js';

/**
 * Creates an S3mini instance optimized for the current runtime.
 * Utilizes native optimizations when possible and falls back to pure js implementations when necessary.
 */
export function createOptimizedS3mini(config: ConstructorParameters<typeof S3mini>[0]): S3mini {
  if (process.versions.bun) {
    return new S3miniBun(config);
  }

  return new S3mini(config);
}
