Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tweak stripJsonComments, add README license info #13

Merged
merged 1 commit into from
Dec 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 20 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# JSDoc Command Line Interface Wrapper

Wrapper for the [jsdoc][cli] command line tool for generating [JSDoc][] HTML
Wrapper for the [`jsdoc`][cli] command line tool for generating [JSDoc][] HTML
output. Removes the existing destination directory if it exists, runs `jsdoc`,
and emits the relative path to the generated `index.html` file.

Expand All @@ -14,9 +14,9 @@ Source: <https://github.com/mbland/jsdoc-cli-wrapper>

## Installation

You probably want to install the [jsdoc CLI][cli] first, though the wrapper will
kindly suggest you do so if it can't find it. Using [pnpm][] to install it once
for all your local projects:
You probably want to install the [`jsdoc` CLI][cli] first, though the wrapper will
kindly suggest you do so if it can't find it. Using [`pnpm`][pnpm] to install it
once for all your local projects:

```sh
pnpm add -g jsdoc
Expand Down Expand Up @@ -70,14 +70,14 @@ While admittedly minor annoyances, they're still annoyances:
`jsdoc` doesn't have any command line options to deal with either of these
issues. Not even `--verbose` nor `--debug` will show the path to `index.html`.

This wrapper resolves both of those minor annoyances.
This wrapper resolves both of these minor annoyances.

## Examples

### This project

This project's ['jsdoc' script](./package.json) uses [jsdoc.json](./jsdoc.json)
as its configuration file, resulting in:
[The 'jsdoc' script from this project's `package.json`](./package.json) uses
[`jsdoc.json`](./jsdoc.json) as its configuration file, resulting in:

```sh
$ pnpm jsdoc
Expand Down Expand Up @@ -198,7 +198,7 @@ I developed this while experimenting with JSDoc on
the CLI was silent when it came to reporting where it emitted its output.

My first version of the wrapper was a short [Bash][] script, which is available
here as [orig/jsdoc.sh](./orig/jsdoc.sh). It was short and to the point, and
here as [`orig/jsdoc.sh`](./orig/jsdoc.sh). It was short and to the point, and
used variations of `sed` and `find` that I'd somehow never used before. (In
fact, that's the main reason why I'm keeping it around, for reference.)

Expand All @@ -207,6 +207,16 @@ as robust as the [Node.js][] version in this package. It also wasn't natively
portable to Windows. So I decided to dig in and make it so, using it as a
Node.js, JSDoc, and [npm packaging][] exercise as well.

## Copyright

&copy; 2023 Mike Bland &lt;<mbland@acm.org>&gt; (<https://mike-bland.com/>)

## License

Licensed under the [Mozilla Public License, v. 2.0][mpl-20], included in this
repository as [LICENSE.txt](./LICENSE.txt). See the [MPL 2.0 FAQ][mpl-faq] for a
higher level explanation.

[JSDoc]: https://jsdoc.app/
[cli]: https://github.com/jsdoc/jsdoc
[coveralls-jsdw]: https://coveralls.io/github/mbland/jsdoc-cli-wrapper?branch=main
Expand All @@ -226,3 +236,5 @@ Node.js, JSDoc, and [npm packaging][] exercise as well.
[Bash]: https://www.gnu.org/software/bash/
[Node.js]: https://nodejs.org/
[npm packaging]: https://docs.npmjs.com/packages-and-modules
[mpl-20]: https://mozilla.org/MPL/2.0/
[mpl-faq]: https://www.mozilla.org/MPL/2.0/FAQ/
4 changes: 2 additions & 2 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,8 @@ export function stripJsonComments(jsonStr) {
inString = curChar !== '"' || escaped
escaped = curChar === '\\' && !escaped
} else if (inComment) {
if ((inComment === 'line' && curChar === '\n') ||
(inComment === 'block' && prevChar === '*' && curChar === '/')) {
if ((curChar === '\n' && inComment === 'line') ||
(curChar === '/' && inComment === 'block' && prevChar === '*')) {
inComment = null
}
if (isNotWhitespace) curChar = ' '
Expand Down