* 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
@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.
Links
- CHANGELOG.md - Find out what's new in the latest version
- API Reference
API Extractor is part of the Rush Stack family of projects.