13 Commits

Author SHA1 Message Date
Nate Fischer
964fb48e9e test: check for README changes in the unit tests
No change to logic. This checks for stale README in the unit tests
instead of by calling 'gendocs' directly.

The main goal is for GitHub CI to stop getting tripped up by
package-lock.json formatting changes. `npm install` sometimes overwrites
the package-lock file with a new format, and this breaks the
after-travis step.

Test: node_modules/.bin/ava test/docs.js
2025-11-18 22:25:05 -08:00
Nate Fischer
fca5f1b74d refactor: rewrite gendocs script without commands.js
The gendocs script no longer depends on commands.js. This now works by
iterating over source files and parsing them directly.

Partially related to issue #1160 and #1172.
Test: npm run gendocs
2025-02-20 01:49:29 -08:00
Nate Fischer
519308489c refactor: move exec-child logic into main function
No change to logic. This refactors the exec-child.js script to move all
of its main logic into a main() function. This function is only invoked
if the script is executed, not when it is imported.

Importing the script is now a NOOP instead of throwing an exception.
It's still not advisable to import the script, however this can be done
if absolutely necessary to trick JavaScript bundlers which try to prune
non-imported code files.

Partially related to issue #1160 and #1172.
2025-02-20 00:32:19 -08:00
Nate Fischer
57df38c6ea
chore(lint): update lint dependencies (#948)
This updates `eslint-config-airbnb-base` and `eslint-plugin-import`.
This also addresses lint errors these updates raise, and excludes
several rules.

This also adds a minor simplification to the gendocs script.

Test: npm run lint
Test: npm run gendocs
2019-07-12 12:36:55 -07:00
Nate Fischer
2d0428b1c9 Switch commands.json -> commands.js (#668)
WebPack has issues with importing JSON directly and using JavaScript
methods on it. For this reason, using the `.forEach()` method on the
imported JSON array caused a method-not-found error.

Instead, we can make this a real JavaScript array by keeping it in a
JavaScript file and exporting it as a field.

It should be noted that exporting it as `exports = [...]` does not work,
because Node won't actually interpret it as a JavaScript array (with
the required methods). So instead we can export it as
`exports.list = [...]` and access the `list` field to get the real
JavaScript array of command names.

Fixes #667
2017-02-28 01:34:51 -08:00
Nate Fischer
1548b3da00 refactor: list all commands in commands.json (#616)
* refactor: list all commands in commands.json

This also changes the order of commands in the docs, due to how I changed
the doc-generating script.

* fix lint error and alphabetize command list
2016-12-14 17:57:11 -08:00
Nate Fischer
2395214fee chore: switch to eslint (#504)
* chore: switch to eslint

* fix: works on older versions of NodeJS now

* chore: fix curly braces

* chore: fix indents and remove jshint references
2016-08-07 12:16:29 -07:00
Nate Fischer
57a9be2693 docs: comment code better to help contributors 2016-05-12 07:40:18 -07:00
Nate Fischer
50f72b0c3d chore: add "Team" section to README (#423) 2016-04-13 08:48:05 -07:00
Nate Fischer
6ebc2d3db7 refactor(shellstring): return consistent objects
- fix(string): no longer overrides string prototype
 - exec() now returns a ShellString object
2016-02-19 14:54:30 -08:00
Nate Fischer
ddff4692fd fix(gen-docs): fix issue where docs are generated wrong
This fixes an issue where the gen-docs script's sed() command would improperly
update the docs. Travis now checks that docs are generated properly.
2016-01-25 00:20:36 -08:00
Nate Fischer
03c30c6a1f fix: jshint works on Windows
run-tests.js previously relied on shell wildcard expansion, and did not specify
full paths. This uses common.expand to handle globbing internally, and specifies
the full path, so jshint can find all the files.
2016-01-18 21:36:41 -08:00
Artur Adib
561b1ea99c factoring docs, sed.js fix 2013-08-25 18:09:31 -04:00