@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.

Readme

Keywords

none

Package Sidebar

Install

npm i @abcnews/dev-proxy

Weekly Downloads

4

Version

1.2.1

License

MIT

Unpacked Size

119 kB

Total Files

64

Last publish

Collaborators

  • ashkyd
  • jtfell
  • phocks
  • andrewkesper
  • drzax