ts-json-schema-generator 2.5.0-next.9 → 2.5.0
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/dist/factory/parser.js +3 -0
- package/dist/factory/parser.js.map +1 -1
- package/dist/factory/program.js +6 -3
- package/dist/factory/program.js.map +1 -1
- package/dist/package.json +28 -33
- package/dist/src/AnnotationsReader/BasicAnnotationsReader.js +6 -0
- package/dist/src/AnnotationsReader/BasicAnnotationsReader.js.map +1 -1
- package/dist/src/AnnotationsReader/ExtendedAnnotationsReader.d.ts +4 -0
- package/dist/src/AnnotationsReader/ExtendedAnnotationsReader.js +7 -0
- package/dist/src/AnnotationsReader/ExtendedAnnotationsReader.js.map +1 -1
- package/dist/src/Config.d.ts +99 -0
- package/dist/src/Error/BaseError.d.ts +6 -1
- package/dist/src/Error/BaseError.js +8 -2
- package/dist/src/Error/BaseError.js.map +1 -1
- package/dist/src/Error/Errors.d.ts +3 -0
- package/dist/src/Error/Errors.js +5 -0
- package/dist/src/Error/Errors.js.map +1 -1
- package/dist/src/NodeParser/AnnotatedNodeParser.js +5 -0
- package/dist/src/NodeParser/AnnotatedNodeParser.js.map +1 -1
- package/dist/src/NodeParser/ArrayNodeParser.js +1 -0
- package/dist/src/NodeParser/ArrayNodeParser.js.map +1 -1
- package/dist/src/NodeParser/AsExpressionNodeParser.js +1 -0
- package/dist/src/NodeParser/AsExpressionNodeParser.js.map +1 -1
- package/dist/src/NodeParser/BinaryExpressionNodeParser.d.ts +13 -0
- package/dist/src/NodeParser/BinaryExpressionNodeParser.js +84 -0
- package/dist/src/NodeParser/BinaryExpressionNodeParser.js.map +1 -0
- package/dist/src/NodeParser/CallExpressionParser.js +6 -0
- package/dist/src/NodeParser/CallExpressionParser.js.map +1 -1
- package/dist/src/NodeParser/ConditionalTypeNodeParser.d.ts +16 -0
- package/dist/src/NodeParser/ConditionalTypeNodeParser.js +22 -0
- package/dist/src/NodeParser/ConditionalTypeNodeParser.js.map +1 -1
- package/dist/src/NodeParser/FunctionNodeParser.js +1 -0
- package/dist/src/NodeParser/FunctionNodeParser.js.map +1 -1
- package/dist/src/NodeParser/IdentifierNodeParser.d.ts +3 -0
- package/dist/src/NodeParser/IdentifierNodeParser.js +3 -0
- package/dist/src/NodeParser/IdentifierNodeParser.js.map +1 -1
- package/dist/src/NodeParser/IndexedAccessTypeNodeParser.js +4 -1
- package/dist/src/NodeParser/IndexedAccessTypeNodeParser.js.map +1 -1
- package/dist/src/NodeParser/InterfaceAndClassNodeParser.d.ts +7 -0
- package/dist/src/NodeParser/InterfaceAndClassNodeParser.js +10 -0
- package/dist/src/NodeParser/InterfaceAndClassNodeParser.js.map +1 -1
- package/dist/src/NodeParser/IntersectionNodeParser.d.ts +4 -0
- package/dist/src/NodeParser/IntersectionNodeParser.js +8 -0
- package/dist/src/NodeParser/IntersectionNodeParser.js.map +1 -1
- package/dist/src/NodeParser/MappedTypeNodeParser.js +12 -5
- package/dist/src/NodeParser/MappedTypeNodeParser.js.map +1 -1
- package/dist/src/NodeParser/ObjectLiteralExpressionNodeParser.js +1 -0
- package/dist/src/NodeParser/ObjectLiteralExpressionNodeParser.js.map +1 -1
- package/dist/src/NodeParser/PrefixUnaryExpressionNodeParser.js +1 -0
- package/dist/src/NodeParser/PrefixUnaryExpressionNodeParser.js.map +1 -1
- package/dist/src/NodeParser/PromiseNodeParser.d.ts +3 -0
- package/dist/src/NodeParser/PromiseNodeParser.js +19 -1
- package/dist/src/NodeParser/PromiseNodeParser.js.map +1 -1
- package/dist/src/NodeParser/SpreadElementNodeParser.d.ts +4 -0
- package/dist/src/NodeParser/SpreadElementNodeParser.js +4 -0
- package/dist/src/NodeParser/SpreadElementNodeParser.js.map +1 -1
- package/dist/src/NodeParser/TypeLiteralNodeParser.js +5 -0
- package/dist/src/NodeParser/TypeLiteralNodeParser.js.map +1 -1
- package/dist/src/NodeParser/TypeOperatorNodeParser.js +1 -0
- package/dist/src/NodeParser/TypeOperatorNodeParser.js.map +1 -1
- package/dist/src/NodeParser/TypeReferenceNodeParser.js +6 -0
- package/dist/src/NodeParser/TypeReferenceNodeParser.js.map +1 -1
- package/dist/src/NodeParser/TypeofNodeParser.js +1 -0
- package/dist/src/NodeParser/TypeofNodeParser.js.map +1 -1
- package/dist/src/SchemaGenerator.js +28 -1
- package/dist/src/SchemaGenerator.js.map +1 -1
- package/dist/src/Type/AnnotatedType.d.ts +1 -3
- package/dist/src/Type/AnnotatedType.js.map +1 -1
- package/dist/src/Type/BaseType.d.ts +3 -0
- package/dist/src/Type/BaseType.js +3 -0
- package/dist/src/Type/BaseType.js.map +1 -1
- package/dist/src/Type/ObjectType.js +3 -1
- package/dist/src/Type/ObjectType.js.map +1 -1
- package/dist/src/Type/UnionType.d.ts +3 -0
- package/dist/src/Type/UnionType.js +3 -0
- package/dist/src/Type/UnionType.js.map +1 -1
- package/dist/src/Type/UnknownType.d.ts +11 -1
- package/dist/src/Type/UnknownType.js +8 -1
- package/dist/src/Type/UnknownType.js.map +1 -1
- package/dist/src/TypeFormatter/AnnotatedTypeFormatter.js +2 -1
- package/dist/src/TypeFormatter/AnnotatedTypeFormatter.js.map +1 -1
- package/dist/src/TypeFormatter/EnumTypeFormatter.d.ts +3 -0
- package/dist/src/TypeFormatter/EnumTypeFormatter.js +7 -0
- package/dist/src/TypeFormatter/EnumTypeFormatter.js.map +1 -1
- package/dist/src/TypeFormatter/IntersectionTypeFormatter.js +3 -0
- package/dist/src/TypeFormatter/IntersectionTypeFormatter.js.map +1 -1
- package/dist/src/TypeFormatter/LiteralUnionTypeFormatter.js +7 -0
- package/dist/src/TypeFormatter/LiteralUnionTypeFormatter.js.map +1 -1
- package/dist/src/TypeFormatter/ReferenceTypeFormatter.js +6 -0
- package/dist/src/TypeFormatter/ReferenceTypeFormatter.js.map +1 -1
- package/dist/src/TypeFormatter/TupleTypeFormatter.js +12 -5
- package/dist/src/TypeFormatter/TupleTypeFormatter.js.map +1 -1
- package/dist/src/TypeFormatter/UnionTypeFormatter.js +1 -0
- package/dist/src/TypeFormatter/UnionTypeFormatter.js.map +1 -1
- package/dist/src/Utils/allOfDefinition.js +5 -0
- package/dist/src/Utils/allOfDefinition.js.map +1 -1
- package/dist/src/Utils/deepMerge.d.ts +8 -0
- package/dist/src/Utils/deepMerge.js +9 -0
- package/dist/src/Utils/deepMerge.js.map +1 -1
- package/dist/src/Utils/derefType.d.ts +6 -0
- package/dist/src/Utils/derefType.js +6 -0
- package/dist/src/Utils/derefType.js.map +1 -1
- package/dist/src/Utils/intersectionOfArrays.js +1 -0
- package/dist/src/Utils/intersectionOfArrays.js.map +1 -1
- package/dist/src/Utils/isAssignableTo.d.ts +12 -0
- package/dist/src/Utils/isAssignableTo.js +54 -0
- package/dist/src/Utils/isAssignableTo.js.map +1 -1
- package/dist/src/Utils/modifiers.d.ts +19 -0
- package/dist/src/Utils/modifiers.js +19 -0
- package/dist/src/Utils/modifiers.js.map +1 -1
- package/dist/src/Utils/narrowType.d.ts +12 -0
- package/dist/src/Utils/narrowType.js +15 -0
- package/dist/src/Utils/narrowType.js.map +1 -1
- package/dist/src/Utils/nodeKey.d.ts +1 -1
- package/dist/src/Utils/nodeKey.js +7 -1
- package/dist/src/Utils/nodeKey.js.map +1 -1
- package/dist/src/Utils/preserveAnnotation.d.ts +6 -0
- package/dist/src/Utils/preserveAnnotation.js +6 -0
- package/dist/src/Utils/preserveAnnotation.js.map +1 -1
- package/dist/src/Utils/removeUndefined.d.ts +3 -0
- package/dist/src/Utils/removeUndefined.js +3 -0
- package/dist/src/Utils/removeUndefined.js.map +1 -1
- package/dist/src/Utils/removeUnreachable.js +1 -0
- package/dist/src/Utils/removeUnreachable.js.map +1 -1
- package/dist/src/Utils/symbolAtNode.js +1 -0
- package/dist/src/Utils/symbolAtNode.js.map +1 -1
- package/dist/src/Utils/typeKeys.js +1 -0
- package/dist/src/Utils/typeKeys.js.map +1 -1
- package/dist/ts-json-schema-generator.js +4 -0
- package/dist/ts-json-schema-generator.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/factory/parser.ts +2 -0
- package/factory/program.ts +8 -4
- package/package.json +28 -33
- package/src/Error/BaseError.ts +1 -3
- package/src/NodeParser/BinaryExpressionNodeParser.ts +99 -0
- package/src/NodeParser/IndexedAccessTypeNodeParser.ts +4 -1
- package/src/NodeParser/MappedTypeNodeParser.ts +12 -8
- package/src/SchemaGenerator.ts +18 -3
- package/src/Type/AnnotatedType.ts +1 -3
- package/src/Type/UnknownType.ts +1 -1
- package/src/TypeFormatter/AnnotatedTypeFormatter.ts +2 -2
- package/src/Utils/narrowType.ts +1 -6
- package/src/Utils/nodeKey.ts +3 -1
package/dist/factory/parser.js
CHANGED
|
@@ -11,6 +11,7 @@ const AnyTypeNodeParser_js_1 = require("../src/NodeParser/AnyTypeNodeParser.js")
|
|
|
11
11
|
const ArrayLiteralExpressionNodeParser_js_1 = require("../src/NodeParser/ArrayLiteralExpressionNodeParser.js");
|
|
12
12
|
const ArrayNodeParser_js_1 = require("../src/NodeParser/ArrayNodeParser.js");
|
|
13
13
|
const AsExpressionNodeParser_js_1 = require("../src/NodeParser/AsExpressionNodeParser.js");
|
|
14
|
+
const BinaryExpressionNodeParser_js_1 = require("../src/NodeParser/BinaryExpressionNodeParser.js");
|
|
14
15
|
const BooleanLiteralNodeParser_js_1 = require("../src/NodeParser/BooleanLiteralNodeParser.js");
|
|
15
16
|
const BooleanTypeNodeParser_js_1 = require("../src/NodeParser/BooleanTypeNodeParser.js");
|
|
16
17
|
const CallExpressionParser_js_1 = require("../src/NodeParser/CallExpressionParser.js");
|
|
@@ -69,6 +70,7 @@ function createParser(program, config, augmentor) {
|
|
|
69
70
|
}
|
|
70
71
|
function withTopRef(nodeParser) {
|
|
71
72
|
const typeArr = (0, castArray_js_1.castArray)(config.type);
|
|
73
|
+
// If we have multiple types, don't set a top-level $ref.
|
|
72
74
|
const topRefFullName = typeArr && typeArr.length === 1 ? typeArr[0] : undefined;
|
|
73
75
|
return new TopRefNodeParser_js_1.TopRefNodeParser(chainNodeParser, topRefFullName, config.topRef);
|
|
74
76
|
}
|
|
@@ -103,6 +105,7 @@ function createParser(program, config, augmentor) {
|
|
|
103
105
|
.addNodeParser(new NeverTypeNodeParser_js_1.NeverTypeNodeParser())
|
|
104
106
|
.addNodeParser(new ObjectTypeNodeParser_js_1.ObjectTypeNodeParser())
|
|
105
107
|
.addNodeParser(new AsExpressionNodeParser_js_1.AsExpressionNodeParser(chainNodeParser))
|
|
108
|
+
.addNodeParser(new BinaryExpressionNodeParser_js_1.BinaryExpressionNodeParser(chainNodeParser))
|
|
106
109
|
.addNodeParser(new SatisfiesNodeParser_js_1.SatisfiesNodeParser(chainNodeParser))
|
|
107
110
|
.addNodeParser(withJsDoc(new ParameterParser_js_1.ParameterParser(chainNodeParser)))
|
|
108
111
|
.addNodeParser(new StringLiteralNodeParser_js_1.StringLiteralNodeParser())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../factory/parser.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../factory/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/factory/program.js
CHANGED
|
@@ -6,7 +6,7 @@ const path = tslib_1.__importStar(require("node:path"));
|
|
|
6
6
|
const normalize_path_1 = tslib_1.__importDefault(require("normalize-path"));
|
|
7
7
|
const typescript_1 = tslib_1.__importDefault(require("typescript"));
|
|
8
8
|
const Errors_js_1 = require("../src/Error/Errors.js");
|
|
9
|
-
const
|
|
9
|
+
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
10
10
|
function loadTsConfigFile(configFile) {
|
|
11
11
|
const raw = typescript_1.default.sys.readFile(configFile);
|
|
12
12
|
if (!raw) {
|
|
@@ -43,15 +43,18 @@ function getTsConfig(config) {
|
|
|
43
43
|
noEmit: true,
|
|
44
44
|
emitDecoratorMetadata: true,
|
|
45
45
|
experimentalDecorators: true,
|
|
46
|
-
target: typescript_1.default.ScriptTarget.
|
|
46
|
+
target: typescript_1.default.ScriptTarget.ES2022,
|
|
47
47
|
module: typescript_1.default.ModuleKind.CommonJS,
|
|
48
48
|
strictNullChecks: false,
|
|
49
|
+
skipLibCheck: true,
|
|
50
|
+
skipDefaultLibCheck: true,
|
|
51
|
+
esModuleInterop: true,
|
|
49
52
|
},
|
|
50
53
|
};
|
|
51
54
|
}
|
|
52
55
|
function createProgram(config) {
|
|
53
56
|
const rootNamesFromPath = config.path
|
|
54
|
-
?
|
|
57
|
+
? node_fs_1.default.globSync((0, normalize_path_1.default)(path.resolve(config.path))).map((rootName) => (0, normalize_path_1.default)(rootName))
|
|
55
58
|
: [];
|
|
56
59
|
const tsconfig = getTsConfig(config);
|
|
57
60
|
const rootNames = rootNamesFromPath.length ? rootNamesFromPath : tsconfig.fileNames;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../factory/program.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../factory/program.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-json-schema-generator",
|
|
3
|
-
"version": "2.5.0
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Generate JSON schema from your Typescript sources",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ts",
|
|
@@ -49,53 +49,48 @@
|
|
|
49
49
|
"prepublishOnly": "npm run build",
|
|
50
50
|
"release": "npm run build && auto shipit",
|
|
51
51
|
"run": "tsx ts-json-schema-generator.ts",
|
|
52
|
-
"test": "
|
|
53
|
-
"test:
|
|
54
|
-
"test:fast": "cross-env FAST_TEST=1
|
|
55
|
-
"test:update": "cross-env UPDATE_SCHEMA=true
|
|
52
|
+
"test": "tsx --test \"test/**/*.test.ts\"",
|
|
53
|
+
"test:debug": "tsx --inspect-brk --test-concurrency=1 --test",
|
|
54
|
+
"test:fast": "cross-env FAST_TEST=1 tsx --test \"test/**/*.test.ts\"",
|
|
55
|
+
"test:update": "cross-env FAST_TEST=1 UPDATE_SCHEMA=true tsx --test \"test/**/*.test.ts\"",
|
|
56
|
+
"test:coverage": "c8 --reporter lcov --reporter text tsx --test \"test/**/*.test.ts\"",
|
|
56
57
|
"watch": "tsc -w"
|
|
57
58
|
},
|
|
58
59
|
"dependencies": {
|
|
59
60
|
"@types/json-schema": "^7.0.15",
|
|
60
|
-
"commander": "^14.0.
|
|
61
|
-
"glob": "^13.0.0",
|
|
61
|
+
"commander": "^14.0.2",
|
|
62
62
|
"json5": "^2.2.3",
|
|
63
63
|
"normalize-path": "^3.0.0",
|
|
64
64
|
"safe-stable-stringify": "^2.5.0",
|
|
65
65
|
"tslib": "^2.8.1",
|
|
66
|
-
"typescript": "^5.
|
|
67
|
-
"@typescript/vfs": "1.6.2"
|
|
66
|
+
"typescript": "^5.9.3"
|
|
68
67
|
},
|
|
69
68
|
"devDependencies": {
|
|
70
|
-
"@auto-it/conventional-commits": "^11.3.
|
|
71
|
-
"@auto-it/first-time-contributor": "^11.3.
|
|
72
|
-
"@
|
|
73
|
-
"@babel/preset-env": "^7.28.0",
|
|
74
|
-
"@babel/preset-typescript": "^7.27.1",
|
|
75
|
-
"@eslint/js": "^9.30.1",
|
|
69
|
+
"@auto-it/conventional-commits": "^11.3.6",
|
|
70
|
+
"@auto-it/first-time-contributor": "^11.3.6",
|
|
71
|
+
"@eslint/js": "^9.39.1",
|
|
76
72
|
"@types/eslint": "^9.6.1",
|
|
77
|
-
"@types/
|
|
78
|
-
"@types/node": "^24.0.10",
|
|
73
|
+
"@types/node": "^24.10.1",
|
|
79
74
|
"@types/normalize-path": "^3.0.2",
|
|
75
|
+
"@typescript/vfs": "1.6.2",
|
|
80
76
|
"ajv": "^8.17.1",
|
|
81
77
|
"ajv-formats": "^3.0.1",
|
|
82
|
-
"auto": "^11.3.
|
|
83
|
-
"
|
|
84
|
-
"cross-env": "^10.
|
|
85
|
-
"eslint": "9.39.
|
|
86
|
-
"eslint-config-prettier": "^10.1.
|
|
87
|
-
"eslint-plugin-prettier": "^5.5.
|
|
88
|
-
"globals": "^
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"vega": "^6.1
|
|
95
|
-
"vega-lite": "^6.2.0"
|
|
78
|
+
"auto": "^11.3.6",
|
|
79
|
+
"c8": "^10.1.3",
|
|
80
|
+
"cross-env": "^10.1.0",
|
|
81
|
+
"eslint": "9.39.2",
|
|
82
|
+
"eslint-config-prettier": "^10.1.8",
|
|
83
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
84
|
+
"globals": "^17.0.0",
|
|
85
|
+
"prettier": "^3.7.3",
|
|
86
|
+
"try": "^1.0.1",
|
|
87
|
+
"tsx": "^4.21.0",
|
|
88
|
+
"typescript-eslint": "^8.48.0",
|
|
89
|
+
"vega": "^6.2.0",
|
|
90
|
+
"vega-lite": "^6.4.1"
|
|
96
91
|
},
|
|
97
|
-
"packageManager": "npm@11.4
|
|
92
|
+
"packageManager": "npm@11.6.4",
|
|
98
93
|
"engines": {
|
|
99
|
-
"node": ">=
|
|
94
|
+
"node": ">=22.0.0"
|
|
100
95
|
}
|
|
101
96
|
}
|
|
@@ -14,9 +14,11 @@ class BasicAnnotationsReader {
|
|
|
14
14
|
"format",
|
|
15
15
|
"pattern",
|
|
16
16
|
"ref",
|
|
17
|
+
// New since draft-07:
|
|
17
18
|
"comment",
|
|
18
19
|
"contentMediaType",
|
|
19
20
|
"contentEncoding",
|
|
21
|
+
// Custom tag for if-then-else support.
|
|
20
22
|
"discriminator",
|
|
21
23
|
]);
|
|
22
24
|
static jsonTags = new Set([
|
|
@@ -38,11 +40,13 @@ class BasicAnnotationsReader {
|
|
|
38
40
|
"examples",
|
|
39
41
|
"default",
|
|
40
42
|
"required",
|
|
43
|
+
// New since draft-07:
|
|
41
44
|
"if",
|
|
42
45
|
"then",
|
|
43
46
|
"else",
|
|
44
47
|
"readOnly",
|
|
45
48
|
"writeOnly",
|
|
49
|
+
// New since draft 2019-09:
|
|
46
50
|
"deprecated",
|
|
47
51
|
]);
|
|
48
52
|
constructor(extraTags) {
|
|
@@ -73,6 +77,7 @@ class BasicAnnotationsReader {
|
|
|
73
77
|
}
|
|
74
78
|
parseJsDocTag(jsDocTag) {
|
|
75
79
|
const isTextTag = BasicAnnotationsReader.textTags.has(jsDocTag.name);
|
|
80
|
+
// Non-text tags without explicit value (e.g. `@deprecated`) default to `true`.
|
|
76
81
|
const defaultText = isTextTag ? "" : "true";
|
|
77
82
|
const text = jsDocTag.text?.map((part) => part.text).join("") || defaultText;
|
|
78
83
|
if (isTextTag) {
|
|
@@ -87,6 +92,7 @@ class BasicAnnotationsReader {
|
|
|
87
92
|
return parsed;
|
|
88
93
|
}
|
|
89
94
|
else {
|
|
95
|
+
// Unknown jsDoc tag.
|
|
90
96
|
return undefined;
|
|
91
97
|
}
|
|
92
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasicAnnotationsReader.js","sourceRoot":"","sources":["../../../src/AnnotationsReader/BasicAnnotationsReader.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAI1B,8DAAwD;AAExD,MAAa,sBAAsB;IA0DJ;IAzDnB,MAAM,CAAC,cAAc,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAS;QACtC,OAAO;QACP,aAAa;QACb,IAAI;QAEJ,QAAQ;QACR,SAAS;QACT,KAAK;
|
|
1
|
+
{"version":3,"file":"BasicAnnotationsReader.js","sourceRoot":"","sources":["../../../src/AnnotationsReader/BasicAnnotationsReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,5 +10,9 @@ export declare class ExtendedAnnotationsReader extends BasicAnnotationsReader {
|
|
|
10
10
|
isNullable(node: ts.Node): boolean;
|
|
11
11
|
private getDescriptionAnnotation;
|
|
12
12
|
private getTypeAnnotation;
|
|
13
|
+
/**
|
|
14
|
+
* Attempts to gather examples from the @-example jsdoc tag.
|
|
15
|
+
* See https://tsdoc.org/pages/tags/example/
|
|
16
|
+
*/
|
|
13
17
|
private getExampleAnnotation;
|
|
14
18
|
}
|
|
@@ -79,6 +79,10 @@ class ExtendedAnnotationsReader extends BasicAnnotationsReader_js_1.BasicAnnotat
|
|
|
79
79
|
const text = (jsDocTag.text ?? []).map((part) => part.text).join("");
|
|
80
80
|
return { type: text };
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Attempts to gather examples from the @-example jsdoc tag.
|
|
84
|
+
* See https://tsdoc.org/pages/tags/example/
|
|
85
|
+
*/
|
|
82
86
|
getExampleAnnotation(node) {
|
|
83
87
|
const symbol = (0, symbolAtNode_js_1.symbolAtNode)(node);
|
|
84
88
|
if (!symbol) {
|
|
@@ -95,6 +99,9 @@ class ExtendedAnnotationsReader extends BasicAnnotationsReader_js_1.BasicAnnotat
|
|
|
95
99
|
examples.push(json5_1.default.parse(text));
|
|
96
100
|
}
|
|
97
101
|
catch {
|
|
102
|
+
// ignore examples which don't parse to valid JSON
|
|
103
|
+
// This could be improved to support a broader range of usages,
|
|
104
|
+
// such as if the example has a title (as explained in the tsdoc spec).
|
|
98
105
|
}
|
|
99
106
|
}
|
|
100
107
|
if (examples.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtendedAnnotationsReader.js","sourceRoot":"","sources":["../../../src/AnnotationsReader/ExtendedAnnotationsReader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ExtendedAnnotationsReader.js","sourceRoot":"","sources":["../../../src/AnnotationsReader/ExtendedAnnotationsReader.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Config.d.ts
CHANGED
|
@@ -1,23 +1,122 @@
|
|
|
1
1
|
import type ts from "typescript";
|
|
2
2
|
export interface Config {
|
|
3
|
+
/**
|
|
4
|
+
* Glob pattern(s) for source TypeScript files to process.
|
|
5
|
+
* If not provided, falls back to files from tsconfig.
|
|
6
|
+
*/
|
|
3
7
|
path?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Name of the type(s)/interface(s) to generate schema for.
|
|
10
|
+
* Use "*" to generate schemas for all exported types.
|
|
11
|
+
*/
|
|
4
12
|
type?: string | string[];
|
|
13
|
+
/**
|
|
14
|
+
* Minify the output JSON schema (no whitespace).
|
|
15
|
+
* When false, the schema is pretty-printed with 2-space indentation.
|
|
16
|
+
* @default false
|
|
17
|
+
*/
|
|
5
18
|
minify?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Sets the `$id` property in the root of the generated schema.
|
|
21
|
+
* Used for schema identification and referencing.
|
|
22
|
+
*/
|
|
6
23
|
schemaId?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Path to a custom tsconfig.json file for TypeScript compilation.
|
|
26
|
+
* If not provided, uses default TypeScript configuration.
|
|
27
|
+
*/
|
|
7
28
|
tsconfig?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Controls which types are exposed as definitions in the schema.
|
|
31
|
+
* - "all": Exposes all types except type literals
|
|
32
|
+
* - "none": Exposes no types automatically
|
|
33
|
+
* - "export": Only exposes exported types (respects @internal JSDoc tag)
|
|
34
|
+
* @default "export"
|
|
35
|
+
*/
|
|
8
36
|
expose?: "all" | "none" | "export";
|
|
37
|
+
/**
|
|
38
|
+
* Wraps the root type in a `$ref` definition.
|
|
39
|
+
* When false, inlines the root type definition directly.
|
|
40
|
+
* @default true
|
|
41
|
+
*/
|
|
9
42
|
topRef?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Controls how JSDoc comments are parsed and included in the schema.
|
|
45
|
+
* - "none": Ignores all JSDoc annotations
|
|
46
|
+
* - "basic": Parses standard JSON Schema JSDoc tags
|
|
47
|
+
* - "extended": Parses all tags plus descriptions, examples, and type overrides
|
|
48
|
+
* @default "extended"
|
|
49
|
+
*/
|
|
10
50
|
jsDoc?: "none" | "extended" | "basic";
|
|
51
|
+
/**
|
|
52
|
+
* Adds a `markdownDescription` field alongside `description` in the schema.
|
|
53
|
+
* Preserves markdown formatting including newlines.
|
|
54
|
+
* Only works with `jsDoc: "extended"`.
|
|
55
|
+
* @default false
|
|
56
|
+
*/
|
|
11
57
|
markdownDescription?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Includes the complete raw JSDoc comment as `fullDescription` in the schema.
|
|
60
|
+
* Only works with `jsDoc: "extended"`.
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
12
63
|
fullDescription?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Sorts object properties alphabetically in the output.
|
|
66
|
+
* @default true
|
|
67
|
+
*/
|
|
13
68
|
sortProps?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Controls whether tuples allow additional items beyond their defined length.
|
|
71
|
+
* @default false
|
|
72
|
+
*/
|
|
14
73
|
strictTuples?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Skips TypeScript type checking to improve performance.
|
|
76
|
+
* Speeds up generation but may miss type errors.
|
|
77
|
+
* @default false
|
|
78
|
+
*/
|
|
15
79
|
skipTypeCheck?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* URI-encodes `$ref` values (e.g., `#/definitions/Foo%3CBar%3E`).
|
|
82
|
+
* When false, uses raw names in reference paths.
|
|
83
|
+
* @default true
|
|
84
|
+
*/
|
|
16
85
|
encodeRefs?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Array of additional JSDoc tag names to include in the schema.
|
|
88
|
+
* Custom tags (e.g., `@customProperty`) are parsed and included in output.
|
|
89
|
+
* Values are parsed as JSON5.
|
|
90
|
+
* @default []
|
|
91
|
+
*/
|
|
17
92
|
extraTags?: string[];
|
|
93
|
+
/**
|
|
94
|
+
* Sets default value for `additionalProperties` on objects without index signatures.
|
|
95
|
+
* When false, objects get `additionalProperties: false` by default.
|
|
96
|
+
* When true, allows additional properties on all objects.
|
|
97
|
+
* @default false
|
|
98
|
+
*/
|
|
18
99
|
additionalProperties?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Controls discriminator style for discriminated unions.
|
|
102
|
+
* - "json-schema": Uses `if`/`then`/`allOf` with properties containing discriminator enum
|
|
103
|
+
* - "open-api": Uses OpenAPI 3.x style with `discriminator: { propertyName }` and `oneOf`
|
|
104
|
+
* @default "json-schema"
|
|
105
|
+
*/
|
|
19
106
|
discriminatorType?: "json-schema" | "open-api";
|
|
107
|
+
/**
|
|
108
|
+
* Controls how function types are handled in the schema.
|
|
109
|
+
* - "fail": Throws error when encountering function types
|
|
110
|
+
* - "comment": Generates schema with `$comment` describing the function signature
|
|
111
|
+
* - "hide": Treats functions as NeverType (excluded from schema)
|
|
112
|
+
* @default "comment"
|
|
113
|
+
*/
|
|
20
114
|
functions?: FunctionOptions;
|
|
115
|
+
/**
|
|
116
|
+
* Pre-compiled TypeScript Program instance to use.
|
|
117
|
+
* Bypasses the default setup of a TypeScript program, and so some configuration options may not be applied.
|
|
118
|
+
* Useful for programmatic usage with existing TypeScript compilation, or for vfs scenarios where you do not want file-system representation.
|
|
119
|
+
*/
|
|
21
120
|
tsProgram?: ts.Program;
|
|
22
121
|
}
|
|
23
122
|
export type CompletedConfig = Config & typeof DEFAULT_CONFIG;
|
|
@@ -3,12 +3,17 @@ export type PartialDiagnostic = Omit<ts.Diagnostic, "category" | "file" | "start
|
|
|
3
3
|
file?: ts.SourceFile;
|
|
4
4
|
start?: number;
|
|
5
5
|
length?: number;
|
|
6
|
+
/** If we should populate `file`, `source`, `start` and `length` with this node information */
|
|
6
7
|
node?: ts.Node;
|
|
8
|
+
/** @default Error */
|
|
7
9
|
category?: ts.DiagnosticCategory;
|
|
8
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Base error for ts-json-schema-generator
|
|
13
|
+
*/
|
|
9
14
|
export declare abstract class BaseError extends Error {
|
|
10
15
|
readonly diagnostic: ts.Diagnostic;
|
|
11
16
|
constructor(diagnostic: PartialDiagnostic);
|
|
12
17
|
static createDiagnostic(diagnostic: PartialDiagnostic): ts.Diagnostic;
|
|
13
|
-
format(): string;
|
|
18
|
+
format(isTTY?: string | boolean): string;
|
|
14
19
|
}
|
|
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BaseError = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const typescript_1 = tslib_1.__importDefault(require("typescript"));
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Base error for ts-json-schema-generator
|
|
8
|
+
*/
|
|
7
9
|
class BaseError extends Error {
|
|
8
10
|
diagnostic;
|
|
9
11
|
constructor(diagnostic) {
|
|
@@ -11,12 +13,16 @@ class BaseError extends Error {
|
|
|
11
13
|
this.diagnostic = BaseError.createDiagnostic(diagnostic);
|
|
12
14
|
}
|
|
13
15
|
static createDiagnostic(diagnostic) {
|
|
16
|
+
// Swap the node for the file, source, start and length properties
|
|
17
|
+
// sourceless nodes cannot be referenced in the diagnostic
|
|
14
18
|
if (diagnostic.node && diagnostic.node.pos !== -1) {
|
|
15
19
|
diagnostic.file = diagnostic.node.getSourceFile();
|
|
16
20
|
diagnostic.start = diagnostic.node.getStart();
|
|
17
21
|
diagnostic.length = diagnostic.node.getWidth();
|
|
18
22
|
diagnostic.node = undefined;
|
|
19
23
|
}
|
|
24
|
+
// @ts-expect-error - Differentiates from errors from the TypeScript compiler
|
|
25
|
+
// error TSJ - 100: message
|
|
20
26
|
diagnostic.code = `J - ${diagnostic.code}`;
|
|
21
27
|
return Object.assign({
|
|
22
28
|
category: typescript_1.default.DiagnosticCategory.Error,
|
|
@@ -25,7 +31,7 @@ class BaseError extends Error {
|
|
|
25
31
|
start: 0,
|
|
26
32
|
}, diagnostic);
|
|
27
33
|
}
|
|
28
|
-
format() {
|
|
34
|
+
format(isTTY = process.env.TTY || process.stdout.isTTY) {
|
|
29
35
|
const formatter = isTTY ? typescript_1.default.formatDiagnosticsWithColorAndContext : typescript_1.default.formatDiagnostics;
|
|
30
36
|
return formatter([this.diagnostic], {
|
|
31
37
|
getCanonicalFileName: (fileName) => fileName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseError.js","sourceRoot":"","sources":["../../../src/Error/BaseError.ts"],"names":[],"mappings":";;;;AAAA,oEAA4B;AAc5B
|
|
1
|
+
{"version":3,"file":"BaseError.js","sourceRoot":"","sources":["../../../src/Error/BaseError.ts"],"names":[],"mappings":";;;;AAAA,oEAA4B;AAc5B;;GAEG;AACH,MAAsB,SAAU,SAAQ,KAAK;IAChC,UAAU,CAAgB;IAEnC,YAAY,UAA6B;QACrC,KAAK,CAAC,oBAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,UAA6B;QACjD,kEAAkE;QAClE,0DAA0D;QAC1D,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YAChD,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAClD,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9C,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE/C,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC;QAChC,CAAC;QAED,6EAA6E;QAC7E,2BAA2B;QAC3B,UAAU,CAAC,IAAI,GAAG,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;QAE3C,OAAO,MAAM,CAAC,MAAM,CAChB;YACI,QAAQ,EAAE,oBAAE,CAAC,kBAAkB,CAAC,KAAK;YACrC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;SACX,EACD,UAAU,CACb,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK;QAClD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,oBAAE,CAAC,oCAAoC,CAAC,CAAC,CAAC,oBAAE,CAAC,iBAAiB,CAAC;QAEzF,OAAO,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAChC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;YAC5C,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE;YAC7B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;SACzB,CAAC,CAAC;IACP,CAAC;CACJ;AA3CD,8BA2CC"}
|
|
@@ -42,5 +42,8 @@ export declare class BuildError extends BaseError {
|
|
|
42
42
|
export declare class UnhandledError extends BaseError {
|
|
43
43
|
readonly cause?: unknown | undefined;
|
|
44
44
|
private constructor();
|
|
45
|
+
/**
|
|
46
|
+
* Creates a new error with a cause and optional node information and ensures it is not wrapped in another UnhandledError
|
|
47
|
+
*/
|
|
45
48
|
static from(message: string, node?: ts.Node, cause?: unknown): BaseError | UnhandledError;
|
|
46
49
|
}
|
package/dist/src/Error/Errors.js
CHANGED
|
@@ -114,7 +114,12 @@ class UnhandledError extends BaseError_js_1.BaseError {
|
|
|
114
114
|
super({ code: 109, messageText, node });
|
|
115
115
|
this.cause = cause;
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Creates a new error with a cause and optional node information and ensures it is not wrapped in another UnhandledError
|
|
119
|
+
*/
|
|
117
120
|
static from(message, node, cause) {
|
|
121
|
+
// This might be called deeply inside the parser chain
|
|
122
|
+
// this ensures it doesn't end up with error.cause.cause.cause...
|
|
118
123
|
return cause instanceof BaseError_js_1.BaseError ? cause : new UnhandledError(message, node, cause);
|
|
119
124
|
}
|
|
120
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../../src/Error/Errors.ts"],"names":[],"mappings":";;;;AACA,oEAA4B;AAE5B,iDAAmE;AAEnE,MAAa,gBAAiB,SAAQ,wBAAS;IACtB;IAArB,YAAqB,IAAa;QAC9B,KAAK,CAAC;YACF,IAAI,EAAE,GAAG;YACT,IAAI;YACJ,WAAW,EAAE,yBAAyB,oBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACpE,CAAC,CAAC;QALc,SAAI,GAAJ,IAAI,CAAS;IAMlC,CAAC;CACJ;AARD,4CAQC;AAED,MAAa,gBAAiB,SAAQ,wBAAS;IACtB;IAArB,YAAqB,IAAc;QAC/B,KAAK,CAAC;YACF,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,iBAAiB,IAAI,EAAE,KAAK,EAAE,GAAG;SACjD,CAAC,CAAC;QAJc,SAAI,GAAJ,IAAI,CAAU;IAKnC,CAAC;CACJ;AAPD,4CAOC;AAED,MAAa,aAAc,SAAQ,wBAAS;IACnB;IAArB,YAAqB,QAAgB;QACjC,KAAK,CAAC;YACF,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,iBAAiB,QAAQ,SAAS;SAClD,CAAC,CAAC;QAJc,aAAQ,GAAR,QAAQ,CAAQ;IAKrC,CAAC;CACJ;AAPD,sCAOC;AAED,MAAa,wBAAyB,SAAQ,wBAAS;IAEtC;IACA;IACA;IAHb,YACa,IAAY,EACZ,IAAc,EACd,IAAe;QAExB,KAAK,CAAC;YACF,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,SAAS,IAAI,6BAA6B;SAC1D,CAAC,CAAC;QAPM,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAU;QACd,SAAI,GAAJ,IAAI,CAAW;IAM5B,CAAC;CACJ;AAXD,4DAWC;AAED,MAAa,UAAW,SAAQ,wBAAS;IAExB;IADb,YACa,IAAa,EACtB,WAAmB;QAEnB,KAAK,CAAC;YACF,IAAI,EAAE,GAAG;YACT,WAAW;YACX,IAAI;SACP,CAAC,CAAC;QAPM,SAAI,GAAJ,IAAI,CAAS;IAQ1B,CAAC;CACJ;AAXD,gCAWC;AAED,MAAa,sBAAuB,SAAQ,wBAAS;IAGpC;IAFb,YACI,WAAmB,EACV,IAAc;QAEvB,KAAK,CAAC;YACF,IAAI,EAAE,GAAG;YACT,WAAW;YACX,IAAI;SACP,CAAC,CAAC;QANM,SAAI,GAAJ,IAAI,CAAU;IAO3B,CAAC;CACJ;AAXD,wDAWC;AAED,MAAa,aAAc,SAAQ,wBAAS;IAG3B;IAFb,YACI,WAAmB,EACV,IAAc;QAEvB,KAAK,CAAC;YACF,IAAI,EAAE,GAAG;YACT,WAAW;SACd,CAAC,CAAC;QALM,SAAI,GAAJ,IAAI,CAAU;IAM3B,CAAC;CACJ;AAVD,sCAUC;AAED,MAAa,eAAgB,SAAQ,wBAAS;IAG7B;IAFb,YACI,WAAmB,EACV,UAAuB;QAEhC,KAAK,CAAC;YACF,IAAI,EAAE,GAAG;YACT,WAAW;SACd,CAAC,CAAC;QALM,eAAU,GAAV,UAAU,CAAa;IAMpC,CAAC;CACJ;AAVD,0CAUC;AAED,MAAa,UAAW,SAAQ,wBAAS;IACrC,YAAY,IAAqC;QAC7C,KAAK,CAAC;YACF,IAAI,EAAE,GAAG;YACT,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;CACJ;AAPD,gCAOC;AAED,MAAa,cAAe,SAAQ,wBAAS;IAI5B;IAHb,YACI,WAAmB,EACnB,IAAc,EACL,KAAe;QAExB,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAF/B,UAAK,GAAL,KAAK,CAAU;IAG5B,CAAC;
|
|
1
|
+
{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../../src/Error/Errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,15 +23,20 @@ class AnnotatedNodeParser {
|
|
|
23
23
|
const annotatedNode = this.getAnnotatedNode(node);
|
|
24
24
|
let annotations = this.annotationsReader.getAnnotations(annotatedNode);
|
|
25
25
|
const nullable = this.getNullable(annotatedNode);
|
|
26
|
+
// Short-circuit parsing the underlying type if an explicit ref annotation was passed.
|
|
26
27
|
if (annotations && "$ref" in annotations) {
|
|
27
28
|
return new AnnotatedType_js_1.AnnotatedType(new AnyType_js_1.AnyType(), annotations, nullable);
|
|
28
29
|
}
|
|
29
30
|
const baseType = this.childNodeParser.createType(node, context, reference);
|
|
31
|
+
// Don't return annotations for lib types such as Exclude.
|
|
32
|
+
// Sourceless nodes may not have a fileName, just ignore them.
|
|
30
33
|
if (node.getSourceFile()?.fileName.match(/[/\\]typescript[/\\]lib[/\\]lib\.[^/\\]+\.d\.ts$/i)) {
|
|
31
34
|
let specialCase = false;
|
|
35
|
+
// Special case for Exclude<T, U>: use the annotation of T.
|
|
32
36
|
if (node.kind === typescript_1.default.SyntaxKind.TypeAliasDeclaration &&
|
|
33
37
|
node.name.text === "Exclude") {
|
|
34
38
|
let t = context.getArgument("T");
|
|
39
|
+
// Handle optional properties.
|
|
35
40
|
if (t instanceof UnionType_js_1.UnionType) {
|
|
36
41
|
t = (0, removeUndefined_js_1.removeUndefined)(t).newType;
|
|
37
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotatedNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/AnnotatedNodeParser.ts"],"names":[],"mappings":";;;;AAAA,oEAA4B;AAE5B,oGAA8F;AAG9F,+DAAyD;AAGzD,oEAA8D;AAC9D,iEAA2D;AAC3D,uDAAiD;AACjD,mDAA6C;AAE7C,MAAa,mBAAmB;IAEd;IACA;IAFd,YACc,eAA8B,EAC9B,iBAAoC;QADpC,oBAAe,GAAf,eAAe,CAAe;QAC9B,sBAAiB,GAAjB,iBAAiB,CAAmB;IAC/C,CAAC;IAEG,YAAY,CAAC,IAAa;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAEM,UAAU,CAAC,IAAa,EAAE,OAAgB,EAAE,SAAyB;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AnnotatedNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/AnnotatedNodeParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ class ArrayNodeParser {
|
|
|
15
15
|
}
|
|
16
16
|
createType(node, context) {
|
|
17
17
|
const type = this.childNodeParser.createType(node.elementType, context);
|
|
18
|
+
// Generics without `extends` or `defaults` cannot be resolved, so we fallback to `any`
|
|
18
19
|
return new ArrayType_js_1.ArrayType(type ?? new AnyType_js_1.AnyType());
|
|
19
20
|
}
|
|
20
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/ArrayNodeParser.ts"],"names":[],"mappings":";;;;AAAA,oEAA4B;AAG5B,mDAA6C;AAC7C,uDAAiD;AAGjD,MAAa,eAAe;IACK;IAA7B,YAA6B,eAA2B;QAA3B,oBAAe,GAAf,eAAe,CAAY;IAAG,CAAC;IAErD,YAAY,CAAC,IAAsB;QACtC,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,SAAS,CAAC;IACjD,CAAC;IAEM,UAAU,CAAC,IAAsB,EAAE,OAAgB;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ArrayNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/ArrayNodeParser.ts"],"names":[],"mappings":";;;;AAAA,oEAA4B;AAG5B,mDAA6C;AAC7C,uDAAiD;AAGjD,MAAa,eAAe;IACK;IAA7B,YAA6B,eAA2B;QAA3B,oBAAe,GAAf,eAAe,CAAY;IAAG,CAAC;IAErD,YAAY,CAAC,IAAsB;QACtC,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,SAAS,CAAC;IACjD,CAAC;IAEM,UAAU,CAAC,IAAsB,EAAE,OAAgB;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACxE,uFAAuF;QACvF,OAAO,IAAI,wBAAS,CAAC,IAAI,IAAI,IAAI,oBAAO,EAAE,CAAC,CAAC;IAChD,CAAC;CACJ;AAZD,0CAYC"}
|
|
@@ -12,6 +12,7 @@ class AsExpressionNodeParser {
|
|
|
12
12
|
return node.kind === typescript_1.default.SyntaxKind.AsExpression;
|
|
13
13
|
}
|
|
14
14
|
createType(node, context) {
|
|
15
|
+
// only implement `as const` for now where we just ignore the as expression
|
|
15
16
|
return this.childNodeParser.createType(node.expression, context);
|
|
16
17
|
}
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsExpressionNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/AsExpressionNodeParser.ts"],"names":[],"mappings":";;;;AACA,oEAA4B;AAK5B,MAAa,sBAAsB;IACF;IAA7B,YAA6B,eAA2B;QAA3B,oBAAe,GAAf,eAAe,CAAY;IAAG,CAAC;IAErD,YAAY,CAAC,IAAqB;QACrC,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC;IACpD,CAAC;IACM,UAAU,CAAC,IAAqB,EAAE,OAAgB;
|
|
1
|
+
{"version":3,"file":"AsExpressionNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/AsExpressionNodeParser.ts"],"names":[],"mappings":";;;;AACA,oEAA4B;AAK5B,MAAa,sBAAsB;IACF;IAA7B,YAA6B,eAA2B;QAA3B,oBAAe,GAAf,eAAe,CAAY;IAAG,CAAC;IAErD,YAAY,CAAC,IAAqB;QACrC,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC;IACpD,CAAC;IACM,UAAU,CAAC,IAAqB,EAAE,OAAgB;QACrD,2EAA2E;QAC3E,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;CACJ;AAVD,wDAUC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import type { Context, NodeParser } from "../NodeParser.js";
|
|
3
|
+
import type { SubNodeParser } from "../SubNodeParser.js";
|
|
4
|
+
import type { BaseType } from "../Type/BaseType.js";
|
|
5
|
+
export declare class BinaryExpressionNodeParser implements SubNodeParser {
|
|
6
|
+
protected childNodeParser: NodeParser;
|
|
7
|
+
constructor(childNodeParser: NodeParser);
|
|
8
|
+
supportsNode(node: ts.Node): boolean;
|
|
9
|
+
createType(node: ts.BinaryExpression, context: Context): BaseType;
|
|
10
|
+
private isStringLike;
|
|
11
|
+
private isBooleanLike;
|
|
12
|
+
private isDefinitelyNumberLike;
|
|
13
|
+
}
|