@snipcart/readts
v3.0.0-develop6
Published
TypeScript exported definitions parser
Downloads
1
Readme
readts
This is a TypeScript exported class, function, type and documentation parser. It outputs everything needed to automatically generate documentation and better understand a project's public API. Information is extracted using TypeScript's Compiler API.
Usage
import * as readts from 'readts';
var parser = new readts.Parser();
// Read configuration used in the project we want to analyze.
var config = parser.parseConfig('tsconfig.json');
// Modify configuration as needed, for example to avoid writing compiler output to disk.
config.options.noEmit = true;
// Parse the project.
var tree = parser.parse(config);
The output is a list of ModuleSpec
objects, each with exported classes and interfaces (ClassSpec
),
functions (FunctionSpec
) and variables (IdentifierSpec
).
Types of variables and function parameters are parsed to TypeSpec
objects,
pointing to correct ClassSpec
objects if applicable.
This allows cross-linking types to their definitions in generated documentation.
See charto/docts for a documentation generator using this parser.
API
Docs generated using docts
Class
ClassSpec
Class or interface and its members.
Source code:<>
Methods:
Properties:
.name string
Class name.
.pos SourcePos
.construct FunctionSpec
Constructor function.
.index IndexSpec
Index signature.
.methodList FunctionSpec[]
Public methods.
.propertyList IdentifierSpec[]
Public properties.
.extendList ClassSpec[]
Class extends
.exports ModuleSpec
Class exports
.doc string
JSDoc comment.Class
EnumSpec
Enum and its members.
Source code:<>
Methods:
new( ) ⇒ EnumSpec
<>
▪ spec SymbolSpec
.addMember( ) ⇒ void<>
▪ spec IdentifierSpecProperties:
.name string
Class name.
.pos SourcePos
.memberList IdentifierSpec[]
Public properties.
.doc string
JSDoc comment.Interface
FormatHooks
Hooks to change how parts of type definitions are converted to strings.
Source code:<>
Properties:
.unknown? FormatHook
.ref? FormatHook
.array? FormatHook
.union? FormatHook
.intersection? FormatHook
.generic? FormatHookClass
FunctionSpec
Function or method with any number of overloaded signatures.
Source code:<>
Methods:
new( ) ⇒ FunctionSpec
<>
▪ spec SymbolSpecProperties:
.name string
Function name.
.signatureList SignatureSpec[]
List of signatures, one for each overload.Class
IdentifierSpec
Property, function / method parameter or variable.
Source code:<>
Properties:
.name string
Identifier name.
.pos SourcePos
.type TypeSpec
Type definition.
.value? any
Literal type value
.optional boolean
Interface members and function / method parameters may be optional.
.doc string
JSDoc comment.Class
IndexSpec
Index signature.
Source code:<>
Properties:
.signature TypeSpec
Singature type.
.value TypeSpec
Value typeClass
ModuleSpec
Module or source file.
Source code:<>
Methods:
.isEmpty( ) ⇒ boolean
<>
Test if nothing is exported.Properties:
.enumList EnumSpec[]
Definitions of exported enums.
.classList ClassSpec[]
Definitions of exported classes.
.interfaceList ClassSpec[]
Definitions of exported interfaces.
.functionList FunctionSpec[]
Definitions of exported functions.
.variableList IdentifierSpec[]
Definitions of exported variables.Class
Parser
Main parser class with public methods, also holding its internal state.
Source code:<>
Methods:
.parseConfig( ) ⇒ ParsedCommandLine
<>
Parse a tsconfig.json file using TypeScript services API.
▪ tsconfigPath string
.parse( ) ⇒ ModuleSpec[]<>
Parse a TypeScript project using TypeScript services API and configuration.
▪ config ParsedCommandLine
▫ nameFilter? (pathName: string) => boolean
▫ extension? stringInterface
RefSpec
Source code:
<>
Properties:
.name? string
.symbol? Symbol
.class? ClassSpec
.enum? EnumSpecClass
SignatureSpec
Function or method signature defining input and output types.
Source code:<>
Methods:
new( ) ⇒ SignatureSpec
<>
▪ pos SourcePos
▪ returnType TypeSpec
▪ doc stringProperties:
.pos SourcePos
.paramList IdentifierSpec[]
List of parameters.
.returnType TypeSpec
Return type definition.
.doc string
JSDoc comment.Interface
SourcePos
Source code:
<>
Properties:
.sourcePath string
.firstLine number
.lastLine numberClass
TypeSpec
Type definition.
Source code:<>
Methods:
.format( ) ⇒ string
<>
Convert to string, with optional hooks replacing default formatting code.
▫ hooks? FormatHooks
▫ needParens? booleanProperties:
.name string
Name of the type, only present if not composed of other type or class etc.
.value? string | number
Value of the type, only present if literal type
.ref RefSpec
Definition of what the type points to, if available.
.unionOf TypeSpec[]
If the type is a union, list of the possible types.
.intersectionOf TypeSpec[]
If the type is an intersection, list of the possible types.
.arrayOf TypeSpec
If the type is an array, its element type.
.argumentList TypeSpec[]
Arguments of a generic type.
License
Copyright (c) 2016- readts authors.