module-exports
🐉 Note: this is new software doing complex things that hasn’t been used much. Here be dragons!
Get the exports of a module.
Contents
- What is this?
- When should I use this?
- Install
- Use
- API
- Compatibility
- Version
- Thanks
- Security
- Contribute
- License
What is this?
This package finds out what is exposed from a module.
When should I use this?
You can use this to programatically figure out what can be used from a module. Primarily, so that you can then generate docs.
Install
This package is ESM only. In Node.js (version 18+), install with npm:
npm install module-exportsUse
import {toMarkdown} from 'mdast-util-to-markdown'
import {createFinder, defaultFormat} from 'module-exports'
const finder = createFinder()
const result = await finder(new URL('index.js', import.meta.url))
const tree = await defaultFormat(result.symbols)
console.log(toMarkdown(tree))Yields:
### `Name`
Name fields.
###### Fields
* `name` (`Identifier | NumericLiteral | StringLiteral`)
— name node
* `nameDisplay` (`string`)
— serialized symbol name to sort on
* `nameDisplayPrefix` (`string`)
— prefix to display before name
* `nameDisplaySuffix` (`string`)
— suffix to display after name
<!-- … -->
### `defaultFormat(symbols)`
Format symbols.
###### Parameters
* `symbols` (`ReadonlyArray<Symbol>`)
— list of symbols
###### Returns
Promise to an mdast tree of formatted symbols (`Promise<Root>`).API
This package exports the identifiers
createFinder and
defaultFormat.
It exports the TypeScript types
Name,
Result,
Symbol, and
Value.
There is no default export.
Name
Name fields.
Fields
name(Identifier | NumericLiteral | StringLiteral) — name nodenameDisplay(string) — serialized symbol name to sort onnameDisplayPrefix(string) — prefix to display before namenameDisplaySuffix(string) — suffix to display after name
Result
Result.
Fields
messages(Array<VFileMessage>) — messagessymbols(Array<Symbol>) — symbols
Symbol
Value with name.
Extends
NameValue
Value
Value without name.
Fields
description(Root | undefined) — symbol descriptionheritage(Array<Value>) — things this inherits fromparameters(Array<Symbol>) — parametersproperties(Array<Symbol>) — propertiesreturn(Value | undefined) — return valuetypeExpression(Type) — type of value itselftypeExpressionDisplay(string) — seralized type
createFinder()
Create a finder.
Parameters
There are no parameters.
Returns
Finder ((url: Readonly<URL>) => Promise<Result>).
defaultFormat(symbols)
Format symbols.
Parameters
symbols(ReadonlyArray<Symbol>) — list of symbols
Returns
Promise to an mdast tree of formatted symbols (Promise<Root>).
Compatibility
This projects is compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of
Node.
This means we try to keep the current release line, module-exports@2,
compatible with Node.js 18.
Version
module-exports does not strictly follow SemVer yet
while being super new.
Thanks
Special thanks go out to:
- @allmaps and Royal Netherlands Academy of Arts and Sciences (KNAW) for funding the initial development
- @mattdesl for the package name
Security
This package is safe.
Contribute
Yes please! See How to Contribute to Open Source.