apidoc-plugin-ts-klg

A plugin for apidoc leveraging TypeScript interfaces.

Usage no npm install needed!

<script type="module">
  import apidocPluginTsKlg from 'https://cdn.skypack.dev/apidoc-plugin-ts-klg';
</script>

README

apidoc-plugin-ts

Build Status npm Greenkeeper badge

A plugin for apidoc that injects @apiSuccess params from TypeScript interfaces. Supports extended and nested interfaces.

Getting started

npm install --save-dev apidoc apidoc-plugin-ts

A custom api-doc param "@apiInterface" is exposed:

@apiInterface (optional path) {INTERFACE_NAME} REPLACE-API-PARAM

Example

Given the following interface:

filename: ./employers.ts

export interface Employer {
  /**
   * Employer job title
   */
  jobTitle: string;
  /**
   * Employer personal details
   */
  personalDetails: {
    name: string;
    age: number;
  }
}

and the following custom param:

 @apiInterface (./employers.ts) {Person}

under the hood this would transpile to:

 @apiSuccess {String} jobTitle Job title
 @apiSuccess {Object} personalDetails Empoyer personal details
 @apiSuccess {String} personalDetails.name
 @apiSuccess {Number} personalDetails.age

Notes

  • If the Person interface is defined in the same file then drop the path e.g @apiInterface {Person}.
  • REPLACE-API-PARAM is optional and defaults to apiSuccess.