-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
api.js
43 lines (31 loc) · 942 Bytes
/
api.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import {promisify} from 'node:util';
import childProcess from 'node:child_process';
const execFile = promisify(childProcess.execFile);
const execute = async (command, arguments_ = {}) => {
let searchParameters = new URLSearchParams(arguments_).toString();
searchParameters = searchParameters.length > 0 ? `?${searchParameters}` : '';
await execFile('open', ['--background', `plash:${command}${searchParameters}`]);
};
const plash = {};
plash.add = async ({url, title}) => {
if (!url) {
throw new TypeError('The `url` parameter is required.');
}
await execute('add', {url, title});
};
plash.reload = async () => {
await execute('reload');
};
plash.next = async () => {
await execute('next');
};
plash.previous = async () => {
await execute('previous');
};
plash.random = async () => {
await execute('random');
};
plash.toggleBrowsingMode = async () => {
await execute('toggle-browsing-mode');
};
export default plash;