UNPKG

@microsoft/api-extractor

Version:

Validate, document, and review the exported API for a TypeScript library

53 lines 2.57 kB
"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 }); const ReleaseTag_1 = require("./aedoc/ReleaseTag"); const ApiJsonConverter_1 = require("./api/ApiJsonConverter"); /** * A class to abstract away the difference between an item from our public API that could be * represented by either an AstItem or an ApiItem that is retrieved from a JSON file. */ class ResolvedApiItem { /** * A function to abstract the construction of a ResolvedApiItem instance * from an AstItem. */ static createFromAstItem(astItem) { return new ResolvedApiItem(astItem.kind, astItem.documentation.summary, astItem.documentation.remarks, astItem.documentation.deprecatedMessage, astItem.documentation.releaseTag === ReleaseTag_1.ReleaseTag.Beta, astItem.documentation.parameters, astItem.documentation.returnsMessage, astItem.documentation.releaseTag, astItem); } /** * A function to abstract the construction of a ResolvedApiItem instance * from a JSON object that symbolizes an ApiItem. */ static createFromJson(docItem) { let parameters = undefined; let returnsMessage = undefined; switch (docItem.kind) { case 'function': parameters = docItem.parameters; returnsMessage = docItem.returnValue.description; break; case 'method': parameters = docItem.parameters; returnsMessage = docItem.returnValue.description; break; default: break; } return new ResolvedApiItem(ApiJsonConverter_1.ApiJsonConverter.convertJsonToKind(docItem.kind), docItem.summary, docItem.remarks, docItem.deprecatedMessage, docItem.isBeta, parameters, returnsMessage, ReleaseTag_1.ReleaseTag.Public, undefined); } constructor(kind, summary, remarks, deprecatedMessage, isBeta, params, returnsMessage, releaseTag, astItem) { this.kind = kind; this.summary = summary; this.remarks = remarks; this.deprecatedMessage = deprecatedMessage; this.isBeta = isBeta; this.params = params; this.returnsMessage = returnsMessage; this.releaseTag = releaseTag; this.astItem = astItem; } } exports.ResolvedApiItem = ResolvedApiItem; //# sourceMappingURL=ResolvedApiItem.js.map