seer
v4.0.9
Published
A customizable devtool solution
Downloads
11,744
Readme
Seer API
This library provides an abstraction around the Window.postMessage API to interact with the Seer extension. You could use this module if you have a framework or application that wants to display debugging information in the Seer Chrome extension.
Install
Simply download the package from the npm registry
yarn add seer
Notes
The extension will declare a __SEER_INITIALIZED__
boolean on the window,
that you can use to check if the extension is installed and prevent any useless
processing in production or for real-users.
Internal
How the communication is done exactly relies on the bridge, that you can checkout in its dedicated directory. The following schema represent the complete data flow:
Functions
isReady() ⇒ Boolean
Ready check for Seer initialization
Kind: global function
throttle(key, delay) ⇒ Boolean
Utility method allowing to throttle a user action based on a key and a minimun delay.
Kind: global function
| Param | Type | Description | | --- | --- | --- | | key | String | A unique key | | delay | Number | The minimal delay to throttle |
send(type, payload)
Low-level api leveraging window.postMessage
Kind: global function
| Param | Type | Description | | --- | --- | --- | | type | String | The action type | | payload | Any | The action payload |
init()
Initilize window listener. There will be only one for the whole process to prevent too many registrations.
This method will be called automatically if you use the listenFor
method.
Kind: global function
clean()
Clean listener. Can be useful in case you want to unregister upcoming events or liberate memory.
Kind: global function
listenFor(key, cb)
Create a listener that will be called upon events of the given key.
Kind: global function
| Param | Type | Description | | --- | --- | --- | | key | String | The unique tab key | | cb | function | A callback that will receive the message payload |
removeListener(cb)
Remove an identity listener
Kind: global function
| Param | Type | Description | | --- | --- | --- | | cb | function | The callback to remove |
list(key, data)
Creates a new indexed list. It works by index to get O(1) accessing and performance.
Kind: global function
| Param | Type | Description | | --- | --- | --- | | key | String | The key of the tab | | data | Object | The indexed object |
listItem(key, itemKey, data)
Creates an element in the indexed list, based on the itemKey.
Kind: global function
| Param | Type | Description | | --- | --- | --- | | key | String | The key of the tab | | itemKey | String | The key of the item | | data | Any | The value of the item |
updateItem(key, itemKey, path, data)
Update an item property, can be deeply nested.
Kind: global function
| Param | Type | Description | | --- | --- | --- | | key | String | The key of the tab | | itemKey | String | The key of the item | | path | String | The path of the variable you want to update | | data | Object | The new value |
multiUpdate(key, itemKey, array)
Similar to updateItem, but allows to pass an array with {path,data} pairs for multiple update of the same item without having to send multiple messages.
Kind: global function
| Param | Type | Description | | --- | --- | --- | | key | String | The key of the tab | | itemKey | String | The key of the item | | array | Array | The array of updates | | array.path | String | The path for this update | | array.data | Object | The value of this update |
deleteItem(key, itemKey)
Remove a specific item in a specific tab.
Kind: global function
| Param | Type | Description | | --- | --- | --- | | key | String | They key of the tab | | itemKey | String | The key of the item |
addLog(key, itemKey, msg)
Will create a log message to an item, that will be displayde with the current time.
Kind: global function
| Param | Type | Description | | --- | --- | --- | | key | String | The key of the tab | | itemKey | String | The key of the item | | msg | String | The message to display |