diff --git a/config-serializer/TypeChecker.ts b/config-serializer/TypeChecker.ts new file mode 100644 index 00000000..4f2c9210 --- /dev/null +++ b/config-serializer/TypeChecker.ts @@ -0,0 +1,13 @@ +class TypeChecker { + + static firstValidScancode = 1; + static lastValidScancode = 231; + + static isUInt8Valid(uint8: number): boolean { + return 0 <= uint8 && uint8 <= 255; + } + + static isScancodeValid(scancode: number): boolean { + return TypeChecker.firstValidScancode <= scancode && scancode <= TypeChecker.lastValidScancode; + } +} diff --git a/config-serializer/UhkBuffer.ts b/config-serializer/UhkBuffer.ts index f1c812d3..5c3889fe 100644 --- a/config-serializer/UhkBuffer.ts +++ b/config-serializer/UhkBuffer.ts @@ -1,4 +1,3 @@ - class UhkBuffer { private static eepromSize = 32 * 1024; private static maxStringByteLength = 0xFFFF; diff --git a/config-serializer/config-items/KeyAction.ts b/config-serializer/config-items/KeyAction.ts index af916a27..26c06c57 100644 --- a/config-serializer/config-items/KeyAction.ts +++ b/config-serializer/config-items/KeyAction.ts @@ -17,7 +17,7 @@ class KeyAction { let keyActionFirstByte = buffer.readUInt8(); buffer.backtrack(); - if (KeystrokeAction.isScancodeValid(keyActionFirstByte)) { + if (TypeChecker.isScancodeValid(keyActionFirstByte)) { return new KeystrokeAction().fromBinary(buffer); } else if (keyActionFirstByte === MouseAction.keyActionId) { return new MouseAction().fromBinary(buffer); diff --git a/config-serializer/config-items/KeystrokeAction.ts b/config-serializer/config-items/KeystrokeAction.ts index 3d3fd201..76105600 100644 --- a/config-serializer/config-items/KeystrokeAction.ts +++ b/config-serializer/config-items/KeystrokeAction.ts @@ -1,8 +1,6 @@ class KeystrokeAction extends KeyAction implements Serializable { static keyActionTypeString = 'keystroke'; - static firstValidScancode = 1; - static lastValidScancode = 231; modifierMask: number; @@ -13,17 +11,12 @@ class KeystrokeAction extends KeyAction implements Serializable } set scancode(value) { - if (!KeystrokeAction.isScancodeValid(value)) { + if (!TypeChecker.isScancodeValid(value)) { throw 'Invalid KeystrokeAction.scancode: ${scancode}'; } this._scancode = value; } - static isScancodeValid(scancode) { - return KeystrokeAction.firstValidScancode <= scancode && - scancode <= KeystrokeAction.lastValidScancode; - } - fromJsObject(jsObject: any): KeystrokeAction { this.scancode = jsObject.scancode; this.modifierMask = jsObject.modifierMask; diff --git a/config-serializer/config-items/PlayMacroAction.ts b/config-serializer/config-items/PlayMacroAction.ts index 0b757de9..9c63c4ae 100644 --- a/config-serializer/config-items/PlayMacroAction.ts +++ b/config-serializer/config-items/PlayMacroAction.ts @@ -10,16 +10,12 @@ class PlayMacroAction extends KeyAction implements Serializable } set macroId(value) { - if (!PlayMacroAction.isMacroIdValid(value)) { + if (!TypeChecker.isUInt8Valid(value)) { throw 'Invalid PlayMacroAction.macroId: ${value}'; } this._macroId = value; } - static isMacroIdValid(macroId) { - return 0 <= macroId && macroId <= 255; - } - fromJsObject(jsObject: any): PlayMacroAction { this.macroId = jsObject.macroId; return this; diff --git a/config-serializer/config-items/SwitchKeymapAction.ts b/config-serializer/config-items/SwitchKeymapAction.ts index f5c24783..dcc28d63 100644 --- a/config-serializer/config-items/SwitchKeymapAction.ts +++ b/config-serializer/config-items/SwitchKeymapAction.ts @@ -10,16 +10,12 @@ class SwitchKeymapAction extends KeyAction implements Serializable /// /// ///