nodeautomation
v0.5.0
Published
An Apple event (“AppleScript”) bridge to control desktop apps on macOS.
Maintainers
Readme
#nodeautomation
NodeJS ↔ Apple event ('AppleScript') bridge (experimental)
About
NodeAutomation is a Node.js module that allows 'AppleScriptable' applications to be controlled directly from JavaScript.
For example, to get the value of the first paragraph of the document named 'README' in TextEdit:
app('TextEdit').documents.named('README').paragraphs[0].get()This is equivalent to the AppleScript statement:
tell application "TextEdit" to get paragraph 1 of document "README"Or to create a new "Hello World!" document in TextEdit:
app('TextEdit').make({new: k.document,
withProperties: {text: "Hello World!"}})Install
$ npm install nodeautomationUsage
$ node
> require('nodeautomation/repl');
> const finder = app('Finder');
> finder.home();
app('Finder').startupDisk.folders.named('Users').folders.named('jsmith')Documentation
Documentation is preliminary, being a quick and dirty translation of the original appscript manual. Documentation is included in the nodeautomation package and online:
https://hhas.github.io/nodeautomation/
Tools
ASDictionary and ASTranslate tools:
https://sourceforge.net/projects/appscript/files/
Status
Caution: This is an experimental release. There will be bugs and rough edges.
E&OE. No warranty given. Use at own risk. Etc.
See also: https://appscript.sourceforge.io/status.html
Dependencies
- @hhas01/objc -- https://github.com/hhas/objc (forked from lukaskollmer/objc)
- @napi-ffi/ffi-napi -- https://github.com/napi-ffi
- @napi-ffi/ref-napi
- @napi-ffi/ref-struct-di
- libxmljs2
Known issues
Depends on some deprecated CoreServices/Cocoa APIs, for which macOS may or may not provide replacements.
WARNING: The libxmljs2 dependency is no longer maintained and insecure.
TO DO: Switch to libxmljs which appears to be actively maintained again.
