seer v4.1.0
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 seerNotes
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 |
9 months ago
11 months ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
13 years ago