@vectronic/homebridge-script-switch 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,3 @@
1
- import { API } from 'homebridge';
1
+ import type { API } from 'homebridge';
2
2
  declare const _default: (api: API) => void;
3
- export = _default;
4
- //# sourceMappingURL=accessory.d.ts.map
3
+ export default _default;
package/dist/accessory.js CHANGED
@@ -1,7 +1,14 @@
1
- "use strict";
2
- const child_process_1 = require("child_process");
1
+ import { exec } from 'child_process';
3
2
  let hap;
4
3
  class ScriptSwitch {
4
+ log;
5
+ name;
6
+ setOnStateScript;
7
+ setOffStateScript;
8
+ getStateScript;
9
+ onStateValue;
10
+ switchService;
11
+ informationService;
5
12
  constructor(log, config) {
6
13
  this.log = log;
7
14
  this.name = config.name;
@@ -19,11 +26,10 @@ class ScriptSwitch {
19
26
  this.log(`onStateValue: ${this.onStateValue}`);
20
27
  this.switchService = new hap.Service.Switch(this.name);
21
28
  this.switchService.getCharacteristic(hap.Characteristic.On)
22
- .on("get" /* CharacteristicEventTypes.GET */, async (callback) => {
23
- let on;
29
+ .onGet(async () => {
24
30
  try {
25
31
  const stdout = await new Promise((resolve, reject) => {
26
- (0, child_process_1.exec)(this.getStateScript, {}, (error, stdout) => {
32
+ exec(this.getStateScript, {}, (error, stdout) => {
27
33
  if (error) {
28
34
  reject(error);
29
35
  return;
@@ -32,33 +38,30 @@ class ScriptSwitch {
32
38
  });
33
39
  });
34
40
  log.debug('get state script returned: ' + stdout);
35
- on = (stdout.trim() === this.onStateValue);
41
+ const on = (stdout.trim() === this.onStateValue);
42
+ log.debug('Returning switch state: ' + (on ? 'ON' : 'OFF'));
43
+ return on;
36
44
  }
37
45
  catch (err) {
38
46
  log.error(`get state exec error: ${err}`);
39
- callback(err);
40
- return;
47
+ throw err;
41
48
  }
42
- log.debug('Returning switch state: ' + (on ? 'ON' : 'OFF'));
43
- callback(undefined, on);
44
49
  })
45
- .on("set" /* CharacteristicEventTypes.SET */, async (value, callback) => {
50
+ .onSet(async (value) => {
46
51
  const newOn = value;
47
52
  if (newOn && (this.setOnStateScript === undefined)) {
48
53
  log.debug('Ignoring switch state ON as set_state_on_script is not configured');
49
- callback();
50
54
  return;
51
55
  }
52
56
  if (!newOn && (this.setOffStateScript === undefined)) {
53
57
  log.debug('Ignoring switch state OFF as set_state_off_script is not configured');
54
- callback();
55
58
  return;
56
59
  }
57
60
  log.debug('Setting switch state: ' + (newOn ? 'ON' : 'OFF'));
58
61
  const setStateScript = (newOn ? this.setOnStateScript : this.setOffStateScript);
59
62
  try {
60
63
  const stdout = await new Promise((resolve, reject) => {
61
- (0, child_process_1.exec)(setStateScript, {}, (error, stdout) => {
64
+ exec(setStateScript, {}, (error, stdout) => {
62
65
  if (error) {
63
66
  reject(error);
64
67
  return;
@@ -70,11 +73,9 @@ class ScriptSwitch {
70
73
  }
71
74
  catch (err) {
72
75
  log.error(`set state exec error: ${err}`);
73
- callback(err);
74
- return;
76
+ throw err;
75
77
  }
76
78
  log.debug('Switch state set to: ' + (newOn ? 'ON' : 'OFF'));
77
- callback();
78
79
  });
79
80
  this.informationService = new hap.Service.AccessoryInformation()
80
81
  .setCharacteristic(hap.Characteristic.Manufacturer, 'Vectronic');
@@ -90,7 +91,7 @@ class ScriptSwitch {
90
91
  ];
91
92
  }
92
93
  }
93
- module.exports = (api) => {
94
+ export default (api) => {
94
95
  hap = api.hap;
95
96
  api.registerAccessory('ScriptSwitch', ScriptSwitch);
96
97
  };
@@ -1 +1 @@
1
- {"version":3,"file":"accessory.js","sourceRoot":"","sources":["../src/accessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accessory.js","sourceRoot":"","sources":["../src/accessory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "displayName": "Homebridge Script Switch",
3
3
  "name": "@vectronic/homebridge-script-switch",
4
- "version": "0.1.1",
4
+ "version": "0.2.0",
5
5
  "description": "A switch plugin for Homebridge which integrates with shell scripts",
6
+ "type": "module",
6
7
  "main": "dist/accessory.js",
7
8
  "repository": {
8
9
  "type": "git",
9
- "url": "git://github.com/vectronic/homebridge-script-switch.git"
10
+ "url": "git+https://github.com/vectronic/homebridge-script-switch.git"
10
11
  },
11
12
  "bugs": {
12
13
  "url": "https://github.com/vectronic/homebridge-script-switch/issues"
@@ -22,17 +23,18 @@
22
23
  "author": "vectronic",
23
24
  "license": "MIT",
24
25
  "engines": {
25
- "node": ">=14",
26
- "homebridge": ">=1.1.0"
26
+ "node": "^20.18.0 || ^22.10.0 || ^24.0.0",
27
+ "homebridge": "^1.8.0 || ^2.0.0-beta.0"
27
28
  },
28
29
  "devDependencies": {
29
- "@types/node": "20.1.1",
30
- "@typescript-eslint/eslint-plugin": "5.59.5",
31
- "@typescript-eslint/parser": "5.59.5",
32
- "eslint": "8.40.0",
33
- "homebridge": "1.6.1",
34
- "rimraf": "5.0.0",
35
- "ts-node": "10.9.1",
36
- "typescript": "5.0.4"
30
+ "@eslint/js": "^9.39.1",
31
+ "@types/node": "^24.10.1",
32
+ "eslint": "^9.39.1",
33
+ "homebridge": "^2.0.0-beta.55",
34
+ "nodemon": "^3.1.11",
35
+ "rimraf": "^6.1.0",
36
+ "ts-node": "^10.9.2",
37
+ "typescript": "^5.9.3",
38
+ "typescript-eslint": "^8.46.4"
37
39
  }
38
40
  }
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="JAVA_MODULE" version="4">
3
- <component name="NewModuleRootManager" inherit-compiler-output="true">
4
- <exclude-output />
5
- <content url="file://$MODULE_DIR$" />
6
- <orderEntry type="inheritedJdk" />
7
- <orderEntry type="sourceFolder" forTests="false" />
8
- </component>
9
- </module>
package/.idea/misc.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectRootManager">
4
- <output url="file://$PROJECT_DIR$/out" />
5
- </component>
6
- </project>
package/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/homebridge-script-switch.iml" filepath="$PROJECT_DIR$/.idea/homebridge-script-switch.iml" />
6
- </modules>
7
- </component>
8
- </project>
package/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
5
- </component>
6
- </project>
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessory.d.ts","sourceRoot":"","sources":["../src/accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAQN,MAAM,YAAY,CAAC;8BAgIL,GAAG;AAAlB,kBAGE"}