typia 4.1.9-dev.20230730 → 4.1.10-dev.20230730

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,12 +35,12 @@ var typescript_1 = __importDefault(require("typescript"));
35
35
  var CommentFactory;
36
36
  (function (CommentFactory) {
37
37
  CommentFactory.description = function (symbol) {
38
- var e_1, _a, e_2, _b;
39
- var _c;
40
- var node = (_c = symbol.declarations) === null || _c === void 0 ? void 0 : _c[0];
38
+ var e_1, _a, e_2, _b, e_3, _c;
39
+ var _d, _e, _f;
40
+ var node = (_d = symbol.declarations) === null || _d === void 0 ? void 0 : _d[0];
41
41
  if (!node)
42
42
  return undefined;
43
- var _d = __read(typescript_1.default.versionMajorMinor.split(".").map(Number), 2), major = _d[0], minor = _d[1];
43
+ var _g = __read(typescript_1.default.versionMajorMinor.split(".").map(Number), 2), major = _g[0], minor = _g[1];
44
44
  if (major < 5 || (major === 5 && minor < 1)) {
45
45
  var content_1 = [];
46
46
  var main_1 = typescript_1.default.displayPartsToString(symbol.getDocumentationComment(undefined));
@@ -50,8 +50,8 @@ var CommentFactory;
50
50
  content_1.push("");
51
51
  }
52
52
  try {
53
- for (var _e = __values(symbol.getJsDocTags()), _f = _e.next(); !_f.done; _f = _e.next()) {
54
- var tag = _f.value;
53
+ for (var _h = __values(symbol.getJsDocTags()), _j = _h.next(); !_j.done; _j = _h.next()) {
54
+ var tag = _j.value;
55
55
  content_1.push(tag.text
56
56
  ? "@".concat(tag.name, " ").concat(typescript_1.default.displayPartsToString(tag.text))
57
57
  : "@".concat(tag.name));
@@ -60,7 +60,7 @@ var CommentFactory;
60
60
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
61
61
  finally {
62
62
  try {
63
- if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
63
+ if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
64
64
  }
65
65
  finally { if (e_1) throw e_1.error; }
66
66
  }
@@ -71,17 +71,35 @@ var CommentFactory;
71
71
  : undefined;
72
72
  }
73
73
  var elements = typescript_1.default.getJSDocCommentsAndTags(node);
74
+ if (elements.length === 0)
75
+ return undefined;
74
76
  var content = [];
75
77
  try {
76
78
  for (var elements_1 = __values(elements), elements_1_1 = elements_1.next(); !elements_1_1.done; elements_1_1 = elements_1.next()) {
77
79
  var comment = elements_1_1.value;
78
- if (typescript_1.default.isJSDoc(comment))
79
- content.push(comment.getFullText());
80
- else {
80
+ if (typescript_1.default.isJSDoc(comment)) {
81
81
  var parsed = typescript_1.default.getTextOfJSDocComment(comment.comment);
82
- if (parsed)
82
+ if (parsed === null || parsed === void 0 ? void 0 : parsed.length) {
83
83
  content.push(parsed);
84
+ if ((_e = comment.tags) === null || _e === void 0 ? void 0 : _e.length)
85
+ content.push("");
86
+ }
87
+ try {
88
+ for (var _k = (e_3 = void 0, __values((_f = comment.tags) !== null && _f !== void 0 ? _f : [])), _l = _k.next(); !_l.done; _l = _k.next()) {
89
+ var tag = _l.value;
90
+ content.push(parseJSDocTag(tag));
91
+ }
92
+ }
93
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
94
+ finally {
95
+ try {
96
+ if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
97
+ }
98
+ finally { if (e_3) throw e_3.error; }
99
+ }
84
100
  }
101
+ else
102
+ content.push(parseJSDocTag(comment));
85
103
  }
86
104
  }
87
105
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
@@ -91,7 +109,9 @@ var CommentFactory;
91
109
  }
92
110
  finally { if (e_2) throw e_2.error; }
93
111
  }
94
- var output = transform(content.map(function (line) { return line.split("\r\n").join("\n"); })).join("\n");
112
+ var output = content
113
+ .map(function (line) { return line.split("\r\n").join("\n"); })
114
+ .join("\n");
95
115
  return output.length ? output : undefined;
96
116
  };
97
117
  CommentFactory.merge = function (comments) {
@@ -101,46 +121,10 @@ var CommentFactory;
101
121
  .join("");
102
122
  };
103
123
  })(CommentFactory || (exports.CommentFactory = CommentFactory = {}));
104
- var transform = function (elements) {
105
- var first = lastIndexOf(elements)(function (elem) {
106
- return elem.trim().startsWith("/**");
107
- });
108
- var last = lastIndexOf(elements)(function (elem) {
109
- return elem.trim().endsWith("*/");
110
- });
111
- var cut = elements.slice(first, last + 1);
112
- return cut
113
- .map(function (elem, i) {
114
- if (i === 0)
115
- elem = elem.substring(elem.lastIndexOf("/**") + 3);
116
- if (i === cut.length - 1)
117
- elem = elem.substring(0, elem.lastIndexOf("*/"));
118
- return trim(elem);
119
- })
120
- .filter(function (str, i, array) {
121
- return (i !== 0 && i !== array.length - 1) || !!str.length;
122
- });
123
- };
124
- var lastIndexOf = function (array) {
125
- return function (pred) {
126
- for (var i = array.length - 1; i >= 0; i--)
127
- if (pred(array[i]))
128
- return i;
129
- return -1;
130
- };
131
- };
132
- var trim = function (str) {
133
- var vulnerable = function (ch) {
134
- return ch === " " || ch === "\n" || ch === "\t" || ch === "*";
135
- };
136
- var start;
137
- var end;
138
- for (start = 0; start < str.length; ++start)
139
- if (!vulnerable(str.charAt(start)))
140
- break;
141
- for (end = str.length - 1; end >= 0; --end)
142
- if (!vulnerable(str.charAt(end)))
143
- break;
144
- return start > end ? "" : str.substring(start, end + 1).trim();
124
+ var parseJSDocTag = function (tag) {
125
+ var parsed = typescript_1.default.getTextOfJSDocComment(tag.comment);
126
+ return (parsed === null || parsed === void 0 ? void 0 : parsed.length)
127
+ ? "@".concat(tag.tagName.text, " ").concat(parsed)
128
+ : "@".concat(tag.tagName.text);
145
129
  };
146
130
  //# sourceMappingURL=CommentFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentFactory.js","sourceRoot":"","sources":["../../src/factories/CommentFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommentFactory.js","sourceRoot":"","sources":["../../src/factories/CommentFactory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "4.1.9-dev.20230730",
3
+ "version": "4.1.10-dev.20230730",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -36,18 +36,25 @@ export namespace CommentFactory {
36
36
  // NEW FEATURE OF TS 5.2
37
37
  const elements: readonly (ts.JSDoc | ts.JSDocTag)[] =
38
38
  ts.getJSDocCommentsAndTags(node);
39
+ if (elements.length === 0) return undefined;
40
+
39
41
  const content: string[] = [];
40
- for (const comment of elements)
41
- if (ts.isJSDoc(comment)) content.push(comment.getFullText());
42
- else {
42
+ for (const comment of elements) {
43
+ if (ts.isJSDoc(comment)) {
43
44
  const parsed: string | undefined = ts.getTextOfJSDocComment(
44
45
  comment.comment,
45
46
  );
46
- if (parsed) content.push(parsed);
47
- }
48
- const output: string = transform(
49
- content.map((line) => line.split("\r\n").join("\n")),
50
- ).join("\n");
47
+ if (parsed?.length) {
48
+ content.push(parsed);
49
+ if (comment.tags?.length) content.push("");
50
+ }
51
+ for (const tag of comment.tags ?? [])
52
+ content.push(parseJSDocTag(tag));
53
+ } else content.push(parseJSDocTag(comment));
54
+ }
55
+ const output: string = content
56
+ .map((line) => line.split("\r\n").join("\n"))
57
+ .join("\n");
51
58
  return output.length ? output : undefined;
52
59
  };
53
60
 
@@ -58,44 +65,9 @@ export namespace CommentFactory {
58
65
  .join("");
59
66
  }
60
67
 
61
- const transform = (elements: string[]): string[] => {
62
- const first: number = lastIndexOf(elements)((elem) =>
63
- elem.trim().startsWith("/**"),
64
- );
65
- const last: number = lastIndexOf(elements)((elem) =>
66
- elem.trim().endsWith("*/"),
67
- );
68
-
69
- const cut: string[] = elements.slice(first, last + 1);
70
- return cut
71
- .map((elem, i) => {
72
- if (i === 0) elem = elem.substring(elem.lastIndexOf("/**") + 3);
73
- if (i === cut.length - 1)
74
- elem = elem.substring(0, elem.lastIndexOf("*/"));
75
- return trim(elem);
76
- })
77
- .filter(
78
- (str, i, array) =>
79
- (i !== 0 && i !== array.length - 1) || !!str.length,
80
- );
81
- };
82
-
83
- const lastIndexOf =
84
- <T>(array: T[]) =>
85
- (pred: (elem: T) => boolean) => {
86
- for (let i = array.length - 1; i >= 0; i--)
87
- if (pred(array[i]!)) return i;
88
- return -1;
89
- };
90
-
91
- const trim = (str: string): string => {
92
- const vulnerable = (ch: string) =>
93
- ch === " " || ch === "\n" || ch === "\t" || ch === "*";
94
- let start: number;
95
- let end: number;
96
- for (start = 0; start < str.length; ++start)
97
- if (!vulnerable(str.charAt(start))) break;
98
- for (end = str.length - 1; end >= 0; --end)
99
- if (!vulnerable(str.charAt(end))) break;
100
- return start > end ? "" : str.substring(start, end + 1).trim();
68
+ const parseJSDocTag = (tag: ts.JSDocTag): string => {
69
+ const parsed: string | undefined = ts.getTextOfJSDocComment(tag.comment);
70
+ return parsed?.length
71
+ ? `@${tag.tagName.text} ${parsed}`
72
+ : `@${tag.tagName.text}`;
101
73
  };