Files
Almeida 384e8afa1b chore: bump dependencies (#11539)
* chore(deps): update github-actions

* actions/cache v4 -> v5
* actions/create-github-app-token v2 -> v3
* actions/download-artifact v6 -> v8
* actions/labeler v5 -> v6
* actions/upload-artifact v5 -> v7
* codecov/codecov-action v4 -> v6
* crazy-max/ghaction-github-labeler v5 -> v6
* dessant/lock-threads v5 -> v6
* docker/build-push-action v6 -> v7
* docker/login-action v3 -> v4
* docker/setup-buildx-action v3 -> v4
* pnpm/action-setup v4.1.0 -> v6.0.8

* chore(deps): minor/patch bumps and pnpm v11

* chore(deps): bump lint-staged to v17

* chore(deps): bump commitlint to v21

* chore(deps): bump vercel to v54

* chore(deps): bump vite to v8

* chore(deps): bump chromatic to v17

* chore(deps): bump validate-npm-package-name to v8

* chore(deps): bump uuid to v14

* chore(deps): bump cloudflare to v6

* chore(deps): bump meilisearch to v0.58

* chore(deps): bump fumadocs-mdx to v15

* chore(deps): lockfile

* chore: fixes

* fixup! chore(deps): minor/patch bumps and pnpm v11

* chore(deps): bump vercel to v56

* chore(deps): bump chromatic to v18

* chore: fix format/lint and change prettier range

* chore(deps): bump vitest-websocket-mock to v0.7

* chore(deps): bump cloudflare to v7

* chore(deps): bump meilisearch to v0.59

* chore(deps): bump commander to v15

* chore(deps): bump sharp to v0.35

* chore(deps): bump undici to v8

* chore: lockfile

* fixup! chore(deps): update github-actions

* fix(rest): requested changes

* chore: minor/patch

* chore(deps): bump meilisearch to v0.60

* chore(deps): bump vercel to v57

* fixup! fixup! chore(deps): update github-actions

* chore: revert prettier upgrade

* chore: minor/patch

* chore(deps): bump vercel to v58

* chore(deps): regen lockfile

* chore(deps): undici 8.10.1 and pnpm 11.25

* chore(deps): minor/patch

* fix: lockfile

* chore: more
2026-09-03 10:27:10 +00:00
..
2026-09-03 10:27:10 +00:00

@discordjs/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://rushstack.io/pages/api/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 '@discordjs/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.

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