nuǝɯ pǝɥsᴉꞁod mǝu

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

    0.2.0 • Public • Published

    readts

    build status npm version

    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:

    new( ) ClassSpec <>
     ▪ spec SymbolSpec

    Properties:

    .name string
    Class name.
    .pos SourcePos

    .construct FunctionSpec
    Constructor function.
    .methodList FunctionSpec[]
    Public methods.
    .propertyList 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? FormatHook

    Class FunctionSpec

    Function or method with any number of overloaded signatures.
    Source code: <>

    Methods:

    new( ) FunctionSpec <>
     ▪ spec SymbolSpec

    Properties:

    .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.
    .optional boolean
    Interface members and function / method parameters may be optional.
    .doc string
    JSDoc comment.

    Class ModuleSpec

    Module or source file.
    Source code: <>

    Methods:

    .isEmpty( ) boolean <>
    Test if nothing is exported.

    Properties:

    .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? string

    Interface RefSpec

    Source code: <>

    Properties:

    .name? string
    .symbol? Symbol
    .class? ClassSpec

    Class SignatureSpec

    Function or method signature defining input and output types.
    Source code: <>

    Methods:

    new( ) SignatureSpec <>
     ▪ pos SourcePos
     ▪ returnType TypeSpec
     ▪ doc string

    Properties:

    .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 number

    Class TypeSpec

    Type definition.
    Source code: <>

    Methods:

    .format( ) string <>
    Convert to string, with optional hooks replacing default formatting code.
     ▫ hooks? FormatHooks
     ▫ needParens? boolean

    Properties:

    .name string
    Name of the type, only present if not composed of other type or class etc.
    .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

    The MIT License

    Copyright (c) 2016 BusFaster Ltd

    Keywords

    none

    Install

    npm i readts

    DownloadsWeekly Downloads

    24

    Version

    0.2.0

    License

    MIT

    Unpacked Size

    40.1 kB

    Total Files

    21

    Last publish

    Collaborators

    • jjrv