utils/node_modules/@microsoft/api-extractor/lib/collector/ApiItemMetadata.js
2024-02-07 01:33:07 -05:00

47 lines
1.9 KiB
JavaScript

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
// See LICENSE in the project root for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApiItemMetadata = void 0;
const VisitorState_1 = require("./VisitorState");
/**
* Stores the Collector's additional analysis for an `AstDeclaration`. This object is assigned to
* `AstDeclaration.apiItemMetadata` but consumers must always obtain it by calling `Collector.fetchApiItemMetadata()`.
*
* @remarks
* Note that ancillary declarations share their `ApiItemMetadata` with the main declaration,
* whereas a separate `DeclarationMetadata` object is created for each declaration.
*
* Consider this example:
* ```ts
* export declare class A {
* get b(): string;
* set b(value: string);
* }
* export declare namespace A { }
* ```
*
* In this example, there are two "symbols": `A` and `b`
*
* There are four "declarations": `A` class, `A` namespace, `b` getter, `b` setter
*
* There are three "API items": `A` class, `A` namespace, `b` property. The property getter is the main declaration
* for `b`, and the setter is the "ancillary" declaration.
*/
class ApiItemMetadata {
constructor(options) {
// Assigned by DocCommentEnhancer
this.undocumented = true;
this.docCommentEnhancerVisitorState = VisitorState_1.VisitorState.Unvisited;
this.declaredReleaseTag = options.declaredReleaseTag;
this.effectiveReleaseTag = options.effectiveReleaseTag;
this.releaseTagSameAsParent = options.releaseTagSameAsParent;
this.isEventProperty = options.isEventProperty;
this.isOverride = options.isOverride;
this.isSealed = options.isSealed;
this.isVirtual = options.isVirtual;
this.isPreapproved = options.isPreapproved;
}
}
exports.ApiItemMetadata = ApiItemMetadata;
//# sourceMappingURL=ApiItemMetadata.js.map