7.29.8 • Published 9 months ago

@microsoft/api-extractor-model v7.29.8

Weekly downloads
118,158
License
MIT
Repository
github
Last release
9 months ago

@microsoft/api-extractor-model

Use this library to read and write *.api.json files as defined by the API Extractor tool. These files are used to generate a documentation website for your TypeScript package. The files store the API signatures and doc comments that were extracted from your package.

API documentation for this package: https://api.rushstack.io/pages/api-extractor-model/

Example Usage

The following code sample shows how to load example.api.json, which would be generated by API Extractor when it analyzes a hypothetical NPM package called example:

import { ApiModel, ApiPackage } from '@microsoft/api-extractor-model';

const apiModel: ApiModel = new ApiModel();
const apiPackage: ApiPackage = apiModel.loadPackage('example.api.json');

for (const member of apiPackage.members) {
  console.log(member.displayName);
}

The ApiModel is acts as a container for various packages that are loaded and operated on as a group. For example, a documentation tool may need to resolve @link references across different packages. In this case we would load the various packages into the ApiModel, and then use the ApiModel.resolveDeclarationReference() to resolve the @link targets.

The data structure forms a tree of various classes that start with the Api prefix. The nesting hierarchy might look like this:

- ApiModel
  - ApiPackage
    - ApiEntryPoint
      - ApiClass
        - ApiMethod
        - ApiProperty
      - ApiEnum
        - ApiEnumMember
      - ApiInterface
        - ApiMethodSignature
        - ApiPropertySignature
      - ApiNamespace
        - (ApiClass, ApiEnum, ApiInterface, ...)

You can use the ApiItem.members property to traverse this tree.

Note that the non-abstract classes (e.g. ApiClass, ApiEnum, ApiInterface, etc.) use TypeScript "mixin" functions (e.g. ApiDeclaredItem, ApiItemContainerMixin, etc.) to add various features that cannot be represented as a normal inheritance chain (since TypeScript does not allow a child class to extend more than one base class). The "mixin" is a TypeScript merged declaration with three components: the function that generates a subclass, an interface that describes the members of the subclass, and a namespace containing static members of the class.

For a complete project that uses these APIs to generate an API reference web site, see the @microsoft/api-documenter source code.

Links

API Extractor is part of the Rush Stack family of projects.

7.29.5

10 months ago

7.29.4

11 months ago

7.29.7

9 months ago

7.29.6

10 months ago

7.29.1

1 year ago

7.29.0

1 year ago

7.29.3

11 months ago

7.29.2

1 year ago

7.29.8

9 months ago

7.28.20

1 year ago

7.28.21

1 year ago

7.28.19

1 year ago

7.28.18

1 year ago

7.28.17

1 year ago

7.28.16

1 year ago

7.28.15

1 year ago

7.28.14

1 year ago

7.28.13

1 year ago

7.28.12

1 year ago

7.28.11

1 year ago

7.28.10

1 year ago

7.28.9

1 year ago

7.28.8

1 year ago

7.28.7

1 year ago

7.28.6

1 year ago

7.28.5

1 year ago

7.28.4

1 year ago

7.28.3

2 years ago

7.28.0

2 years ago

7.28.2

2 years ago

7.28.1

2 years ago

7.27.6

2 years ago

7.27.5

2 years ago

7.27.4

2 years ago

7.27.1

2 years ago

7.27.0

2 years ago

7.27.3

2 years ago

7.27.2

2 years ago

7.26.8

2 years ago

7.26.7

2 years ago

7.26.9

2 years ago

7.26.6

2 years ago

7.26.5

2 years ago

7.26.2

2 years ago

7.26.1

2 years ago

7.26.4

2 years ago

7.26.3

2 years ago

7.25.3

3 years ago

7.26.0

2 years ago

7.25.1

3 years ago

7.25.0

3 years ago

7.25.2

3 years ago

7.24.4

3 years ago

7.24.3

3 years ago

7.24.2

3 years ago

7.24.1

3 years ago

7.24.0

3 years ago

7.23.3

3 years ago

7.23.2

3 years ago

7.18.2

3 years ago

7.18.1

3 years ago

7.21.0

3 years ago

7.20.0

3 years ago

7.20.2

3 years ago

7.20.1

3 years ago

7.20.3

3 years ago

7.23.1

3 years ago

7.23.0

3 years ago

7.19.1

3 years ago

7.19.0

3 years ago

7.22.0

3 years ago

7.22.2

3 years ago

7.22.1

3 years ago

7.18.0

3 years ago

7.17.3

3 years ago

7.17.0

3 years ago

7.17.1

3 years ago

7.17.2

3 years ago

7.16.0

3 years ago

7.16.1

3 years ago

7.16.2

3 years ago

7.15.4

3 years ago

7.15.2

3 years ago

7.15.3

3 years ago

7.15.1

4 years ago

7.15.0

4 years ago

7.13.18

4 years ago

7.13.17

4 years ago

7.14.0

4 years ago

7.13.16

4 years ago

7.13.15

4 years ago

7.13.14

4 years ago

7.13.13

4 years ago

7.13.12

4 years ago

7.13.11

4 years ago

7.13.10

4 years ago

7.13.9

4 years ago

7.13.8

4 years ago

7.13.7

4 years ago

7.13.6

4 years ago

7.13.5

4 years ago

7.13.4

4 years ago

7.13.3

4 years ago

7.13.2

4 years ago

7.13.1

4 years ago

7.13.0

4 years ago

7.12.5

4 years ago

7.12.4

4 years ago

7.12.3

4 years ago

7.12.2

4 years ago

7.12.1

5 years ago

7.11.0

5 years ago

7.12.0

5 years ago

7.10.9

5 years ago

7.10.10

5 years ago

7.10.8

5 years ago

7.10.7

5 years ago

7.10.6

5 years ago

7.10.4

5 years ago

7.10.5

5 years ago

7.10.2

5 years ago

7.10.3

5 years ago

7.10.0

5 years ago

7.10.1

5 years ago

7.9.7

5 years ago

7.9.6

5 years ago

7.9.5

5 years ago

7.9.4

5 years ago

7.9.3

5 years ago

7.9.2

5 years ago

7.9.1

5 years ago

7.9.0

5 years ago

7.8.22

5 years ago

7.8.21

5 years ago

7.8.20

5 years ago

7.8.19

5 years ago

7.8.17

5 years ago

7.8.18

5 years ago

7.8.16

5 years ago

7.8.15

5 years ago

7.8.14

5 years ago

7.8.13

5 years ago

7.8.12

5 years ago

7.8.11

5 years ago

7.8.9

5 years ago

7.8.10

5 years ago

7.8.8

5 years ago

7.8.7

5 years ago

7.8.6

5 years ago

7.8.5

5 years ago

7.8.4

5 years ago

7.8.3

5 years ago

7.8.2

5 years ago

7.8.1

5 years ago

7.8.0

5 years ago

7.7.11

5 years ago

7.7.10

5 years ago

7.7.9

5 years ago

7.7.8

5 years ago

7.7.7

5 years ago

7.7.6

5 years ago

7.7.5

5 years ago

7.7.4

5 years ago

7.7.3

5 years ago

7.7.2

5 years ago

7.7.1

5 years ago

7.7.0

6 years ago

7.6.0

6 years ago

7.5.6

6 years ago

7.5.5

6 years ago

7.5.4

6 years ago

7.5.3

6 years ago

7.5.2

6 years ago

7.5.1

6 years ago

7.5.0

6 years ago

7.4.2

6 years ago

7.4.1

6 years ago

7.4.0

6 years ago

7.3.4

6 years ago

7.3.3

6 years ago

7.3.2

6 years ago

7.3.1

6 years ago

7.3.0

6 years ago

7.2.0

6 years ago

7.1.3

6 years ago

7.1.2

6 years ago

7.1.1

6 years ago

7.1.0

6 years ago

7.0.28

6 years ago

7.0.27

6 years ago

7.0.26

6 years ago

7.0.25

6 years ago

7.0.24

6 years ago

0.0.0

7 years ago