@guanghechen/mini-copy
Version:
Access system clipboard (also support to share clipboard in wsl with windows).
80 lines (74 loc) • 2 kB
TypeScript
import { IReporter } from '@guanghechen/reporter.types';
declare const DEFAULT_LINE_END: string;
interface IFakeClipboardProps {
filepath: string;
encoding?: BufferEncoding;
reporter?: IReporter;
}
interface IFakeClipboardReadOptions {
}
interface IFakeClipboardWriteOptions {
}
declare class FakeClipboard {
readonly filepath: string;
readonly encoding: BufferEncoding;
readonly reporter: IReporter | null;
private isInitialized;
constructor(props: IFakeClipboardProps);
read(_options?: IFakeClipboardReadOptions): Promise<string>;
write(content: string, _options?: IFakeClipboardWriteOptions): Promise<void>;
protected init(): Promise<void>;
}
interface ICopyOptions {
/**
* System `copy` command location.
*/
copyCommandPath?: string;
/**
* Arguments passed to the `copy` command.
*/
copyCommandArgs?: string[];
/**
* Fake clipboard.
*/
fakeClipboard?: FakeClipboard;
/**
* Logger.
*/
reporter?: IReporter;
}
/**
* Copy content to system clipboard.
* @param content the content you want to write into system clipboard.
* @param options
*/
declare function copy(content: string, options?: ICopyOptions): Promise<void | never>;
interface IPasteOptions {
/**
* System `paste` command location.
*/
pasteCommandPath?: string;
/**
* Arguments passed to the `paste` command.
*/
pasteCommandArgs?: string[];
/**
* Fake clipboard.
*/
fakeClipboard?: FakeClipboard;
/**
* Logger.
*/
reporter?: IReporter;
/**
* System line-ending symbol.
*/
lineEnd?: string;
}
/**
* get the data from system clipboard
* @param options
*/
declare function paste(options?: IPasteOptions): Promise<string | never>;
export { DEFAULT_LINE_END, FakeClipboard, copy, paste };
export type { ICopyOptions, IFakeClipboardProps, IFakeClipboardReadOptions, IFakeClipboardWriteOptions, IPasteOptions };