module-exports
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

module-exports

Build Coverage Downloads

🐉 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?

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 node
  • nameDisplay (string) — serialized symbol name to sort on
  • nameDisplayPrefix (string) — prefix to display before name
  • nameDisplaySuffix (string) — suffix to display after name

Result

Result.

Fields
  • messages (Array<VFileMessage>) — messages
  • symbols (Array<Symbol>) — symbols

Symbol

Value with name.

Extends
  • Name
  • Value

Value

Value without name.

Fields
  • 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

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:

Security

This package is safe.

Contribute

Yes please! See How to Contribute to Open Source.

License

MIT © Titus Wormer

Package Sidebar

Install

npm i module-exports

Weekly Downloads

55

Version

2.0.0

License

MIT

Unpacked Size

162 kB

Total Files

184

Last publish

Collaborators

  • wooorm
  • mattdesl