bsc-plugin-update-main-args
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

Update Main Args (Brighterscript Plugin)

build status

A Brighterscript plugin that injects properties into the argument of the main function - useful for adding deep links for debugging, for example.

NOTE: Only Supports Brighterscript Version 1

It works by injecting a single line of code as the first line the main() (or runUserInterface()) function , like this:

sub main(args)
    args.append(parseJson("{""extra"":""args here""}"))
    ...
end sub

Usage

In a Brighterscript project, install the plugin:

npm install -D bsc-plugin-update-main-args

Add it to the plugins list in bsconfig.json, and set up the arguments to load:

{
    "plugins": ["bsc-plugin-update-main-args"],
    "updateMainArgs": {
        "args": {
            "mediaType": "movie",
            "contentId": "test-1234"
        }
    }
}

Read Args from .env

This plugin can also read arguments from an .env file (or from your system's environment variables).

Create a .env file with the variable MAIN_ARGS. It should be in JSON format:

MAIN_ARGS={"mediaType":"movie","contentId":"test-1234"}

Change the bsconfig options to load the environment variable:

{
    "plugins": ["bsc-plugin-update-main-args"],
    "updateMainArgs": {
        "useEnv": true,
        "envFilePath": ".env"
    }
}

Full Configuration Options

{
    "updateMainArgs": {
        "useEnv": true, // read environment variable
        "envFilePath": ".env", // path to specific .env file to read
        "envVar": "MAIN_ARGS", // The environment variable to read
        "args": {} // Just add args directly
    }
}

Example App

There is an test app showing how the plugin works in ./testapp (with the caveat that it is loading the plugin directly from source instead of through npm).

You can run the test app through VSCode:

  1. npm install to install all dependencies
  2. Open VSCode, run debug configuration Debug Test App

It will display all the arguments that werethe following screen:

Test App Screenshot

Test App configuration (./testapp/bsconfig.json):

{
    "updateMainArgs": {
        "useEnv": true,
        "envFilePath": "./testenv",
        "args": {
            "extra": "args here",
            "extra_params": {
                "can": "include",
                "objects": "too"
            }
        }
    }
}

Environment variables file (./testapp/testenv):

MAIN_ARGS={"mediaType":"movie","contentId":"abc1234"}

Package Sidebar

Install

npm i bsc-plugin-update-main-args

Weekly Downloads

5

Version

0.2.0

License

ISC

Unpacked Size

85.8 kB

Total Files

9

Last publish

Collaborators

  • markwpearce