@abcnews/dev-proxy
TypeScript icon, indicating that this package has built-in type declarations

1.2.1 • Public • Published

Dev script proxy

Provides the capability to override an news-projects script with a different script with settings defined in localStorage.

The script being overridden needs to import and use this library:

import { proxy } from '@abcnews/dev-proxy';

function init() {
  // The code that kicks off your script goes here.
}

proxy('project-name').then(init);

To put the override into effect localStorage needs to contain an entry with key proxy_<project-name> that contains the URL of the script to override with.

How does it work?

The proxy function returns a promise that will either:

  • resolve successfully, indicating that the script initialisation should go ahead (i.e. the .then(init) part of the above implementation example), or
  • be rejected, indicating that an alternative script has been successfully identified and added to the document and the init function should not be run.

For the proxy function to successfully identify a script to run instead a few criteria need to be met:

  • The script importing the proxy function should not have a NODE_ENV of 'development' (this prevents infinite loops when this proxy function is used on a dev server.
  • The script should not be running on a production URL.
  • localStorage must contain an entry identifying a suitable replacement hosted on an ABC url (including localhost aliases that include abc.net.au).

Usage

As of version 1.2.0 pressing the key combination Alt-M when you're in an approprate dev or preview environment offers an easy way to set the appropriate localStorage values to proxy relevant scripts on the page.

/@abcnews/dev-proxy/

    Package Sidebar

    Install

    npm i @abcnews/dev-proxy

    Weekly Downloads

    1

    Version

    1.2.1

    License

    MIT

    Unpacked Size

    119 kB

    Total Files

    64

    Last publish

    Collaborators

    • ashkyd
    • jtfell
    • phocks
    • andrewkesper
    • drzax