UNPKG

nodehotkey

Version:
294 lines 8.34 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var robot_js_1 = __importDefault(require("robot-js")); var Clipboard_1 = require("./Clipboard"); var Keycodes_1 = require("./Keycodes"); var Wait_1 = require("./Wait"); var keyboard = robot_js_1.default.Keyboard(); keyboard.autoDelay.min = 0; keyboard.autoDelay.max = 0; var mouse = robot_js_1.default.Mouse(); mouse.autoDelay.min = 0; mouse.autoDelay.max = 0; /** * press a keyboard/mouse key * @param keyCode {number} code of the key to press * @returns {void} */ function pressKey(keyCode) { keyCode < 8 ? mouse.press(keyCode) : keyboard.press(keyCode); } exports.pressKey = pressKey; /** * release a keyboard/mouse key * @param keyCode {number} code of the key to release * @returns {void} */ function releaseKey(keyCode) { keyCode < 8 ? mouse.release(keyCode) : keyboard.release(keyCode); } exports.releaseKey = releaseKey; /** * click a keyboard/mouse key * @param clickKey {ClickType} * @returns {void} */ function click(clickKey) { var pressReleaseKeys = function (keyCodes) { // convert keyCodes into an array if its a number keyCodes = typeof keyCodes === 'number' ? [keyCodes] : keyCodes; keyCodes.forEach(function (keyCode) { pressKey(keyCode); releaseKey(keyCode); }); }; if (typeof clickKey === 'number' || Array.isArray(clickKey)) { pressReleaseKeys(clickKey); } else if (typeof clickKey === 'object') { for (var i = 0; i < (clickKey.times || 1); i++) { if (clickKey.modifiers) { // convert modifiers into an array if its a number var modifiers = typeof clickKey.modifiers === 'number' ? [clickKey.modifiers] : clickKey.modifiers; modifiers.forEach(function (modifier) { return pressKey(modifier); }); pressReleaseKeys(clickKey.key); modifiers.forEach(function (modifier) { return releaseKey(modifier); }); } else { pressReleaseKeys(clickKey.key); } } } } exports.click = click; /** * pastes given text * @param string {text} text to be pasted * @returns {void} */ function paste(text) { var tempClipText = Clipboard_1.getClipboardText(); var delay = 200; Clipboard_1.setClipboardText(text); Wait_1.wait(delay); click({ key: Keycodes_1.KEYCODES._V, modifiers: [Keycodes_1.KEYCODES._CONTROL] }); Wait_1.wait(delay); Clipboard_1.setClipboardText(tempClipText); } exports.paste = paste; /** * type string using keystrokes * @param text {string} string to be typed * @returns {void} */ function type(text) { var getMapping = function (c) { switch (c) { case ' ': return ' '; case '!': return '+1'; case '"': return '+\''; case '#': return '+3'; case '$': return '+4'; case '%': return '+5'; case '&': return '+7'; case '\'': return '\''; case '(': return '+9'; case ')': return '+0'; case '*': return '+8'; case '+': return '+='; case ',': return ','; case '-': return '-'; case '.': return '.'; case '/': return '/'; case '0': return '0'; case '1': return '1'; case '2': return '2'; case '3': return '3'; case '4': return '4'; case '5': return '5'; case '6': return '6'; case '7': return '7'; case '8': return '8'; case '9': return '9'; case ':': return '+;'; case ';': return ';'; case '<': return '+,'; case '=': return '='; case '>': return '+.'; case '?': return '=/'; case '@': return '+2'; case 'A': return '+a'; case 'B': return '+b'; case 'C': return '+c'; case 'D': return '+d'; case 'E': return '+e'; case 'F': return '+f'; case 'G': return '+g'; case 'H': return '+h'; case 'I': return '+i'; case 'J': return '+j'; case 'K': return '+k'; case 'L': return '+l'; case 'M': return '+m'; case 'N': return '+n'; case 'O': return '+o'; case 'P': return '+p'; case 'Q': return '+q'; case 'R': return '+r'; case 'S': return '+s'; case 'T': return '+t'; case 'U': return '+u'; case 'V': return '+v'; case 'W': return '+w'; case 'X': return '+x'; case 'Y': return '+y'; case 'Z': return '+z'; case '[': return '['; case '\\': return '\\'; case ']': return ']'; case '^': return '+6'; case '_': return '+-'; case '`': return '`'; case 'a': return 'a'; case 'b': return 'b'; case 'c': return 'c'; case 'd': return 'd'; case 'e': return 'e'; case 'f': return 'f'; case 'g': return 'g'; case 'h': return 'h'; case 'i': return 'i'; case 'j': return 'j'; case 'k': return 'k'; case 'l': return 'l'; case 'm': return 'm'; case 'n': return 'n'; case 'o': return 'o'; case 'p': return 'p'; case 'q': return 'q'; case 'r': return 'r'; case 's': return 's'; case 't': return 't'; case 'u': return 'u'; case 'v': return 'v'; case 'w': return 'w'; case 'x': return 'x'; case 'y': return 'y'; case 'z': return 'z'; case '{': return '+['; case '|': return '+\\'; case '}': return '+]'; case '~': return '+`'; case '\n': return '{Enter}'; case '': return ' '; default: return ''; } }; keyboard.click(text .split('') .map(function (c) { return getMapping(c); }) .join('')); } exports.type = type; //# sourceMappingURL=KeyboardMouse.js.map