21 Commits

Author SHA1 Message Date
Jeff Williams
3c68f21f36
feat: add a doclet kind for enums 2025-01-12 15:06:45 -08:00
Jeff Williams
019aeb7478
refactor: miscellaneous cleanup/optimization 2025-01-01 09:49:47 -08:00
Jeff Williams
59d31d5176
fix: add type expression, not parsed type AST, to doclets
The AST was normally added as a non-enumerable property, `type.parsedType`, which caused many complications; most recently, I noticed that doclets don't retain this property when `DocletStore` proxies them. Better to just add the original type expression as `type.expression` and let templates parse it again as needed.
2024-12-24 16:49:16 -08:00
Jeff Williams
428ddcf521
refactor: create @jsdoc/name package to break dependency cycles
Tons of stuff depends on these methods; in contrast, these methods don't depend on any other JSDoc packages.
2024-12-15 15:08:06 -08:00
Jeff Williams
995fdae3d8
refactor: use env instead of deps or dependencies 2024-12-07 20:48:10 -08:00
Jeff Williams
c3344a7be9
refactor: rename Tag#dependencies to Tag#env 2024-12-07 15:05:33 -08:00
Jeff Williams
3652d69bc5
refactor: rename Dictionary.fromConfig() to Dictionary.fromEnv() 2024-12-07 14:30:05 -08:00
Jeff Williams
959dc4f296
fix(jsdoc-tag): prevent ReDOS
Verified with https://github.com/NicolaasWeideman/RegexStaticAnalysis.
2023-12-21 13:49:36 -08:00
Jeff Williams
2a5ae15ed3
refactor: memoize type-related functions
I did some quick-and-dirty profiling, and these functions made up ~2% of the flamegraph, mostly for when they called through to the type parser; also, it's likely that they'll be called repeatedly with many of the same inputs. Memoizing the functions cuts them to ~1% of the flamegraph.
2023-12-10 17:37:36 -08:00
Jeff Williams
5a74ffd016
chore(jsdoc-eslint-config): move packages to the correct package.json file; enable Prettier; fix linter issues 2023-11-25 10:28:22 -08:00
Jeff Williams
75d1cbdf91
feat(jsdoc-tag): add includesInlineTag method 2023-11-21 20:44:25 -08:00
Jeff Williams
89f2c72da4
refactor: provide logging functions in dependencies; stop using EventBus
These changes enable templates to use the logging functions even if they're not installed in the same `node_modules` directory as JSDoc.

Includes API changes to various modules and functions that didn't have access to the dependency object. Most notably, you now call a function to retrieve tag definitions, rather than just using an exported object as-is.
2023-11-15 17:43:21 -08:00
Jeff Williams
5e4f999497
refactor: don't use deprecated RegExp.$1...$9 properties
Plus some miscellaneous cleanup.
2023-10-11 16:40:23 -07:00
Jeff Williams
954d17f87c
feat(jsdoc-doclet): emit events when certain doclet properties change 2023-09-10 14:56:27 -07:00
Jeff Williams
c04508f295
refactor: migrate to ES modules 2023-02-28 20:12:24 -08:00
Jeff Williams
eccb0a53e1
refactor: move tag dictionary to @jsdoc/tag package 2023-01-21 13:24:34 -08:00
Jeff Williams
775a4195b5
refactor: move tag definitions to @jsdoc/tag package 2023-01-21 13:12:31 -08:00
Jeff Williams
913f8841e0
refactor: move Tag class and tag validator to @jsdoc/tag 2023-01-15 19:45:08 -08:00
Jeff Williams
8c6aad8440
chore: add license headers, and a CI check for their presence 2023-01-08 16:11:38 -08:00
Jeff Williams
1305499207 chore: use Prettier to format source files 2021-09-19 13:20:31 -07:00
Jeff Williams
6dcd879ade refactor(jsdoc): move tag and inline to new @jsdoc/tag package 2020-12-24 17:37:37 -08:00