osa2

0.2.3 • Public • Published

osa2

styled with prettier

Interact with Apple's Open Scripting Architecture from node.js

This module provides a Promise interface to macOS's automation and scripting APIs.

osa2 is intended for use in libraries or full applications. If you're looking to write simple automation scripts, check out jxa.

Installation

npm install osa2 --save

Usage

Get the currently playing iTunes track

var osa = require('osa2')
 
var track = osa(() => {
    return Application('iTunes').currentTrack.name()
})
 
track().then(console.log).catch(console.error)

Show an alert

var osa = require('osa2')
 
function alert(message) {
    return osa(text => {
        var app = Application.currentApplication()
        app.includeStandardAdditions = true
        app.displayAlert(text)
    })(message)
}
 
alert('Hello World')

API

Execute code in the JavaScript for Automation environment

osa(function) -> function

Wraps function to be run inside Apple's JavaScript for Automation environment.

function

Type: function

The code to be run inside the JXA environment. NOTE: function cannot close over variables in a parent's scope. Pass data as arguments explicitly instead.

return

Type: function

Returns a new function with the same arguments as function, but when called the code is run inside the JXA environment. This is done asynchronously, therefore promise is returned.

var greet = osa(name => `Hello from JXA, ${name}!`)
 
greet('Will').then(text => {
    console.log(text) // Hello from JXA, Will!
})

Dependencies (2)

Dev Dependencies (2)

Package Sidebar

Install

npm i osa2

Weekly Downloads

10

Version

0.2.3

License

MIT

Unpacked Size

119 kB

Total Files

7

Last publish

Collaborators

  • wtfaremyinitials