seer

    3.4.0 • Public • Published

    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

    throttle(key, delay)Boolean

    Utility method allowing to throttle a user action based on a key and a minimun delay.

    send(type, payload)

    Low-level api leveraging window.postMessage

    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.

    clean()

    Clean listener. Can be useful in case you want to unregister upcoming events or liberate memory.

    listenFor(key, cb)

    Create a listener that will be called upon events of the given key.

    removeListener(cb)

    Remove an identity listener

    list(key, data)

    Creates a new indexed list. It works by index to get O(1) accessing and performance.

    listItem(key, itemKey, data)

    Creates an element in the indexed list, based on the itemKey.

    updateItem(key, itemKey, path, data)

    Update an item property, can be deeply nested.

    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.

    deleteItem(key, itemKey)

    Remove a specific item in a specific tab.

    addLog(key, itemKey, msg)

    Will create a log message to an item, that will be displayde with the current time.

    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

    Install

    npm i seer

    DownloadsWeekly Downloads

    10,510

    Version

    3.4.0

    License

    MIT

    Unpacked Size

    49.1 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar