1 | "use strict";
|
2 | var __extends = (this && this.__extends) || (function () {
|
3 | var extendStatics = function (d, b) {
|
4 | extendStatics = Object.setPrototypeOf ||
|
5 | ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
6 | function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
7 | return extendStatics(d, b);
|
8 | };
|
9 | return function (d, b) {
|
10 | extendStatics(d, b);
|
11 | function __() { this.constructor = d; }
|
12 | d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
13 | };
|
14 | })();
|
15 | Object.defineProperty(exports, "__esModule", { value: true });
|
16 | exports.DocMemberSelector = exports.SelectorKind = void 0;
|
17 | var DocNode_1 = require("./DocNode");
|
18 | var StringChecks_1 = require("../parser/StringChecks");
|
19 | var DocExcerpt_1 = require("./DocExcerpt");
|
20 |
|
21 |
|
22 |
|
23 | var SelectorKind;
|
24 | (function (SelectorKind) {
|
25 | |
26 |
|
27 |
|
28 |
|
29 | SelectorKind["Error"] = "error";
|
30 | |
31 |
|
32 |
|
33 | SelectorKind["System"] = "system";
|
34 | |
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 | SelectorKind["Index"] = "index";
|
45 | |
46 |
|
47 |
|
48 |
|
49 |
|
50 | SelectorKind["Label"] = "label";
|
51 | })(SelectorKind = exports.SelectorKind || (exports.SelectorKind = {}));
|
52 |
|
53 |
|
54 | var DocMemberSelector = (function (_super) {
|
55 | __extends(DocMemberSelector, _super);
|
56 | |
57 |
|
58 |
|
59 |
|
60 | function DocMemberSelector(parameters) {
|
61 | var _this = _super.call(this, parameters) || this;
|
62 | if (DocNode_1.DocNode.isParsedParameters(parameters)) {
|
63 | _this._selectorExcerpt = new DocExcerpt_1.DocExcerpt({
|
64 | configuration: _this.configuration,
|
65 | excerptKind: DocExcerpt_1.ExcerptKind.MemberSelector,
|
66 | content: parameters.selectorExcerpt
|
67 | });
|
68 | _this._selector = parameters.selectorExcerpt.toString();
|
69 | }
|
70 | else {
|
71 | _this._selector = parameters.selector;
|
72 | }
|
73 | _this._selectorKind = SelectorKind.Error;
|
74 | _this._errorMessage = undefined;
|
75 |
|
76 | if (_this._selector.length === 0) {
|
77 | _this._errorMessage = 'The selector cannot be an empty string';
|
78 | }
|
79 | else if (DocMemberSelector._likeIndexSelectorRegExp.test(_this._selector)) {
|
80 |
|
81 | if (DocMemberSelector._indexSelectorRegExp.test(_this._selector)) {
|
82 | _this._selectorKind = SelectorKind.Index;
|
83 | }
|
84 | else {
|
85 | _this._errorMessage = 'If the selector begins with a number, it must be a positive integer value';
|
86 | }
|
87 | }
|
88 | else if (DocMemberSelector._likeLabelSelectorRegExp.test(_this._selector)) {
|
89 |
|
90 | if (DocMemberSelector._labelSelectorRegExp.test(_this._selector)) {
|
91 | _this._selectorKind = SelectorKind.Label;
|
92 | }
|
93 | else {
|
94 | _this._errorMessage =
|
95 | 'A label selector must be comprised of upper case letters, numbers,' +
|
96 | ' and underscores and must not start with a number';
|
97 | }
|
98 | }
|
99 | else {
|
100 | if (StringChecks_1.StringChecks.isSystemSelector(_this._selector)) {
|
101 | _this._selectorKind = SelectorKind.System;
|
102 | }
|
103 | else if (DocMemberSelector._likeSystemSelectorRegExp.test(_this._selector)) {
|
104 |
|
105 | _this._errorMessage =
|
106 | "The selector " + JSON.stringify(_this._selector) +
|
107 | " is not a recognized TSDoc system selector name";
|
108 | }
|
109 | else {
|
110 |
|
111 | _this._errorMessage = 'Invalid syntax for selector';
|
112 | }
|
113 | }
|
114 | return _this;
|
115 | }
|
116 | Object.defineProperty(DocMemberSelector.prototype, "kind", {
|
117 |
|
118 | get: function () {
|
119 | return DocNode_1.DocNodeKind.MemberSelector;
|
120 | },
|
121 | enumerable: false,
|
122 | configurable: true
|
123 | });
|
124 | Object.defineProperty(DocMemberSelector.prototype, "selector", {
|
125 | |
126 |
|
127 |
|
128 |
|
129 |
|
130 |
|
131 |
|
132 |
|
133 | get: function () {
|
134 | return this._selector;
|
135 | },
|
136 | enumerable: false,
|
137 | configurable: true
|
138 | });
|
139 | Object.defineProperty(DocMemberSelector.prototype, "selectorKind", {
|
140 | |
141 |
|
142 |
|
143 | get: function () {
|
144 | return this._selectorKind;
|
145 | },
|
146 | enumerable: false,
|
147 | configurable: true
|
148 | });
|
149 | Object.defineProperty(DocMemberSelector.prototype, "errorMessage", {
|
150 | |
151 |
|
152 |
|
153 |
|
154 | get: function () {
|
155 | return this._errorMessage;
|
156 | },
|
157 | enumerable: false,
|
158 | configurable: true
|
159 | });
|
160 |
|
161 | DocMemberSelector.prototype.onGetChildNodes = function () {
|
162 | return [this._selectorExcerpt];
|
163 | };
|
164 | DocMemberSelector._likeIndexSelectorRegExp = /^[0-9]/;
|
165 | DocMemberSelector._indexSelectorRegExp = /^[1-9][0-9]*$/;
|
166 | DocMemberSelector._likeLabelSelectorRegExp = /^[A-Z_]/u;
|
167 | DocMemberSelector._labelSelectorRegExp = /^[A-Z_][A-Z0-9_]+$/;
|
168 | DocMemberSelector._likeSystemSelectorRegExp = /^[a-z]+$/u;
|
169 | return DocMemberSelector;
|
170 | }(DocNode_1.DocNode));
|
171 | exports.DocMemberSelector = DocMemberSelector;
|
172 |
|
\ | No newline at end of file |