webdoc-labs / webdoc

Documentation generator for the web
https://www.webdoclabs.com
Other
79 stars 9 forks source link

Bug parsing TypeScript parameter properties #98

Closed bigtimebuddy closed 3 years ago

bigtimebuddy commented 3 years ago

In TypeScript is valid to add access modifiers to the constructor arguments like this:

constructor(protected renderer: any) {}

Supports public, private, protected, and readonly.

Webdoc does not parse these arguments correctly. Resulting in a stack like this:

(node:4625) UnhandledPromiseRejectionWarning: Error: "renderer" is not a parameter & cannot come after the last parameter ""
    at Object.validateParameters [as validate] (/home/runner/work/***/***/node_modules/@webdoc/parser/lib/validators/validate-parameters.js:38:13)
    at /home/runner/work/***/***/node_modules/@webdoc/parser/lib/validators/index.js:22:45
    at Array.forEach (<anonymous>)
    at validate (/home/runner/work/***/***/node_modules/@webdoc/parser/lib/validators/index.js:22:14)
    at symbolToDoc (/home/runner/work/***/***/node_modules/@webdoc/parser/lib/transformer/symbol-to-doc.js:215:29)
    at transformRecursive (/home/runner/work/***/***/node_modules/@webdoc/parser/lib/transformer/transform.js:19:40)
    at transformRecursive (/home/runner/work/***/***/node_modules/@webdoc/parser/lib/transformer/transform.js:35:7)
    at transformRecursive (/home/runner/work/***/***/node_modules/@webdoc/parser/lib/transformer/transform.js:35:7)
    at parse (/home/runner/work/***/***/node_modules/@webdoc/parser/lib/parse.js:110:28)
    at main (/home/runner/work/***/***/node_modules/@webdoc/cli/lib/index.js:125:23)

Reference: https://www.typescriptlang.org/docs/handbook/classes.html#parameter-properties