-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.ts
31 lines (29 loc) · 982 Bytes
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import DarwinClipboard from './src/platform/darwin';
import LinuxClipboard from './src/platform/linux';
import WindowsClipboard from './src/platform/windows';
export enum FilesActionEnum {
Copy = 'Copy',
Cut = 'Cut',
}
export type FilesActionType = 'Copy' | 'Cut';
export interface SysClipboard {
readText(): Promise<string>;
writeText(text: string): Promise<void>;
readImage(file?: string): Promise<Buffer>;
writeImage(file: string | Buffer): Promise<void>;
readFiles(): Promise<Array<string>>;
pasteFiles(action: FilesActionType, destinationFolder: string, ...files: Array<string>): Promise<void>;
writeFiles(...files: Array<string>): Promise<boolean>;
}
export const clipboard: SysClipboard = (() => {
switch (process.platform) {
case 'darwin':
return new DarwinClipboard();
case 'win32':
return new WindowsClipboard();
case 'linux':
return new LinuxClipboard();
default:
throw new Error('unsupported os');
}
})();