browser-sync-tal

0.0.6 • Public • Published

BrowserSync TAL Plugin

Plugin that provides client-side scripts for BrowserSync, supporting the broadcast of keypresses to any number of TAL applications.

BrowserSync (with this TAL plugin) allows us to launch a TAL application on an unlimited number of real devices, and then control all those devices in synchronisation with a single remote control. Each device will receive your keypress event - allowing mass testing across devices.

What is TAL?

TAL

TAL was developed internally within the BBC as a way of vastly simplifying TV application development whilst increasing the reach of BBC TV applications such as iPlayer. Today all of the BBC's HTML-based TV applications are built using TAL.

How do I get it setup?

  1. Install BrowserSync:

npm install -g browser-sync

  1. Install the BrowserSync TAL plugin:

npm install -g browser-sync-tal

  1. Create a config file (you could check this into your application codebase):
# browser-sync-iplayer.conf
module.exports = {
    "proxy": "www.bbc.co.uk/iplayer",
    "plugins": [
        "browser-sync-tal"
    ]
};
  1. Run BrowserSync:

browser-sync start --config browser-sync-iplayer.conf

  1. Get each device to load the URL output in your console labeled "External".

You could do this via your TVX page.

  1. Grab a remote for any one of the devices under-test and press some keys. Your keypresses will be broadcast to all the other devices.

Use cases of BrowserSync

  • Live feedback of CSS or JS changes
  • Regression testing prior to a release
  • Explorative testing, discovering differences between different devices.

How does it work?

  • BrowserSync establishes a 2-way communication channel between each device and your computer.

  • This plugin listens for keypress events and derives a TAL keyname using the keyboard mapping config for your device (e.g. VK_UP or VK_DOWN).

  • With this device-agnostic keyname we broadcast it over the network to all other devices using SocketIO.

  • Upon receiving a network-keypress, we emit a TAL keypress event. From this point onwards your application will behave just as if it had received a normal IR remote control command.

Readme

Keywords

none

Package Sidebar

Install

npm i browser-sync-tal

Weekly Downloads

0

Version

0.0.6

License

none

Last publish

Collaborators

  • rossawilson