Port Phoenix code to TypeScript

This commit is contained in:
Slava Bacherikov committed 2018-01-10 02:51:28 +02:00
1 parent 4fd486017e
commit bec3f4027a
3 files changed
+259 -1

No files matched your search

+25 -1
View File
@@ -19,7 +19,7 @@ export interface Solver {
keygen(code: string): string[];
}
const keyboardDict: {[key: number]: string} = {
export const keyboardDict: {[key: number]: string} = {
2: "1", 3: "2", 4: "3", 5: "4", 6: "5", 7: "6", 8: "7", 9: "8",
10: "9", 11: "0", 16: "q", 17: "w", 18: "e", 19: "r", 20: "t", 21: "y",
22: "u", 23: "i", 24: "o", 25: "p", 30: "a", 31: "s", 32: "d", 33: "f",
@@ -27,6 +27,19 @@ const keyboardDict: {[key: number]: string} = {
47: "v", 48: "b", 49: "n", 50: "m"
};
// reverse scan code table
function generateReverseKeyDict(): {[key: string]: number} {
let result: {[key: string]: number} = {};
for (let key in keyboardDict) {
if (keyboardDict.hasOwnProperty(key)) {
result[keyboardDict[key]] = parseInt(key, 10);
}
}
return result;
}
export const reversedScanCodes = generateReverseKeyDict();
/* Decode Keyboard code to Ascii symbol */
export function keyboardEncToAscii(inKey: number[]): string {
let out = "";
@@ -44,6 +57,17 @@ export function keyboardEncToAscii(inKey: number[]): string {
return out;
}
export function asciiToKeyboardEnc(password: string): number[] {
return password.split("").map((c) => {
let code = reversedScanCodes[c];
if (code === void 0) {
throw new Error("Undefined scan code");
} else {
return code;
}
});
}
function cleanSerial(serial: string): string {
return serial.trim().replace(/-/gi, "");
}