typia 6.6.0-dev.20240720 → 6.6.0-dev.20240727
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.
- package/lib/CamelCase.d.ts +3 -2
- package/lib/PascalCase.d.ts +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_constant.js +26 -8
- package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +15 -10
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +2 -1
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/internal/application_description.d.ts +2 -2
- package/lib/programmers/internal/application_description.js +2 -3
- package/lib/programmers/internal/application_description.js.map +1 -1
- package/lib/programmers/internal/application_title.d.ts +5 -0
- package/lib/programmers/internal/application_title.js +17 -0
- package/lib/programmers/internal/application_title.js.map +1 -0
- package/lib/programmers/internal/application_v31_alias.js +2 -8
- package/lib/programmers/internal/application_v31_alias.js.map +1 -1
- package/lib/programmers/internal/application_v31_constant.js +4 -0
- package/lib/programmers/internal/application_v31_constant.js.map +1 -1
- package/lib/programmers/internal/application_v31_object.js +31 -47
- package/lib/programmers/internal/application_v31_object.js.map +1 -1
- package/lib/programmers/internal/postfix_of_tuple.d.ts +1 -0
- package/lib/programmers/internal/postfix_of_tuple.js +8 -0
- package/lib/programmers/internal/postfix_of_tuple.js.map +1 -0
- package/lib/programmers/json/JsonStringifyProgrammer.js +2 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +2 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +2 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.js +2 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
- package/lib/schemas/metadata/IMetadataConstantValue.d.ts +3 -0
- package/lib/schemas/metadata/MetadataConstantValue.d.ts +3 -0
- package/lib/schemas/metadata/MetadataConstantValue.js +2 -0
- package/lib/schemas/metadata/MetadataConstantValue.js.map +1 -1
- package/lib/utils/NamingConvention/NamingConvention.d.ts +2 -2
- package/lib/utils/NamingConvention/NamingConvention.js +53 -72
- package/lib/utils/NamingConvention/NamingConvention.js.map +1 -1
- package/lib/utils/NamingConvention/NamingConvention.mjs +42 -56
- package/lib/utils/NamingConvention/NamingConvention.mjs.map +1 -1
- package/lib/utils/StringUtil/StringUtil.js +1 -1
- package/lib/utils/StringUtil/StringUtil.js.map +1 -1
- package/lib/utils/StringUtil/StringUtil.mjs +1 -1
- package/lib/utils/StringUtil/StringUtil.mjs.map +1 -1
- package/package.json +1 -1
- package/src/CamelCase.ts +14 -7
- package/src/PascalCase.ts +10 -7
- package/src/factories/internal/metadata/iterate_metadata_constant.ts +13 -0
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +14 -10
- package/src/programmers/CheckerProgrammer.ts +2 -1
- package/src/programmers/internal/application_description.ts +3 -3
- package/src/programmers/internal/application_title.ts +20 -0
- package/src/programmers/internal/application_v31_alias.ts +2 -11
- package/src/programmers/internal/application_v31_constant.ts +4 -0
- package/src/programmers/internal/application_v31_object.ts +2 -17
- package/src/programmers/internal/postfix_of_tuple.ts +2 -0
- package/src/programmers/json/JsonStringifyProgrammer.ts +2 -1
- package/src/programmers/misc/MiscCloneProgrammer.ts +2 -1
- package/src/programmers/misc/MiscPruneProgrammer.ts +2 -1
- package/src/programmers/notations/NotationGeneralProgrammer.ts +2 -1
- package/src/schemas/metadata/IMetadataConstantValue.ts +3 -0
- package/src/schemas/metadata/MetadataConstantValue.ts +5 -0
- package/src/utils/NamingConvention/NamingConvention.ts +46 -43
- package/src/utils/StringUtil/StringUtil.ts +1 -1
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pascal = exports.camel = void 0;
|
|
19
4
|
exports.snake = snake;
|
|
20
|
-
exports.camel = camel;
|
|
21
|
-
exports.pascal = pascal;
|
|
22
5
|
var StringUtil_1 = require("../StringUtil");
|
|
23
6
|
function snake(str) {
|
|
7
|
+
if (str.length === 0)
|
|
8
|
+
return str;
|
|
9
|
+
// PREFIX
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
|
+
var prefix = "";
|
|
12
|
+
for (var i = 0; i < str.length; i++) {
|
|
13
|
+
if (str[i] === "_")
|
|
14
|
+
prefix += "_";
|
|
15
|
+
else
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
if (prefix.length !== 0)
|
|
19
|
+
str = str.substring(prefix.length);
|
|
20
|
+
var out = function (s) { return "".concat(prefix).concat(s); };
|
|
21
|
+
// SNAKE CASE
|
|
22
|
+
var items = str.split("_");
|
|
23
|
+
if (items.length > 1)
|
|
24
|
+
return out(items.map(function (s) { return s.toLowerCase(); }).join("_"));
|
|
25
|
+
// CAMEL OR PASCAL CASE
|
|
24
26
|
var indexes = [];
|
|
25
27
|
for (var i = 0; i < str.length; i++) {
|
|
26
28
|
var code = str.charCodeAt(i);
|
|
@@ -45,29 +47,33 @@ function snake(str) {
|
|
|
45
47
|
ret += "_";
|
|
46
48
|
}
|
|
47
49
|
ret += str.substring(indexes[indexes.length - 1]).toLowerCase();
|
|
48
|
-
return ret;
|
|
50
|
+
return out(ret);
|
|
49
51
|
}
|
|
50
|
-
function
|
|
51
|
-
return unsnake(
|
|
52
|
-
|
|
53
|
-
return str
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
var camel = function (str) {
|
|
53
|
+
return unsnake({
|
|
54
|
+
plain: function (str) {
|
|
55
|
+
return str.length
|
|
56
|
+
? str === str.toUpperCase()
|
|
57
|
+
? str.toLocaleLowerCase()
|
|
58
|
+
: "".concat(str[0].toLowerCase()).concat(str.substring(1))
|
|
59
|
+
: str;
|
|
60
|
+
},
|
|
61
|
+
snake: function (str, i) {
|
|
62
|
+
return i === 0 ? str.toLowerCase() : StringUtil_1.StringUtil.capitalize(str.toLowerCase());
|
|
63
|
+
},
|
|
58
64
|
})(str);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return str;
|
|
65
|
+
};
|
|
66
|
+
exports.camel = camel;
|
|
67
|
+
var pascal = function (str) {
|
|
68
|
+
return unsnake({
|
|
69
|
+
plain: function (str) {
|
|
70
|
+
return str.length ? "".concat(str[0].toUpperCase()).concat(str.substring(1)) : str;
|
|
71
|
+
},
|
|
72
|
+
snake: StringUtil_1.StringUtil.capitalize,
|
|
68
73
|
})(str);
|
|
69
|
-
}
|
|
70
|
-
|
|
74
|
+
};
|
|
75
|
+
exports.pascal = pascal;
|
|
76
|
+
var unsnake = function (props) {
|
|
71
77
|
return function (str) {
|
|
72
78
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
73
79
|
var prefix = "";
|
|
@@ -79,40 +85,15 @@ var unsnake = function (escaper) {
|
|
|
79
85
|
}
|
|
80
86
|
if (prefix.length !== 0)
|
|
81
87
|
str = str.substring(prefix.length);
|
|
82
|
-
var
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
++last_1[1];
|
|
92
|
-
}
|
|
93
|
-
if (indexes.length === 0)
|
|
94
|
-
return prefix + escaper(str);
|
|
95
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
96
|
-
var ret = "";
|
|
97
|
-
for (var i = 0; i < indexes.length; i++) {
|
|
98
|
-
var _a = __read(indexes[i], 1), first = _a[0];
|
|
99
|
-
if (i === 0)
|
|
100
|
-
if (first === 0)
|
|
101
|
-
ret += "_";
|
|
102
|
-
else
|
|
103
|
-
ret += str.substring(0, first);
|
|
104
|
-
else {
|
|
105
|
-
var _b = __read(indexes[i - 1], 2), prevFirst = _b[0], prevLength = _b[1];
|
|
106
|
-
var piece_1 = str.substring(prevFirst + prevLength, first);
|
|
107
|
-
if (piece_1.length)
|
|
108
|
-
ret += StringUtil_1.StringUtil.capitalize(piece_1);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
var last = indexes[indexes.length - 1];
|
|
112
|
-
var piece = str.substring(last[0] + last[1]);
|
|
113
|
-
if (last.length)
|
|
114
|
-
ret += StringUtil_1.StringUtil.capitalize(piece);
|
|
115
|
-
return prefix + escaper(ret);
|
|
88
|
+
var out = function (s) { return "".concat(prefix).concat(s); };
|
|
89
|
+
if (str.length === 0)
|
|
90
|
+
return out("");
|
|
91
|
+
var items = str.split("_").filter(function (s) { return s.length !== 0; });
|
|
92
|
+
return items.length === 0
|
|
93
|
+
? out("")
|
|
94
|
+
: items.length === 1
|
|
95
|
+
? out(props.plain(items[0]))
|
|
96
|
+
: out(items.map(props.snake).join(""));
|
|
116
97
|
};
|
|
117
98
|
};
|
|
118
99
|
//# sourceMappingURL=NamingConvention.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NamingConvention.js","sourceRoot":"","sources":["../../../src/utils/NamingConvention/NamingConvention.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NamingConvention.js","sourceRoot":"","sources":["../../../src/utils/NamingConvention/NamingConvention.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
import { capitalize } from '../StringUtil/StringUtil.mjs';
|
|
2
2
|
|
|
3
3
|
function snake(str) {
|
|
4
|
+
if (str.length === 0)
|
|
5
|
+
return str;
|
|
6
|
+
// PREFIX
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8
|
+
let prefix = "";
|
|
9
|
+
for (let i = 0; i < str.length; i++) {
|
|
10
|
+
if (str[i] === "_")
|
|
11
|
+
prefix += "_";
|
|
12
|
+
else
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
if (prefix.length !== 0)
|
|
16
|
+
str = str.substring(prefix.length);
|
|
17
|
+
const out = (s) => `${prefix}${s}`;
|
|
18
|
+
// SNAKE CASE
|
|
19
|
+
const items = str.split("_");
|
|
20
|
+
if (items.length > 1)
|
|
21
|
+
return out(items.map((s) => s.toLowerCase()).join("_"));
|
|
22
|
+
// CAMEL OR PASCAL CASE
|
|
4
23
|
const indexes = [];
|
|
5
24
|
for (let i = 0; i < str.length; i++) {
|
|
6
25
|
const code = str.charCodeAt(i);
|
|
@@ -25,29 +44,21 @@ function snake(str) {
|
|
|
25
44
|
ret += "_";
|
|
26
45
|
}
|
|
27
46
|
ret += str.substring(indexes[indexes.length - 1]).toLowerCase();
|
|
28
|
-
return ret;
|
|
29
|
-
}
|
|
30
|
-
function camel(str) {
|
|
31
|
-
return unsnake((str) => {
|
|
32
|
-
if (str.length === 0)
|
|
33
|
-
return str;
|
|
34
|
-
else if (str[0] === str[0].toUpperCase())
|
|
35
|
-
return str[0].toLowerCase() + str.substring(1);
|
|
36
|
-
else
|
|
37
|
-
return str;
|
|
38
|
-
})(str);
|
|
47
|
+
return out(ret);
|
|
39
48
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
49
|
+
const camel = (str) => unsnake({
|
|
50
|
+
plain: (str) => str.length
|
|
51
|
+
? str === str.toUpperCase()
|
|
52
|
+
? str.toLocaleLowerCase()
|
|
53
|
+
: `${str[0].toLowerCase()}${str.substring(1)}`
|
|
54
|
+
: str,
|
|
55
|
+
snake: (str, i) => i === 0 ? str.toLowerCase() : capitalize(str.toLowerCase()),
|
|
56
|
+
})(str);
|
|
57
|
+
const pascal = (str) => unsnake({
|
|
58
|
+
plain: (str) => str.length ? `${str[0].toUpperCase()}${str.substring(1)}` : str,
|
|
59
|
+
snake: capitalize,
|
|
60
|
+
})(str);
|
|
61
|
+
const unsnake = (props) => (str) => {
|
|
51
62
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
52
63
|
let prefix = "";
|
|
53
64
|
for (let i = 0; i < str.length; i++) {
|
|
@@ -58,40 +69,15 @@ const unsnake = (escaper) => (str) => {
|
|
|
58
69
|
}
|
|
59
70
|
if (prefix.length !== 0)
|
|
60
71
|
str = str.substring(prefix.length);
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
++last[1];
|
|
71
|
-
}
|
|
72
|
-
if (indexes.length === 0)
|
|
73
|
-
return prefix + escaper(str);
|
|
74
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
75
|
-
let ret = "";
|
|
76
|
-
for (let i = 0; i < indexes.length; i++) {
|
|
77
|
-
const [first] = indexes[i];
|
|
78
|
-
if (i === 0)
|
|
79
|
-
if (first === 0)
|
|
80
|
-
ret += "_";
|
|
81
|
-
else
|
|
82
|
-
ret += str.substring(0, first);
|
|
83
|
-
else {
|
|
84
|
-
const [prevFirst, prevLength] = indexes[i - 1];
|
|
85
|
-
const piece = str.substring(prevFirst + prevLength, first);
|
|
86
|
-
if (piece.length)
|
|
87
|
-
ret += capitalize(piece);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
const last = indexes[indexes.length - 1];
|
|
91
|
-
const piece = str.substring(last[0] + last[1]);
|
|
92
|
-
if (last.length)
|
|
93
|
-
ret += capitalize(piece);
|
|
94
|
-
return prefix + escaper(ret);
|
|
72
|
+
const out = (s) => `${prefix}${s}`;
|
|
73
|
+
if (str.length === 0)
|
|
74
|
+
return out("");
|
|
75
|
+
const items = str.split("_").filter((s) => s.length !== 0);
|
|
76
|
+
return items.length === 0
|
|
77
|
+
? out("")
|
|
78
|
+
: items.length === 1
|
|
79
|
+
? out(props.plain(items[0]))
|
|
80
|
+
: out(items.map(props.snake).join(""));
|
|
95
81
|
};
|
|
96
82
|
|
|
97
83
|
export { camel, pascal, snake };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NamingConvention.mjs","sources":["../../../src/utils/NamingConvention/NamingConvention.ts"],"sourcesContent":[null],"names":["StringUtil.capitalize"],"mappings":";;AAEM,SAAU,KAAK,CAAC,GAAW,EAAA;
|
|
1
|
+
{"version":3,"file":"NamingConvention.mjs","sources":["../../../src/utils/NamingConvention/NamingConvention.ts"],"sourcesContent":[null],"names":["StringUtil.capitalize"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.escapeDuplicate = exports.capitalize = void 0;
|
|
4
4
|
var capitalize = function (str) {
|
|
5
|
-
return str.length ? str[0].toUpperCase() + str.slice(1) : str;
|
|
5
|
+
return str.length ? str[0].toUpperCase() + str.slice(1).toLowerCase() : str;
|
|
6
6
|
};
|
|
7
7
|
exports.capitalize = capitalize;
|
|
8
8
|
var escapeDuplicate = function (keep) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtil.js","sourceRoot":"","sources":["../../../src/utils/StringUtil/StringUtil.ts"],"names":[],"mappings":";;;AAAO,IAAM,UAAU,GAAG,UAAC,GAAW;IACpC,OAAA,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"StringUtil.js","sourceRoot":"","sources":["../../../src/utils/StringUtil/StringUtil.ts"],"names":[],"mappings":";;;AAAO,IAAM,UAAU,GAAG,UAAC,GAAW;IACpC,OAAA,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG;AAArE,CAAqE,CAAC;AAD3D,QAAA,UAAU,cACiD;AAEjE,IAAM,eAAe,GAC1B,UAAC,IAAc;IACf,OAAA,UAAC,MAAc;QACb,OAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,WAAI,MAAM,CAAE,CAAC,CAAC,CAAC,CAAC,MAAM;IAApE,CAAoE;AADtE,CACsE,CAAC;AAH5D,QAAA,eAAe,mBAG6C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtil.mjs","sources":["../../../src/utils/StringUtil/StringUtil.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StringUtil.mjs","sources":["../../../src/utils/StringUtil/StringUtil.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAa,MAAA,UAAU,GAAG,CAAC,GAAW,KACpC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG;;;;"}
|
package/package.json
CHANGED
package/src/CamelCase.ts
CHANGED
|
@@ -59,10 +59,17 @@ type CamelizeTuple<T extends readonly any[]> = T extends []
|
|
|
59
59
|
|
|
60
60
|
type CamelizeString<Key extends string> = Key extends `_${infer R}`
|
|
61
61
|
? `_${CamelizeString<R>}`
|
|
62
|
-
: Key extends `${infer
|
|
63
|
-
?
|
|
64
|
-
: Key
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
: Key extends `${infer _F}_${infer _R}`
|
|
63
|
+
? CamelizeSnakeString<Key>
|
|
64
|
+
: Key extends Uppercase<Key>
|
|
65
|
+
? Lowercase<Key>
|
|
66
|
+
: CamelizePascalString<Key>;
|
|
67
|
+
type CamelizePascalString<Key extends string> =
|
|
68
|
+
Key extends `${infer F}${infer R}` ? `${Lowercase<F>}${R}` : Key;
|
|
69
|
+
type CamelizeSnakeString<Key extends string> = Key extends `_${infer R}`
|
|
70
|
+
? CamelizeSnakeString<R>
|
|
71
|
+
: Key extends `${infer F}_${infer M}${infer R}`
|
|
72
|
+
? M extends "_"
|
|
73
|
+
? CamelizeSnakeString<`${F}_${R}`>
|
|
74
|
+
: `${Lowercase<F>}${Uppercase<M>}${CamelizeSnakeString<R>}`
|
|
75
|
+
: Lowercase<Key>;
|
package/src/PascalCase.ts
CHANGED
|
@@ -59,10 +59,13 @@ type PascalizeTuple<T extends readonly any[]> = T extends []
|
|
|
59
59
|
|
|
60
60
|
type PascalizeString<Key extends string> = Key extends `_${infer R}`
|
|
61
61
|
? `_${PascalizeString<R>}`
|
|
62
|
-
: Key extends `${infer
|
|
63
|
-
?
|
|
64
|
-
: Key
|
|
65
|
-
type
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
: Key extends `${infer _F}_${infer _R}`
|
|
63
|
+
? PascalizeSnakeString<Key>
|
|
64
|
+
: Capitalize<Key>;
|
|
65
|
+
type PascalizeSnakeString<Key extends string> = Key extends `_${infer R}`
|
|
66
|
+
? PascalizeSnakeString<R>
|
|
67
|
+
: Key extends `${infer F}${infer M}_${infer R}`
|
|
68
|
+
? `${Uppercase<F>}${Lowercase<M>}${PascalizeSnakeString<R>}`
|
|
69
|
+
: Key extends `${infer F}${infer R}`
|
|
70
|
+
? `${Uppercase<F>}${Lowercase<R>}`
|
|
71
|
+
: Key;
|
|
@@ -6,6 +6,7 @@ import { MetadataConstantValue } from "../../../schemas/metadata/MetadataConstan
|
|
|
6
6
|
|
|
7
7
|
import { ArrayUtil } from "../../../utils/ArrayUtil";
|
|
8
8
|
|
|
9
|
+
import { CommentFactory } from "../../CommentFactory";
|
|
9
10
|
import { MetadataFactory } from "../../MetadataFactory";
|
|
10
11
|
|
|
11
12
|
export const iterate_metadata_constant =
|
|
@@ -15,6 +16,15 @@ export const iterate_metadata_constant =
|
|
|
15
16
|
if (!options.constant) return false;
|
|
16
17
|
|
|
17
18
|
const filter = (flag: ts.TypeFlags) => (type.getFlags() & flag) !== 0;
|
|
19
|
+
const comment = () => {
|
|
20
|
+
if (!filter(ts.TypeFlags.EnumLiteral)) return {};
|
|
21
|
+
return {
|
|
22
|
+
jsDocTags: type.symbol?.getJsDocTags(),
|
|
23
|
+
description: type.symbol
|
|
24
|
+
? CommentFactory.description(type.symbol) ?? null
|
|
25
|
+
: undefined,
|
|
26
|
+
};
|
|
27
|
+
};
|
|
18
28
|
if (type.isLiteral()) {
|
|
19
29
|
const value: string | number | bigint =
|
|
20
30
|
typeof type.value === "object"
|
|
@@ -34,11 +44,13 @@ export const iterate_metadata_constant =
|
|
|
34
44
|
MetadataConstantValue.create({
|
|
35
45
|
value,
|
|
36
46
|
tags: [],
|
|
47
|
+
...comment(),
|
|
37
48
|
}),
|
|
38
49
|
(a, b) => a.value === b.value,
|
|
39
50
|
);
|
|
40
51
|
return true;
|
|
41
52
|
} else if (filter(ts.TypeFlags.BooleanLiteral)) {
|
|
53
|
+
comment();
|
|
42
54
|
const value: boolean = checker.typeToString(type) === "true";
|
|
43
55
|
const constant: MetadataConstant = ArrayUtil.take(
|
|
44
56
|
meta.constants,
|
|
@@ -54,6 +66,7 @@ export const iterate_metadata_constant =
|
|
|
54
66
|
MetadataConstantValue.create({
|
|
55
67
|
value,
|
|
56
68
|
tags: [],
|
|
69
|
+
...comment(),
|
|
57
70
|
}),
|
|
58
71
|
(a, b) => a.value === b.value,
|
|
59
72
|
);
|
|
@@ -27,7 +27,8 @@ export const iterate_metadata_intersection =
|
|
|
27
27
|
explore: MetadataFactory.IExplore,
|
|
28
28
|
): boolean => {
|
|
29
29
|
if (!type.isIntersection()) return false;
|
|
30
|
-
|
|
30
|
+
if (
|
|
31
|
+
// ONLY OBJECT TYPED INTERSECTION
|
|
31
32
|
type.types.every(
|
|
32
33
|
(child) =>
|
|
33
34
|
(child.getFlags() & ts.TypeFlags.Object) !== 0 &&
|
|
@@ -68,9 +69,18 @@ export const iterate_metadata_intersection =
|
|
|
68
69
|
);
|
|
69
70
|
return true;
|
|
70
71
|
} else if (children.every((c) => c.objects.length === c.size()))
|
|
72
|
+
// ONLY OBJECT TYPED INTERSECTION (DETAILED)
|
|
71
73
|
return false;
|
|
72
74
|
|
|
73
75
|
// VALIDATE EACH TYPES
|
|
76
|
+
const nonsensible = () => {
|
|
77
|
+
errors.push({
|
|
78
|
+
name: children.map((c) => c.getName()).join(" & "),
|
|
79
|
+
explore: { ...explore },
|
|
80
|
+
messages: ["nonsensible intersection"],
|
|
81
|
+
});
|
|
82
|
+
return true;
|
|
83
|
+
};
|
|
74
84
|
const individuals: (readonly [Metadata, number])[] = children
|
|
75
85
|
.map((child, i) => [child, i] as const)
|
|
76
86
|
.filter(
|
|
@@ -82,7 +92,7 @@ export const iterate_metadata_intersection =
|
|
|
82
92
|
c.arrays.length === 1)) ||
|
|
83
93
|
c.templates.length === 1,
|
|
84
94
|
);
|
|
85
|
-
if (individuals.length !== 1) return
|
|
95
|
+
if (individuals.length !== 1) return nonsensible();
|
|
86
96
|
|
|
87
97
|
const objects: Metadata[] = children.filter(
|
|
88
98
|
(c) =>
|
|
@@ -109,14 +119,8 @@ export const iterate_metadata_intersection =
|
|
|
109
119
|
if (
|
|
110
120
|
atomics.size + constants.length + arrays.size + templates.length > 1 ||
|
|
111
121
|
individuals.length + objects.length !== children.length
|
|
112
|
-
)
|
|
113
|
-
|
|
114
|
-
name: children.map((c) => c.getName()).join(" & "),
|
|
115
|
-
explore: { ...explore },
|
|
116
|
-
messages: ["nonsensible intersection"],
|
|
117
|
-
});
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
122
|
+
)
|
|
123
|
+
return nonsensible();
|
|
120
124
|
|
|
121
125
|
// RE-GENERATE TYPE
|
|
122
126
|
const target: "boolean" | "bigint" | "number" | "string" | "array" =
|
|
@@ -33,6 +33,7 @@ import { check_number } from "./internal/check_number";
|
|
|
33
33
|
import { check_string } from "./internal/check_string";
|
|
34
34
|
import { check_template } from "./internal/check_template";
|
|
35
35
|
import { decode_union_object } from "./internal/decode_union_object";
|
|
36
|
+
import { postfix_of_tuple } from "./internal/postfix_of_tuple";
|
|
36
37
|
import { wrap_metadata_rest_tuple } from "./internal/wrap_metadata_rest_tuple";
|
|
37
38
|
|
|
38
39
|
export namespace CheckerProgrammer {
|
|
@@ -766,7 +767,7 @@ export namespace CheckerProgrammer {
|
|
|
766
767
|
...explore,
|
|
767
768
|
from: "array",
|
|
768
769
|
postfix: explore.postfix.length
|
|
769
|
-
? `${explore.postfix
|
|
770
|
+
? `${postfix_of_tuple(explore.postfix)}[${index}]"`
|
|
770
771
|
: `"[${index}]"`,
|
|
771
772
|
},
|
|
772
773
|
),
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { IJsDocTagInfo } from "../../module";
|
|
2
2
|
|
|
3
3
|
export const application_description = (props: {
|
|
4
|
-
description
|
|
5
|
-
jsDocTags
|
|
4
|
+
description?: string | null | undefined;
|
|
5
|
+
jsDocTags?: IJsDocTagInfo[];
|
|
6
6
|
}): string | undefined =>
|
|
7
7
|
props.jsDocTags
|
|
8
|
-
|
|
8
|
+
?.find((tag) => tag.name === "description")
|
|
9
9
|
?.text?.[0]?.text?.split("\r\n")
|
|
10
10
|
.join("\n") ??
|
|
11
11
|
props.description ??
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CommentFactory } from "../../factories/CommentFactory";
|
|
2
|
+
|
|
3
|
+
import { IJsDocTagInfo } from "../../module";
|
|
4
|
+
|
|
5
|
+
export const application_title = (schema: {
|
|
6
|
+
description?: string | null | undefined;
|
|
7
|
+
jsDocTags?: IJsDocTagInfo[] | undefined;
|
|
8
|
+
}): string | undefined => {
|
|
9
|
+
const info: IJsDocTagInfo | undefined = schema.jsDocTags?.find(
|
|
10
|
+
(tag) => tag.name === "title",
|
|
11
|
+
);
|
|
12
|
+
if (info?.text?.length) return CommentFactory.merge(info.text);
|
|
13
|
+
else if (!schema.description?.length) return undefined;
|
|
14
|
+
|
|
15
|
+
const index: number = schema.description.indexOf("\n");
|
|
16
|
+
const top: string = (
|
|
17
|
+
index === -1 ? schema.description : schema.description.substring(0, index)
|
|
18
|
+
).trim();
|
|
19
|
+
return top.endsWith(".") ? top.substring(0, top.length - 1) : undefined;
|
|
20
|
+
};
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { OpenApi } from "@samchon/openapi";
|
|
2
2
|
|
|
3
|
-
import { CommentFactory } from "../../factories/CommentFactory";
|
|
4
|
-
|
|
5
|
-
import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
|
|
6
3
|
import { MetadataAlias } from "../../schemas/metadata/MetadataAlias";
|
|
7
4
|
|
|
8
5
|
import { application_description } from "./application_description";
|
|
6
|
+
import { application_title } from "./application_title";
|
|
9
7
|
import { application_v31_object } from "./application_v31_object";
|
|
10
8
|
import { application_v31_schema } from "./application_v31_schema";
|
|
11
9
|
|
|
@@ -33,14 +31,7 @@ export const application_v31_alias =
|
|
|
33
31
|
)(components)({
|
|
34
32
|
deprecated:
|
|
35
33
|
alias.jsDocTags.some((tag) => tag.name === "deprecated") || undefined,
|
|
36
|
-
title: (
|
|
37
|
-
const info: IJsDocTagInfo | undefined = alias.jsDocTags.find(
|
|
38
|
-
(tag) => tag.name === "title",
|
|
39
|
-
);
|
|
40
|
-
return info?.text?.length
|
|
41
|
-
? CommentFactory.merge(info.text)
|
|
42
|
-
: undefined;
|
|
43
|
-
})(),
|
|
34
|
+
title: application_title(alias),
|
|
44
35
|
description: application_description(alias),
|
|
45
36
|
})(alias.value);
|
|
46
37
|
if (schema !== null)
|
|
@@ -2,7 +2,9 @@ import { OpenApi } from "@samchon/openapi";
|
|
|
2
2
|
|
|
3
3
|
import { MetadataConstant } from "../../schemas/metadata/MetadataConstant";
|
|
4
4
|
|
|
5
|
+
import { application_description } from "./application_description";
|
|
5
6
|
import { application_plugin } from "./application_plugin";
|
|
7
|
+
import { application_title } from "./application_title";
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* @internal
|
|
@@ -15,6 +17,8 @@ export const application_v31_constant = (
|
|
|
15
17
|
application_plugin(
|
|
16
18
|
{
|
|
17
19
|
const: value.value as boolean | number | string,
|
|
20
|
+
title: application_title(value),
|
|
21
|
+
description: application_description(value),
|
|
18
22
|
} satisfies OpenApi.IJsonSchema.IConstant,
|
|
19
23
|
value.tags ?? [],
|
|
20
24
|
),
|
|
@@ -9,6 +9,7 @@ import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
|
9
9
|
import { PatternUtil } from "../../utils/PatternUtil";
|
|
10
10
|
|
|
11
11
|
import { application_description } from "./application_description";
|
|
12
|
+
import { application_title } from "./application_title";
|
|
12
13
|
import { application_v31_schema } from "./application_v31_schema";
|
|
13
14
|
import { metadata_to_pattern } from "./metadata_to_pattern";
|
|
14
15
|
|
|
@@ -67,23 +68,7 @@ const create_object_schema =
|
|
|
67
68
|
deprecated:
|
|
68
69
|
property.jsDocTags.some((tag) => tag.name === "deprecated") ||
|
|
69
70
|
undefined,
|
|
70
|
-
title: (
|
|
71
|
-
const info: IJsDocTagInfo | undefined = property.jsDocTags.find(
|
|
72
|
-
(tag) => tag.name === "title",
|
|
73
|
-
);
|
|
74
|
-
if (info?.text?.length) return CommentFactory.merge(info.text);
|
|
75
|
-
else if (!property.description?.length) return undefined;
|
|
76
|
-
|
|
77
|
-
const index: number = property.description.indexOf("\n");
|
|
78
|
-
const top: string = (
|
|
79
|
-
index === -1
|
|
80
|
-
? property.description
|
|
81
|
-
: property.description.substring(0, index)
|
|
82
|
-
).trim();
|
|
83
|
-
return top.endsWith(".")
|
|
84
|
-
? top.substring(0, top.length - 1)
|
|
85
|
-
: undefined;
|
|
86
|
-
})(),
|
|
71
|
+
title: application_title(property),
|
|
87
72
|
description: application_description(property),
|
|
88
73
|
})(property.value);
|
|
89
74
|
|