module-exports
v2.2.1
Published
Get the exports of a module
Downloads
144
Readme
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-exports
Use
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
Name
Value
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.