🐉 Note: this is new software doing complex things that hasn’t been used much. Here be dragons!
Get the exports of a module.
- What is this?
- When should I use this?
- Install
- Use
- API
- Compatibility
- Version
- Thanks
- Security
- Contribute
- License
This package finds out what is exposed from a module.
You can use this to programatically figure out what can be used from a module. Primarily, so that you can then generate docs.
This package is ESM only. In Node.js (version 18+), install with npm:
npm install module-exports
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>`).
This package exports the identifiers
createFinder
and
defaultFormat
.
It exports the TypeScript types
Name
,
Result
,
Symbol
, and
Value
.
There is no default export.
Name 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.
messages
(Array<VFileMessage>
) — messagessymbols
(Array<Symbol>
) — symbols
Value with name.
Name
Value
Value without name.
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
Create a finder.
There are no parameters.
Finder ((url: Readonly<URL>) => Promise<Result>
).
Format symbols.
symbols
(ReadonlyArray<Symbol>
) — list of symbols
Promise to an mdast tree of formatted symbols (Promise<Root>
).
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.
module-exports
does not strictly follow SemVer yet
while being super new.
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
This package is safe.
Yes please! See How to Contribute to Open Source.