π Note: this is new software doing complex things that hasnβt been used much. Here be dragons!
Get the exports of a module.
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
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 nameResult
Result.
messages
(Array<VFileMessage>
)
β messagessymbols
(Array<Symbol>
)
β symbolsSymbol
Value with name.
Name
Value
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 typecreateFinder()
Create a finder.
There are no parameters.
Finder ((url: Readonly<URL>) => Promise<Result>
).
defaultFormat(symbols)
Format symbols.
symbols
(ReadonlyArray<Symbol>
)
β list of symbolsPromise 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:
This package is safe.
Yes please! See How to Contribute to Open Source.
MIT Β© Titus Wormer