node-selection
Get current selected text by using system accessibility APIs
Installation
npm i node-selection
Usage
Accessibility permissions
macOS requires accessibility permissions to be granted before a program
can control the Mac by using accessibility features.
checkAccessibilityPermissions([options])
options
: <Object>
prompt
: <boolean>
Default: false
Returns: <Promise>
Fullfills upon success with a boolean indicating
whether accessibility permissions have been granted to this program.
If prompt
is true
, a prompt window will be shown when accessibility
permissions have not been granted.
If this method is invoked on non-macOS platform, it always returns true
.
import { checkAccessibilityPermissions } from 'node-selection';
if (!(await checkAccessibilityPermissions({ prompt: true }))) {
console.log('grant accessibility permissions and restart this program');
process.exit(1);
}
Selection
getSelection()
Returns: <Promise>
Fullfills upon success with an object with one property:
text
: <string>
| <undefined>
Current selected text.process
: Object
| <undefined>
pid
: <number>
| <undefined>
The process ID.name
: <string>
| <undefined>
The filename of the process.bundleIdentifier
: <string>
| <undefined>
The bundle identifier of the process (macOS only).
import { getSelection } from 'node-selection';
try {
const { text, process } = await getSelection();
console.log('current selection:', { text, process });
} catch (error) {
console.error('error', error);
}
Examples