Package Exports
- @rokucommunity/bslint
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@rokucommunity/bslint) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
bslint - BrighterScript Lint
brighterscript is a Roku BrightScript compiler featuring many diagnostics out of the box: syntax check, function calls validation, script imports verification...
bslint is:
- a CLI tool to lint your code without compiling your project,
- a
brighterscriptplugin offering additional insights on your code.
Installation
You need Node 10+ and npm or yarn:
# if you don't have a package.json
npm init -y
# install modules
npm install brighterscript @rokucommunity/bslintAdd the plugin to your bsconfig.json file in the root of your project,
or create a minimal file like that:
{
"plugins": [ "@rokucommunity/bslint" ]
}Command line interface (CLI)
The bslint command will run the BrighterScript compiler without publishing
step, only outputing the diagnostics.
Note: the CLI can be used without adding the bslint plugin; you will only
get the default brighterscript diagnostics.
npx bslint --help
# lint with default options
npx bslintor add a npm script in package.json, e.g.:
{
...
"scripts": {
"lint": "bslint"
}
...
}and call npm run lint.
Rules
Linting rules can be set in a bslint.json file in the root of your project.
Default rules:
{
"rules": {
"assign-all-paths": "error",
"unsafe-path-loop": "error",
"unsafe-iterators": "error",
"unreachable-code": "info",
"case-sensitivity": "warn",
"unused-variable": "warn",
"consistent-return": "error"
}
}Valid values for the rules severity are: error | warn | info | off.
Rules:
assign-all-paths: a variable is not assigned in all the possible code paths,if a then b = "something" end if print b ' errorunsafe-path-loop: loops are considered as unsafe code paths: assignment in a loop may not happen.for i = 0 to n b = "something" end if print b ' b may not have been assignedunsafe-iterators: loop iterator variable should not be used outside a loopfor i = 0 to n b = "something" end if print i ' value could be invalidcase-sensitivity: inform of inconsistent variable casingunused-variable: inform of variable being set but never usedunreachable-code: inform of unreachable codereturn print "is unreachable"consistent-return: verifies consistency ofsub/functionreturned values (missing return, missing value, returned value while function isas void,...)