UNPKG

typerbot

Version:

Flexible library for programmatic typing.

154 lines (78 loc) 5.2 kB
# Typerbot :robot: What is Typerbot? Typerbot is a flexible library designed to mimic keyboard input into any DOM Element. Built on `Async/Await` , Typerbot provides an intuitive API to let developers focus on unleashing their creativity instead of getting lost in the weeds. ## Features - Typerbot can mimic any input from a keyboard, allowing users to move their cursor, delete characters, and enter new characters into a provided field element. - Use handy utility functions to expedite your development process and write code in a more declarative manner. - Create visually interesting effects by combining provided callbacks with CSS. <h1>API</h1> #### Installation npm - `npm i typerbot` CDN - `https://cdn.jsdelivr.net/npm/typerbot@latest/dist/typerbot.min.js` ------------ ## Initialization ### Typerbot(fieldElement, [options]) **fieldElement**: `HTMLElement`, Element in which text will be entered. **options**: `Object`, settings used for given input. These will overwrite the default settings. ``` Javascript var settings = {} // put your settings here var myTyperBot = new TyperBot(Document.querySelector(".field-element"), settings) // default settings will be used if none are provided ``` ### Default Options | Property | Description | Type | Default Value | | ------------ | ------------ | ------------ | ------------ | | keystrokeInterval | controls the speed of inputs in Milliseconds | Number | 200 | | keystrokeDelay | amount of time in milliseconds that Typerbot.move(), Typerbot.delete(), Typerbot.deleteUntilDelimiter(), Typerbot.moveToStart(), Typer.moveToEnd() and Typerbot.deleteAll() will wait before executing | Number | 0 | | pauseDuration | amount of time in milliseconds that Typerbot.pause() will wait for | Number | 1000 | | cursorBlinkInterval | amount of time in milliseconds between cursor blinks | Number | 800 | | cursorClass | CSS class to be applied to the cursor element | String | "typerbot-cursor" | | html | will HTML passed into Typerbot.type() be parsed as HTML or as plaintext | Boolean | Hello | | cursor | controls whether the cursor is visible | Boolean | true | | cursorString | character that appears as cursor | String |"&#124;" | | afterLineComplete | callback that executes at the end of Typebot.type() | Function | `() => {}` | | beforeLineComplete | callback that executes at the start of Typebot.type() | Function | `() => {}` | | beforeKeyInput | callback that executes after Typerbot before a character is entered/deleted or the cursor is moved | Function | `() => {}` | | afterKeyInput | callback that executes after Typerbot after a character is entered/deleted or the cursor is moved | Function | `() => {}` | </br> </br> ## Methods </br> ### Typerbot.type(stringInput, [options]) : `Promise` Insert characters into the field element. - **stringInput**: `String`, string that will be entered into the field element. - **options**: `Object`, settings used for given input. These will overwrite the default settings as well as settings provided in the constructor. ------------ ### Typerbot.delete(numberOfCharactersToDelete, [options]) : `Promise` Delete a specified number of characters from the field element with the cursor as the starting point. - **numberOfCharactersToDelete**: `Number`, number of characters that will be deleted. - **options**: `Object`, settings used for given input. These will overwrite the default settings as well as settings provided in the constructor. ------------ ### Typerbot.deleteUntilDelimiter(delimiter, [options]) : `Promise` Deletes characters until the provided delimiter is encountered. - **delimiter**: `String`, Delimiter used to determine when to stop deleting characters. - **options**: `Object`, settings used for given input. These will overwrite the default settings as well as settings provided in the constructor. ------------ ### Typerbot.move(numberOfcharactersToMove, [options]) : `Promise` Move the cursor a specified number of positions. - **numberOfCharactersToMove**: `Number`, Element in which text will be entered - **options**: `Object`, settings used for given input. These will overwrite the default settings as well as settings provided in the constructor. ------------ ### Typerbot.moveToEnd([options]) : `Promise` Moves cursor to the end of the field element. - **options**: `Object`, settings used for given input. These will overwrite the default settings as well as settings provided in the constructor. ------------ ### Typerbot.clear() Clear all characters from fieldElement and resets Typerbot instance internal state. ------------ ### Typerbot.freeze() Hides cursor and prevents new inputs methods from being executed. ------------ ### Typerbot.unfreeze() Reverses the effects of Typerbot.freeze(). ------------ ### Typerbot.isFrozen() : `Boolean` Returns boolean indicating whether or not Typerbot instance is frozen. <div></div> #Try it out [Here!](http://https://jsfiddle.net/cerdman13/91swhnc2/4/ "Here!")