New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More

maestro-roku

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

maestro-roku

A development platform for building roku channels in brighterscript


Version published
Weekly downloads
328
increased by234.69%
Maintainers
1
Weekly downloads
 
Created

A development platform for building roku channels in brighterscript.

build GitHub NPM Version

Why maestro?

Maestro Makes roku development easier, especially for experienced software engineers from other platforms:

I believe that experienced developers from android, ios, c#, web, node, etc, should be able to be productive on a roku app in no more than a week, just as they would on any other platform. So I wrote maestro to make that possible.

Maestro is built to:

  • Raise velocity
  • Increase productivity
  • Reduce learning
  • Simply cross-skilling
  • Make roku development more fun
  • Produce roku apps that can be maintained by non roku developer
  • Produce roku apps that can be unit tested easily
  • Write code that can be tested and breakpoint debugged, outside of SG views (which are slow as hell, and prone to crashing when breakpoint debugging)

Quick start

Docs

Maestro-roku docs can be found here

IMPORTANT!! ropm hook!

Because of the way that maestro plugin generates certain files, ropm can will cause errors when you install maestro. You will have to include a script to fix any of these broken files, and run it after you ropm hook.

files

scripts/maestro-ropm-hook.js
/* eslint-disable github/array-foreach */
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable @typescript-eslint/no-require-imports */
const fs = require('fs-extra');
const path = require('path');

let sourceDir = path.join(__dirname, '..', 'src', 'components', 'roku_modules', 'maestro');

try {
    fs.readdirSync(sourceDir).forEach(file => {
        let filePath = path.join(sourceDir, file);
        if (filePath.endsWith('Task.xml')) {

            let text = fs.readFileSync(filePath, 'utf8');
            let r = /\/roku_modules\/undefined/gim;
            text = text.replace(r, '/roku_modules/maestro');
            fs.writeFileSync(filePath, text);
        }
    });
} catch (e) {
}

package.json

change your ropm task, as follows. in package.json, scripts:

"ropm": "node scripts/maestro-ropm-hook.js ropm copy",

FAQs

Package last updated on 10 Mar 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts