Class ProjectReflection

A reflection that represents the root of the project.

The project reflection acts as a global index, one may receive all reflections and source files of the processed project through this reflection.

Hierarchy (view full)



flags: Models.ReflectionFlags = ...
id: number

Unique id of this reflection.

The kind of this reflection.

name: string

The symbol name of this reflection.

reflections: {
    [id: number]: Models.Reflection;
} = {}

A list of all reflections within the project. DO NOT MUTATE THIS OBJECT. All mutation should be done via registerReflection and removeReflection to ensure that links to reflections remain valid.

This may be replaced with a Map<number, Reflection> someday.

Type declaration

variant: "project" = "project"

Discriminator representing the type of reflection represented by this object.

anchor?: string

The name of the anchor of this child. TODO: Reflections shouldn't know anchors exist. Move this to a serializer.

categories?: Models.ReflectionCategory[]

All children grouped by their category.

The children of this reflection.

comment?: Models.Comment

The parsed documentation comment attached to this reflection.

All children grouped by their kind.

hasOwnDocument?: boolean

Is the url pointing to an individual document?

When FALSE, the url points to an anchor tag on a page of a different reflection. TODO: Reflections shouldn't know how they are rendered. Move this to the correct serializer.

packageName?: string

The name of the package that this reflection documents according to package.json.

packageVersion?: string

The version of the package that this reflection documents according to package.json.

The reflection this reflection is a child of.

The contents of the file of the project when found.

url?: string

The url of this reflection in the generated documentation. TODO: Reflections shouldn't know urls exist. Move this to a serializer.


  • Return the full name of this reflection. Intended for use in debugging. For log messages intended to be displayed to the user for them to fix, prefer getFriendlyFullName instead.

    The full name contains the name of this reflection and the names of all parent reflections.


    • separator: string = "."

      Separator used to join the names of the reflections.

    Returns string

    The full name of this reflection.

  • Registers the given reflection so that it can be quickly looked up by helper methods. Should be called for every reflection added to the project.


    Returns void

  • Removes a reflection from the documentation. Can be used by plugins to filter reflections out of the generated documentation. Has no effect if the reflection is not present in the project.


    Returns void

  • Traverse most potential child reflections of this reflection.

    Note: This may not necessarily traverse child reflections contained within the type property of the reflection, and should not be relied on for this. Support for checking object types will likely be removed in v0.26.

    The given callback will be invoked for all children, signatures and type parameters attached to this reflection.


    • callback: TraverseCallback

      The callback function that should be applied for each child reflection.

    Returns void