npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

dts-apigen

v2.0.1

Published

A d.ts and documentation generator for TypeScript and JavaScript projects.

Downloads

63

Readme

A .d.ts and documentation generator for TypeScript and JavaScript projects.

⚠️ Please note that DTS ApiGen is still in beta and not production ready.

Why

TypeScript is a powerful tool, but at the moment of writing, it prevents declaration files generation for JavaScript files.

This tool aims to offer a set of utils to generate .d.ts files starting from JS modules using JSDoc (checkout the supported tags list) to fill typings informations. It also provides a method to generate a single bundled declaration, useful for JS libraries and Api documentation.

Usage

Via CLI

DTS ApiGen is available as a CLI tool installing the module via NPM or Yarn:

$ npm install -g dts-apigen
# OR
$ yarn global add dts-apigen
$ dts-apigen --help

Usage: dts-apigen [options] [command]

Options:
  -V, --version                 output the version number
  -h, --help                    output usage information

Commands:
  generate [options] <file>     Generate declaration files
  bundle [options] <file>       Bundle all declaration files into a single .d.ts file
  documentate [options] <file>  Generate an API documentation markdown file

The generate command creates declaration files along your source files, unless a declarationDir has been specified in the tsconfig.json or the --out option has been used:

$ dts-apigen generate src/index.js --out types/

You can also build a single .d.ts file running:

$ dts-apigen bundle src/index.js --out typings.d.ts

The documentate command generates a bundle of the project on the fly and passes the typescript SourceFile result to a template function (by default it uses the built-in markdown generator):

$ dts-apign documentate src/index.js --out docs/API.md

Via Node

Install the package as Node dependency to use it programmatically:

$ npm install dts-apigen -D
# OR
$ yarn add dts-apigen -D

DTS ApiGen extends the TypeScript createProgram method and accepts all its options, as well as other custom transformers.

const { generate, bundle } = require('dts-apigen');
const { writeFileSync } = require('fs');
const { createPrinter } = require('typescript');

const result = generate(['src/index.js'], {
    declarationDir: 'types',
});

console.log(result.diagnostic);

// generate the bundle file
const sourceFile = bundle('src/index.js');
const code = createPrinter().printFile(resultFile);
writeFileSync('bundle.d.ts', code);

You can find the API documentation (generated with dts-apigen, of course) in the API.md file.

Supported tags

  • @abstract
  • @access
  • @async
  • @const
  • @enum
  • @param
  • @private
  • @property (synonyms: @prop)
  • @protected
  • @readonly
  • @return
  • @this
  • @typedef

Partially supported tags

  • @kind
  • @namespace (only for declarations)

License

DTS ApiGen is released under the MIT license.