@microsoft/api-extractor
Version:
Validate, document, and review the exported API for a TypeScript library
53 lines • 2.57 kB
JavaScript
;
// 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