Spaces:
Sleeping
Sleeping
| ; | |
| // 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.DocMemberIdentifier = void 0; | |
| const DocNode_1 = require("./DocNode"); | |
| const StringChecks_1 = require("../parser/StringChecks"); | |
| const DocExcerpt_1 = require("./DocExcerpt"); | |
| /** | |
| * A member identifier is part of a {@link DocMemberReference}. | |
| */ | |
| class DocMemberIdentifier extends DocNode_1.DocNode { | |
| /** | |
| * Don't call this directly. Instead use {@link TSDocParser} | |
| * @internal | |
| */ | |
| constructor(parameters) { | |
| super(parameters); | |
| if (DocNode_1.DocNode.isParsedParameters(parameters)) { | |
| if (parameters.leftQuoteExcerpt) { | |
| this._leftQuoteExcerpt = new DocExcerpt_1.DocExcerpt({ | |
| configuration: this.configuration, | |
| excerptKind: DocExcerpt_1.ExcerptKind.MemberIdentifier_LeftQuote, | |
| content: parameters.leftQuoteExcerpt | |
| }); | |
| } | |
| this._identifierExcerpt = new DocExcerpt_1.DocExcerpt({ | |
| configuration: this.configuration, | |
| excerptKind: DocExcerpt_1.ExcerptKind.MemberIdentifier_Identifier, | |
| content: parameters.identifierExcerpt | |
| }); | |
| if (parameters.rightQuoteExcerpt) { | |
| this._rightQuoteExcerpt = new DocExcerpt_1.DocExcerpt({ | |
| configuration: this.configuration, | |
| excerptKind: DocExcerpt_1.ExcerptKind.MemberIdentifier_RightQuote, | |
| content: parameters.rightQuoteExcerpt | |
| }); | |
| } | |
| } | |
| else { | |
| this._identifier = parameters.identifier; | |
| } | |
| } | |
| /** | |
| * Tests whether the input string can be used without quotes as a member identifier in a declaration reference. | |
| * If not, {@link DocMemberIdentifier.hasQuotes} will be required. | |
| * | |
| * @remarks | |
| * In order to be used without quotes, the string must follow the identifier syntax for ECMAScript / TypeScript, | |
| * and it must not be one of the reserved words used for system selectors (such as `instance`, `static`, | |
| * `constructor`, etc). | |
| */ | |
| static isValidIdentifier(identifier) { | |
| return !StringChecks_1.StringChecks.explainIfInvalidUnquotedMemberIdentifier(identifier); | |
| } | |
| /** @override */ | |
| get kind() { | |
| return DocNode_1.DocNodeKind.MemberIdentifier; | |
| } | |
| /** | |
| * The identifier string without any quote encoding. | |
| * | |
| * @remarks | |
| * If the value is not a valid ECMAScript identifier, it will be quoted as a | |
| * string literal during rendering. | |
| */ | |
| get identifier() { | |
| if (this._identifier === undefined) { | |
| this._identifier = this._identifierExcerpt.content.toString(); | |
| } | |
| return this._identifier; | |
| } | |
| /** | |
| * Returns true if the identifier will be rendered as a quoted string literal | |
| * instead of as a programming language identifier. This is required if the | |
| * `identifier` property is not a valid ECMAScript identifier. | |
| */ | |
| get hasQuotes() { | |
| if (this._identifierExcerpt) { | |
| return !!this._leftQuoteExcerpt; | |
| } | |
| else { | |
| return !DocMemberIdentifier.isValidIdentifier(this.identifier); | |
| } | |
| } | |
| /** @override */ | |
| onGetChildNodes() { | |
| return [this._leftQuoteExcerpt, this._identifierExcerpt, this._rightQuoteExcerpt]; | |
| } | |
| } | |
| exports.DocMemberIdentifier = DocMemberIdentifier; | |
| //# sourceMappingURL=DocMemberIdentifier.js.map |