🐉 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 node -
nameDisplay
(string
) — serialized symbol name to sort on -
nameDisplayPrefix
(string
) — prefix to display before name -
nameDisplaySuffix
(string
) — suffix to display after name
Result.
-
messages
(Array<VFileMessage>
) — messages -
symbols
(Array<Symbol>
) — symbols
Value with name.
Name
Value
Value without name.
-
description
(Root | undefined
) — symbol description -
heritage
(Array<Value>
) — things this inherits from -
parameters
(Array<Symbol>
) — parameters -
properties
(Array<Symbol>
) — properties -
return
(Value | undefined
) — return value -
typeExpression
(Type
) — type of value itself -
typeExpressionDisplay
(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.