You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					49 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					49 lines
				
				1.1 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								const isWSL = require('is-wsl');
							 | 
						||
| 
								 | 
							
								const termux = require('./lib/termux.js');
							 | 
						||
| 
								 | 
							
								const linux = require('./lib/linux.js');
							 | 
						||
| 
								 | 
							
								const macos = require('./lib/macos.js');
							 | 
						||
| 
								 | 
							
								const windows = require('./lib/windows.js');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const platformLib = (() => {
							 | 
						||
| 
								 | 
							
									switch (process.platform) {
							 | 
						||
| 
								 | 
							
										case 'darwin':
							 | 
						||
| 
								 | 
							
											return macos;
							 | 
						||
| 
								 | 
							
										case 'win32':
							 | 
						||
| 
								 | 
							
											return windows;
							 | 
						||
| 
								 | 
							
										case 'android':
							 | 
						||
| 
								 | 
							
											if (process.env.PREFIX !== '/data/data/com.termux/files/usr') {
							 | 
						||
| 
								 | 
							
												throw new Error('You need to install Termux for this module to work on Android: https://termux.com');
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											return termux;
							 | 
						||
| 
								 | 
							
										default:
							 | 
						||
| 
								 | 
							
											// `process.platform === 'linux'` for WSL.
							 | 
						||
| 
								 | 
							
											if (isWSL) {
							 | 
						||
| 
								 | 
							
												return windows;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											return linux;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								})();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.write = async text => {
							 | 
						||
| 
								 | 
							
									if (typeof text !== 'string') {
							 | 
						||
| 
								 | 
							
										throw new TypeError(`Expected a string, got ${typeof text}`);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									await platformLib.copy({input: text});
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.read = async () => platformLib.paste({stripEof: false});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.writeSync = text => {
							 | 
						||
| 
								 | 
							
									if (typeof text !== 'string') {
							 | 
						||
| 
								 | 
							
										throw new TypeError(`Expected a string, got ${typeof text}`);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									platformLib.copySync({input: text});
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.readSync = () => platformLib.pasteSync({stripEof: false}).stdout;
							 |