@jxa/run
Run JXA code and get result.
Install
Install with npm:
npm install @jxa/run
Requirement:
Usage
export declare function run<R>(jxaCodeFunction: (...args: any[]) => void, ...args: any[]): Promise<R>
Illustration of usage
const resultPromise = run(JSXFn, argumentsOfJSXFn);
JSXFn
: This function is run as JXA.
- :memo: This
JSXFn
is serialized(toString
) and pass to JXA environment. - :waring: Warning: function cannot close over variables in a parent's scope.
- Pass data as arguments explicitly instead.
argumentsOfJSXFn
: An arguments of JSXFn
OK:
(async () => {
const result = await run(name => {
return "Hello there, " + name + "!"
}, "nodejs");
assert.strictEqual(result, "Hello there, nodejs!");
})();
NG:
(async () => {
const name = "nodejs"
const result = await run(name => {
return "Hello there, " + name + "!";
});
assert.strictEqual(result, "Hello there, nodejs!");
})();
Example
(async () => {
const result = await run(
() => {
return Application("System Events")
.currentUser()
.name()
}
);
assert.strictEqual(result, process.env.USER);
})();
Changelog
See Releases page.
Running tests
yarn test
Contributing
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
Related
License
MIT © azu