Runs static analysis using @exercism/static-analysis on exercises from the @exercism/javascript track.
Clone this repository and then run:
yarn installYou'll need at least Node LTS for this to work.
yarn buildYou can run this either via yarn:
yarn analyze:bat --debug --console two-fer ~/path/to/solution/folderOr directly via the provided shell script:
./bin/analyze.sh --debug --console two-fer ~/path/to/solution/folderAdd the --debug and --console flags to get output in the terminal window.
To create the image, execute the following command from the repository root:
docker build -t exercism/javascript-analyzer .To run from docker pass in the solutions path as a volume and execute with the necessary parameters:
docker run -v $(PATH_TO_SOLUTION):/solution exercism/javascript-analyzer ${SLUG} /solutionExample:
docker run -v ~/solution-238382y7sds7fsadfasj23j:/solution exercism/javascript-analyzer two-fer /solutionWe use various tools to maintain this repository and this analyzer.
In order to contribute to the code of this track, you'll need NodeJS (LTS or higher) installed, with some of the bin/* files having extra dependencies, as listed in their file-level commentary.
./bin/analyze.sh two-fer ~/folder/to/solution -dcpThis runs the analyzer using two-fer as exercise and a path to a solution.
Most scripts, including this one, accept a wide range of flags to change or enhance the behaviour, as coded in execution_options.ts.
Run with the -h / --help flag to get a list of flags and their description.
./bin/analyze.sh --helpYou'll most likely want -dcp (--debug,--console and --pretty) during development, which enables console output (instead of stdout/stderr) and shows logger.log as well as logger.error and logger.fatal.
It will also format the output JSON with 2 space indentation, both in the output file and the console.
If you wish to preview the actual messages, pass in --noTemplates to use the analyzer CommentFactories to generate actual messages.
If the comment factories are kept in-sync with website-copy, it will be the exact same output as on the site.
./bin/batch.sh two-fer -cpRuns all the fixtures in ~/test/fixtures/two-fer through the analyzer, giving a summary at the end with all results.
This places an analysis.json in the source fixture folder.
You'll most likely want -cp (--console and --pretty) during development, which enables console output (instead of stdout/stderr) and formats the
output JSON with 2 space indentation.
If you wish to preview the actual messages, pass in --noTemplates to use the analyzer CommentFactories to generate actual messages.
If the comment factories are kept in-sync with website-copy, it will be the exact same output as on the site.
./bin/remote.sh https://exercism.io/tracks/javascript/exercises/two-fer/solutions/df3bb5d7131c44ea9c62206cc8d6c225 -dcp --dryYou need the exercism cli in order for this to work. It takes an exercism solution url and downloads it using the exercism cli.
It then runs the analyzer on it.
You'll most likely want -dcp --dry (--debug, --pretty, --console and dry run) during development, which enables console output (instead of
stdout/stderr), shows logger.log as well as logger.error and logger.fatal, pretty prints the JSON output and disables writing the output
to analysis.json.
You can pass the following type of URLs:
- Published solutions:
/tracks/javascript/exercises/<slug>/<id> - Mentor solutions:
/mentor/solutions/<id> - Your solutions:
/my/solutions/<id> - Private solutions:
/solutions/<id>
If you wish to preview the actual messages, pass in --noTemplates to use the analyzer CommentFactories to generate actual messages.
If the comment factories are kept in-sync with website-copy, it will be the exact same output as on the site.