

import { BridgePlugin } from '../bridge';
import { get } from 'para-utils';

interface IGetClipboardResult {
  // 当前剪切板内容
  text: string;
}

export class GetClipboard<K> extends BridgePlugin<void, K>{
  protected get ntvPluginName() {
    return '_ntv_util_get_clipboard';
  }
  protected get availableMinVersion() {
    return '1.0.0';
  }
  protected bridgeExecChrome(pluginName?: string | undefined): void {
    // 可针对不同运行环境实现特定的调用逻辑来MOCK，弥补平台差异性.
    throw new Error('GetClipboard() 未针对当前环境实现');
  }
}

/**
 * 获取剪切板内容
 */
export const getClipboard = () => {
  return new GetClipboard<IGetClipboardResult>().invokeOnce().then(result => {
    return get(result.cbData, 'text', '');
  });
}