ts-json-schema-generator 2.5.0-next.0 → 2.5.0-next.10

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.
Files changed (57) hide show
  1. package/README.md +22 -21
  2. package/dist/factory/generator.js +1 -1
  3. package/dist/factory/generator.js.map +1 -1
  4. package/dist/factory/parser.js +9 -2
  5. package/dist/factory/parser.js.map +1 -1
  6. package/dist/package.json +23 -21
  7. package/dist/src/AnnotationsReader/ExtendedAnnotationsReader.d.ts +2 -1
  8. package/dist/src/AnnotationsReader/ExtendedAnnotationsReader.js +22 -10
  9. package/dist/src/AnnotationsReader/ExtendedAnnotationsReader.js.map +1 -1
  10. package/dist/src/Config.d.ts +5 -2
  11. package/dist/src/Config.js +1 -0
  12. package/dist/src/Config.js.map +1 -1
  13. package/dist/src/NodeParser/BinaryExpressionNodeParser.d.ts +13 -0
  14. package/dist/src/NodeParser/BinaryExpressionNodeParser.js +79 -0
  15. package/dist/src/NodeParser/BinaryExpressionNodeParser.js.map +1 -0
  16. package/dist/src/NodeParser/MappedTypeNodeParser.js +1 -1
  17. package/dist/src/NodeParser/MappedTypeNodeParser.js.map +1 -1
  18. package/dist/src/NodeParser/NewExpressionParser.d.ts +13 -0
  19. package/dist/src/NodeParser/NewExpressionParser.js +41 -0
  20. package/dist/src/NodeParser/NewExpressionParser.js.map +1 -0
  21. package/dist/src/NodeParser/TypeOperatorNodeParser.d.ts +1 -1
  22. package/dist/src/NodeParser/TypeOperatorNodeParser.js +2 -1
  23. package/dist/src/NodeParser/TypeOperatorNodeParser.js.map +1 -1
  24. package/dist/src/NodeParser/TypeReferenceNodeParser.js +1 -1
  25. package/dist/src/NodeParser/TypeReferenceNodeParser.js.map +1 -1
  26. package/dist/src/SchemaGenerator.d.ts +2 -2
  27. package/dist/src/SchemaGenerator.js +17 -7
  28. package/dist/src/SchemaGenerator.js.map +1 -1
  29. package/dist/src/TypeFormatter/LiteralUnionTypeFormatter.js +10 -5
  30. package/dist/src/TypeFormatter/LiteralUnionTypeFormatter.js.map +1 -1
  31. package/dist/src/TypeFormatter/PrimitiveUnionTypeFormatter.js +6 -2
  32. package/dist/src/TypeFormatter/PrimitiveUnionTypeFormatter.js.map +1 -1
  33. package/dist/src/Utils/castArray.d.ts +1 -0
  34. package/dist/src/Utils/castArray.js +10 -0
  35. package/dist/src/Utils/castArray.js.map +1 -0
  36. package/dist/src/Utils/getFullDescription.d.ts +2 -0
  37. package/dist/src/Utils/getFullDescription.js +33 -0
  38. package/dist/src/Utils/getFullDescription.js.map +1 -0
  39. package/dist/ts-json-schema-generator.js +7 -3
  40. package/dist/ts-json-schema-generator.js.map +1 -1
  41. package/dist/tsconfig.tsbuildinfo +1 -1
  42. package/factory/generator.ts +1 -1
  43. package/factory/parser.ts +15 -2
  44. package/package.json +23 -21
  45. package/src/AnnotationsReader/ExtendedAnnotationsReader.ts +25 -10
  46. package/src/Config.ts +124 -2
  47. package/src/NodeParser/BinaryExpressionNodeParser.ts +99 -0
  48. package/src/NodeParser/MappedTypeNodeParser.ts +1 -1
  49. package/src/NodeParser/NewExpressionParser.ts +46 -0
  50. package/src/NodeParser/TypeOperatorNodeParser.ts +2 -2
  51. package/src/NodeParser/TypeReferenceNodeParser.ts +1 -1
  52. package/src/SchemaGenerator.ts +26 -9
  53. package/src/TypeFormatter/LiteralUnionTypeFormatter.ts +12 -6
  54. package/src/TypeFormatter/PrimitiveUnionTypeFormatter.ts +9 -2
  55. package/src/Utils/castArray.ts +7 -0
  56. package/src/Utils/getFullDescription.ts +39 -0
  57. package/ts-json-schema-generator.ts +12 -3
package/README.md CHANGED
@@ -8,9 +8,9 @@ Extended version of [https://github.com/xiag-ag/typescript-to-json-schema](https
8
8
 
9
9
  Inspired by [`YousefED/typescript-json-schema`](https://github.com/YousefED/typescript-json-schema). Here's the differences list:
10
10
 
11
- - this implementation avoids the use of `typeChecker.getTypeAtLocation()` (so probably it keeps correct type aliases)
12
- - processing AST and formatting JSON schema have been split into two independent steps
13
- - not exported types, interfaces, enums are not exposed in the `definitions` section in the JSON schema
11
+ - this implementation avoids the use of `typeChecker.getTypeAtLocation()` (so probably it keeps correct type aliases)
12
+ - processing AST and formatting JSON schema have been split into two independent steps
13
+ - not exported types, interfaces, enums are not exposed in the `definitions` section in the JSON schema
14
14
 
15
15
  ## Contributors
16
16
 
@@ -47,6 +47,7 @@ By default, the command-line generator will use the `tsconfig.json` file in the
47
47
  -e, --expose <expose> Type exposing (choices: "all", "none", "export", default: "export")
48
48
  -j, --jsDoc <extended> Read JsDoc annotations (choices: "none", "basic", "extended", default: "extended")
49
49
  --markdown-description Generate `markdownDescription` in addition to `description`.
50
+ --full-description Include the full raw JSDoc comment as `fullDescription` in the schema.
50
51
  --functions <functions> How to handle functions. `fail` will throw an error. `comment` will add a comment. `hide` will treat the function like a NeverType or HiddenType.
51
52
  (choices: "fail", "comment", "hide", default: "comment")
52
53
  --minify Minify generated schema (default: false)
@@ -221,20 +222,20 @@ fs.writeFile(outputPath, schemaString, (err) => {
221
222
 
222
223
  ## Current state
223
224
 
224
- - `interface` types
225
- - `enum` types
226
- - `union`, `tuple`, `type[]` types
227
- - `Date`, `RegExp`, `URL` types
228
- - `string`, `boolean`, `number` types
229
- - `"value"`, `123`, `true`, `false`, `null`, `undefined` literals
230
- - type aliases
231
- - generics
232
- - `typeof`
233
- - `keyof`
234
- - conditional types
235
- - functions
236
- - `Promise<T>` unwraps to `T`
237
- - Overrides (like `@format`)
225
+ - `interface` types
226
+ - `enum` types
227
+ - `union`, `tuple`, `type[]` types
228
+ - `Date`, `RegExp`, `URL` types
229
+ - `string`, `boolean`, `number` types
230
+ - `"value"`, `123`, `true`, `false`, `null`, `undefined` literals
231
+ - type aliases
232
+ - generics
233
+ - `typeof`
234
+ - `keyof`
235
+ - conditional types
236
+ - functions
237
+ - `Promise<T>` unwraps to `T`
238
+ - Overrides (like `@format`)
238
239
 
239
240
  ## Run locally
240
241
 
@@ -252,7 +253,7 @@ And connect via the debugger protocol.
252
253
 
253
254
  Publishing is handled by a 2-branch [pre-release process](https://intuit.github.io/auto/docs/generated/shipit#next-branch-default), configured in `publish-auto.yml`. All changes should be based off the default `next` branch, and are published automatically.
254
255
 
255
- - PRs made into the default branch are auto-deployed to the `next` pre-release tag on NPM. The result can be installed with `npm install ts-json-schema-generator@next`
256
- - When merging into `next`, please use the `squash and merge` strategy.
257
- - To release a new stable version, open a PR from `next` into `stable` using this [compare link](https://github.com/vega/ts-json-schema-generator/compare/stable...next).
258
- - When merging from `next` into `stable`, please use the `create a merge commit` strategy.
256
+ - PRs made into the default branch are auto-deployed to the `next` pre-release tag on NPM. The result can be installed with `npm install ts-json-schema-generator@next`
257
+ - When merging into `next`, please use the `squash and merge` strategy.
258
+ - To release a new stable version, open a PR from `next` into `stable` using this [compare link](https://github.com/vega/ts-json-schema-generator/compare/stable...next).
259
+ - When merging from `next` into `stable`, please use the `create a merge commit` strategy.
@@ -8,7 +8,7 @@ const parser_js_1 = require("./parser.js");
8
8
  const program_js_1 = require("./program.js");
9
9
  function createGenerator(config) {
10
10
  const completedConfig = { ...Config_js_1.DEFAULT_CONFIG, ...config };
11
- const program = (0, program_js_1.createProgram)(completedConfig);
11
+ const program = config.tsProgram || (0, program_js_1.createProgram)(completedConfig);
12
12
  const parser = (0, parser_js_1.createParser)(program, completedConfig);
13
13
  const formatter = (0, formatter_js_1.createFormatter)(completedConfig);
14
14
  return new SchemaGenerator_js_1.SchemaGenerator(program, parser, formatter, completedConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../factory/generator.ts"],"names":[],"mappings":";;AAOA,0CAOC;AAbD,gDAAkD;AAClD,kEAA4D;AAC5D,iDAAiD;AACjD,2CAA2C;AAC3C,6CAA6C;AAE7C,SAAgB,eAAe,CAAC,MAAc;IAC1C,MAAM,eAAe,GAAG,EAAE,GAAG,0BAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,eAAe,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAA,8BAAe,EAAC,eAAe,CAAC,CAAC;IAEnD,OAAO,IAAI,oCAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../factory/generator.ts"],"names":[],"mappings":";;AAOA,0CAOC;AAbD,gDAAkD;AAClD,kEAA4D;AAC5D,iDAAiD;AACjD,2CAA2C;AAC3C,6CAA6C;AAE7C,SAAgB,eAAe,CAAC,MAAc;IAC1C,MAAM,eAAe,GAAG,EAAE,GAAG,0BAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,IAAA,0BAAa,EAAC,eAAe,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAA,8BAAe,EAAC,eAAe,CAAC,CAAC;IAEnD,OAAO,IAAI,oCAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAC5E,CAAC"}
@@ -11,10 +11,12 @@ 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");
17
18
  const ConditionalTypeNodeParser_js_1 = require("../src/NodeParser/ConditionalTypeNodeParser.js");
19
+ const NewExpressionParser_js_1 = require("../src/NodeParser/NewExpressionParser.js");
18
20
  const ConstructorNodeParser_js_1 = require("../src/NodeParser/ConstructorNodeParser.js");
19
21
  const EnumNodeParser_js_1 = require("../src/NodeParser/EnumNodeParser.js");
20
22
  const ExpressionWithTypeArgumentsNodeParser_js_1 = require("../src/NodeParser/ExpressionWithTypeArgumentsNodeParser.js");
@@ -59,6 +61,7 @@ const SatisfiesNodeParser_js_1 = require("../src/NodeParser/SatisfiesNodeParser.
59
61
  const PromiseNodeParser_js_1 = require("../src/NodeParser/PromiseNodeParser.js");
60
62
  const SpreadElementNodeParser_js_1 = require("../src/NodeParser/SpreadElementNodeParser.js");
61
63
  const IdentifierNodeParser_js_1 = require("../src/NodeParser/IdentifierNodeParser.js");
64
+ const castArray_js_1 = require("../src/Utils/castArray.js");
62
65
  function createParser(program, config, augmentor) {
63
66
  const typeChecker = program.getTypeChecker();
64
67
  const chainNodeParser = new ChainNodeParser_js_1.ChainNodeParser(typeChecker, []);
@@ -66,12 +69,14 @@ function createParser(program, config, augmentor) {
66
69
  return new ExposeNodeParser_js_1.ExposeNodeParser(typeChecker, nodeParser, config.expose, config.jsDoc);
67
70
  }
68
71
  function withTopRef(nodeParser) {
69
- return new TopRefNodeParser_js_1.TopRefNodeParser(chainNodeParser, config.type, config.topRef);
72
+ const typeArr = (0, castArray_js_1.castArray)(config.type);
73
+ const topRefFullName = typeArr && typeArr.length === 1 ? typeArr[0] : undefined;
74
+ return new TopRefNodeParser_js_1.TopRefNodeParser(chainNodeParser, topRefFullName, config.topRef);
70
75
  }
71
76
  function withJsDoc(nodeParser) {
72
77
  const extraTags = new Set(config.extraTags);
73
78
  if (config.jsDoc === "extended") {
74
- return new AnnotatedNodeParser_js_1.AnnotatedNodeParser(nodeParser, new ExtendedAnnotationsReader_js_1.ExtendedAnnotationsReader(typeChecker, extraTags, config.markdownDescription));
79
+ return new AnnotatedNodeParser_js_1.AnnotatedNodeParser(nodeParser, new ExtendedAnnotationsReader_js_1.ExtendedAnnotationsReader(typeChecker, extraTags, config.markdownDescription, config.fullDescription));
75
80
  }
76
81
  else if (config.jsDoc === "basic") {
77
82
  return new AnnotatedNodeParser_js_1.AnnotatedNodeParser(nodeParser, new BasicAnnotationsReader_js_1.BasicAnnotationsReader(extraTags));
@@ -99,6 +104,7 @@ function createParser(program, config, augmentor) {
99
104
  .addNodeParser(new NeverTypeNodeParser_js_1.NeverTypeNodeParser())
100
105
  .addNodeParser(new ObjectTypeNodeParser_js_1.ObjectTypeNodeParser())
101
106
  .addNodeParser(new AsExpressionNodeParser_js_1.AsExpressionNodeParser(chainNodeParser))
107
+ .addNodeParser(new BinaryExpressionNodeParser_js_1.BinaryExpressionNodeParser(chainNodeParser))
102
108
  .addNodeParser(new SatisfiesNodeParser_js_1.SatisfiesNodeParser(chainNodeParser))
103
109
  .addNodeParser(withJsDoc(new ParameterParser_js_1.ParameterParser(chainNodeParser)))
104
110
  .addNodeParser(new StringLiteralNodeParser_js_1.StringLiteralNodeParser())
@@ -130,6 +136,7 @@ function createParser(program, config, augmentor) {
130
136
  .addNodeParser(new IdentifierNodeParser_js_1.IdentifierNodeParser(chainNodeParser, typeChecker))
131
137
  .addNodeParser(new SpreadElementNodeParser_js_1.SpreadElementNodeParser(chainNodeParser))
132
138
  .addNodeParser(new CallExpressionParser_js_1.CallExpressionParser(typeChecker, chainNodeParser))
139
+ .addNodeParser(new NewExpressionParser_js_1.NewExpressionParser(typeChecker, chainNodeParser))
133
140
  .addNodeParser(new PropertyAccessExpressionParser_js_1.PropertyAccessExpressionParser(typeChecker, chainNodeParser))
134
141
  .addNodeParser(withCircular(withExpose(withJsDoc(new TypeAliasNodeParser_js_1.TypeAliasNodeParser(typeChecker, chainNodeParser)))))
135
142
  .addNodeParser(withExpose(withJsDoc(new EnumNodeParser_js_1.EnumNodeParser(typeChecker))))
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../factory/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../factory/parser.ts"],"names":[],"mappings":";;AAqEA,oCA8HC;AAlMD,kGAA4F;AAC5F,wGAAkG;AAClG,kEAA4D;AAC5D,0FAAoF;AAEpF,oEAA8D;AAG9D,qFAA+E;AAC/E,iFAA2E;AAC3E,+GAAyG;AACzG,6EAAuE;AACvE,2FAAqF;AACrF,mGAA6F;AAC7F,+FAAyF;AACzF,yFAAmF;AACnF,uFAAiF;AACjF,iGAA2F;AAC3F,qFAA+E;AAC/E,yFAAmF;AACnF,2EAAqE;AACrE,yHAAmH;AACnH,mFAA6E;AAC7E,uFAA6E;AAC7E,qGAA+F;AAC/F,qFAA+E;AAC/E,qGAA+F;AAC/F,2FAAqF;AACrF,qFAA+E;AAC/E,iFAA2E;AAC3E,uFAAiF;AACjF,mGAA6F;AAC7F,qFAA+E;AAC/E,yFAAmF;AACnF,6FAAuF;AACvF,uFAAiF;AACjF,iHAA2G;AAC3G,uFAAiF;AACjF,2FAAqF;AACrF,6EAAuE;AACvE,6FAAuF;AACvF,6GAAuG;AACvG,2GAAqG;AACrG,mFAA6E;AAC7E,6FAAuF;AACvF,6GAAuG;AACvG,uFAAiF;AACjF,uFAAiF;AACjF,6EAAuE;AACvE,qFAA+E;AAC/E,yFAAmF;AACnF,+EAAyE;AACzE,2FAAqF;AACrF,6FAAuF;AACvF,6FAAuF;AACvF,6EAAuE;AACvE,yFAAmF;AACnF,mFAA6E;AAE7E,oEAA8D;AAC9D,qFAA+E;AAC/E,iFAA2E;AAC3E,6FAAuF;AACvF,uFAAiF;AACjF,4DAAsD;AAItD,SAAgB,YAAY,CAAC,OAAmB,EAAE,MAAuB,EAAE,SAA2B;IAClG,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG,IAAI,oCAAe,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE7D,SAAS,UAAU,CAAC,UAAyB;QACzC,OAAO,IAAI,sCAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACD,SAAS,UAAU,CAAC,UAAsB;QACtC,MAAM,OAAO,GAAG,IAAA,wBAAS,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,cAAc,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,OAAO,IAAI,sCAAgB,CAAC,eAAe,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAChF,CAAC;IACD,SAAS,SAAS,CAAC,UAAyB;QACxC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,IAAI,4CAAmB,CAC1B,UAAU,EACV,IAAI,wDAAyB,CACzB,WAAW,EACX,SAAS,EACT,MAAM,CAAC,mBAAmB,EAC1B,MAAM,CAAC,eAAe,CACzB,CACJ,CAAC;QACN,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAClC,OAAO,IAAI,4CAAmB,CAAC,UAAU,EAAE,IAAI,kDAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACJ,OAAO,UAAU,CAAC;QACtB,CAAC;IACL,CAAC;IACD,SAAS,YAAY,CAAC,UAAyB;QAC3C,OAAO,IAAI,4DAA2B,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACZ,SAAS,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC;IAED,eAAe;SACV,aAAa,CAAC,IAAI,0CAAgB,CAAC,WAAW,CAAC,CAAC;SAChD,aAAa,CAAC,IAAI,8CAAoB,EAAE,CAAC;SACzC,aAAa,CAAC,IAAI,8CAAoB,EAAE,CAAC;SACzC,aAAa,CAAC,IAAI,8CAAoB,EAAE,CAAC;SACzC,aAAa,CAAC,IAAI,gDAAqB,EAAE,CAAC;SAC1C,aAAa,CAAC,IAAI,wCAAiB,EAAE,CAAC;SACtC,aAAa,CAAC,IAAI,gDAAqB,EAAE,CAAC;SAC1C,aAAa,CAAC,IAAI,0CAAkB,EAAE,CAAC;SACvC,aAAa,CAAC,IAAI,oDAAuB,EAAE,CAAC;SAC5C,aAAa,CAAC,IAAI,4CAAmB,EAAE,CAAC;SACxC,aAAa,CAAC,IAAI,8CAAoB,EAAE,CAAC;SACzC,aAAa,CAAC,IAAI,kDAAsB,CAAC,eAAe,CAAC,CAAC;SAC1D,aAAa,CAAC,IAAI,0DAA0B,CAAC,eAAe,CAAC,CAAC;SAC9D,aAAa,CAAC,IAAI,4CAAmB,CAAC,eAAe,CAAC,CAAC;SACvD,aAAa,CAAC,SAAS,CAAC,IAAI,oCAAe,CAAC,eAAe,CAAC,CAAC,CAAC;SAC9D,aAAa,CAAC,IAAI,oDAAuB,EAAE,CAAC;SAC5C,aAAa,CAAC,IAAI,oEAA+B,CAAC,eAAe,CAAC,CAAC;SACnE,aAAa,CAAC,IAAI,4CAAmB,EAAE,CAAC;SACxC,aAAa,CAAC,IAAI,oDAAuB,EAAE,CAAC;SAC5C,aAAa,CAAC,IAAI,sDAAwB,EAAE,CAAC;SAC7C,aAAa,CAAC,IAAI,gDAAqB,EAAE,CAAC;SAC1C,aAAa,CAAC,IAAI,wEAAiC,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;SAClF,aAAa,CAAC,IAAI,sEAAgC,CAAC,eAAe,CAAC,CAAC;SAEpE,aAAa,CAAC,IAAI,oEAA+B,CAAC,eAAe,CAAC,CAAC;SAEnE,aAAa,CAAC,IAAI,wCAAiB,CAAC,eAAe,CAAC,CAAC;SACrD,aAAa,CAAC,IAAI,oDAAuB,CAAC,eAAe,CAAC,CAAC;SAE3D,aAAa,CAAC,IAAI,wCAAiB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SAClE,aAAa,CAAC,IAAI,oDAAuB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACxE,aAAa,CAAC,IAAI,gFAAqC,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACtF,aAAa,CAAC,IAAI,4DAA2B,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SAC5E,aAAa,CAAC,IAAI,4CAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACpE,aAAa,CAAC,IAAI,sCAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACjE,aAAa,CAAC,IAAI,8CAAoB,CAAC,eAAe,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;SACrF,aAAa,CAAC,IAAI,wDAAyB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SAC1E,aAAa,CAAC,IAAI,kDAAsB,CAAC,eAAe,CAAC,CAAC;SAE1D,aAAa,CAAC,IAAI,oCAAe,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SAChE,aAAa,CAAC,IAAI,kDAAsB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACvE,aAAa,CAAC,IAAI,oCAAe,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SAChE,aAAa,CAAC,IAAI,0DAA0B,CAAC,eAAe,CAAC,CAAC;SAC9D,aAAa,CAAC,IAAI,kDAAsB,CAAC,eAAe,CAAC,CAAC;SAC1D,aAAa,CAAC,IAAI,0CAAkB,CAAC,eAAe,CAAC,CAAC;SACtD,aAAa,CAAC,IAAI,8CAAoB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;SACrE,aAAa,CAAC,IAAI,oDAAuB,CAAC,eAAe,CAAC,CAAC;SAE3D,aAAa,CAAC,IAAI,8CAAoB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACrE,aAAa,CAAC,IAAI,4CAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACpE,aAAa,CAAC,IAAI,kEAA8B,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SAE/E,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,4CAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;SACzG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,kCAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACrE,aAAa,CACV,YAAY,CACR,UAAU,CACN,SAAS,CACL,IAAI,4DAA2B,CAC3B,WAAW,EACX,SAAS,CAAC,eAAe,CAAC,EAC1B,MAAM,CAAC,oBAAoB,CAC9B,CACJ,CACJ,CACJ,CACJ;SACA,aAAa,CACV,YAAY,CACR,UAAU,CACN,SAAS,CACL,IAAI,gDAAqB,CAAC,WAAW,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAClG,CACJ,CACJ,CACJ;SAEA,aAAa,CAAC,IAAI,oCAAe,CAAC,eAAe,CAAC,CAAC,CAAC;IAEzD,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC9B,eAAe;aACV,aAAa,CAAC,IAAI,gDAAqB,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;aAC3E,aAAa,CAAC,IAAI,0CAAkB,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-json-schema-generator",
3
- "version": "2.5.0-next.0",
3
+ "version": "2.5.0-next.10",
4
4
  "description": "Generate JSON schema from your Typescript sources",
5
5
  "keywords": [
6
6
  "ts",
@@ -50,6 +50,7 @@
50
50
  "release": "npm run build && auto shipit",
51
51
  "run": "tsx ts-json-schema-generator.ts",
52
52
  "test": "jest test/ --verbose",
53
+ "test:debug": "node --inspect-brk node_modules/.bin/jest test/ --verbose --runInBand",
53
54
  "test:coverage": "npm run jest -- test/ --collectCoverage=true",
54
55
  "test:fast": "cross-env FAST_TEST=1 jest test/ --verbose",
55
56
  "test:update": "cross-env UPDATE_SCHEMA=true npm run test:fast",
@@ -58,42 +59,43 @@
58
59
  "dependencies": {
59
60
  "@types/json-schema": "^7.0.15",
60
61
  "commander": "^14.0.0",
61
- "glob": "^11.0.1",
62
+ "glob": "^13.0.0",
62
63
  "json5": "^2.2.3",
63
64
  "normalize-path": "^3.0.0",
64
65
  "safe-stable-stringify": "^2.5.0",
65
66
  "tslib": "^2.8.1",
66
- "typescript": "^5.8.2"
67
+ "typescript": "^5.8.3",
68
+ "@typescript/vfs": "1.6.2"
67
69
  },
68
70
  "devDependencies": {
69
71
  "@auto-it/conventional-commits": "^11.3.0",
70
72
  "@auto-it/first-time-contributor": "^11.3.0",
71
- "@babel/core": "^7.26.10",
72
- "@babel/preset-env": "^7.26.9",
73
- "@babel/preset-typescript": "^7.27.0",
74
- "@eslint/js": "^9.23.0",
73
+ "@babel/core": "^7.28.0",
74
+ "@babel/preset-env": "^7.28.0",
75
+ "@babel/preset-typescript": "^7.27.1",
76
+ "@eslint/js": "^9.30.1",
75
77
  "@types/eslint": "^9.6.1",
76
- "@types/glob": "^8.1.0",
77
- "@types/jest": "^29.5.14",
78
- "@types/node": "^22.13.14",
78
+ "@types/jest": "^30.0.0",
79
+ "@types/node": "^24.0.10",
79
80
  "@types/normalize-path": "^3.0.2",
80
81
  "ajv": "^8.17.1",
81
82
  "ajv-formats": "^3.0.1",
82
83
  "auto": "^11.3.0",
83
- "chai": "^5.2.0",
84
- "cross-env": "^7.0.3",
85
- "eslint": "9.28.0",
86
- "eslint-config-prettier": "^10.1.1",
87
- "eslint-plugin-prettier": "^5.2.5",
88
- "jest": "^29.7.0",
84
+ "chai": "^6.0.1",
85
+ "cross-env": "^10.0.0",
86
+ "eslint": "9.39.1",
87
+ "eslint-config-prettier": "^10.1.5",
88
+ "eslint-plugin-prettier": "^5.5.1",
89
+ "globals": "^16.3.0",
90
+ "jest": "^30.0.4",
89
91
  "jest-junit": "^16.0.0",
90
- "prettier": "^3.5.3",
91
- "tsx": "^4.19.3",
92
- "typescript-eslint": "^8.28.0",
92
+ "prettier": "^3.6.2",
93
+ "tsx": "^4.20.3",
94
+ "typescript-eslint": "^8.35.1",
93
95
  "vega": "^6.1.2",
94
- "vega-lite": "^6.1.0"
96
+ "vega-lite": "^6.2.0"
95
97
  },
96
- "packageManager": "npm@11.2.0",
98
+ "packageManager": "npm@11.4.2",
97
99
  "engines": {
98
100
  "node": ">=18.0.0"
99
101
  }
@@ -4,7 +4,8 @@ import { BasicAnnotationsReader } from "./BasicAnnotationsReader.js";
4
4
  export declare class ExtendedAnnotationsReader extends BasicAnnotationsReader {
5
5
  private typeChecker;
6
6
  private markdownDescription?;
7
- constructor(typeChecker: ts.TypeChecker, extraTags?: Set<string>, markdownDescription?: boolean | undefined);
7
+ private fullDescription?;
8
+ constructor(typeChecker: ts.TypeChecker, extraTags?: Set<string>, markdownDescription?: boolean | undefined, fullDescription?: boolean | undefined);
8
9
  getAnnotations(node: ts.Node): Annotations | undefined;
9
10
  isNullable(node: ts.Node): boolean;
10
11
  private getDescriptionAnnotation;
@@ -4,14 +4,17 @@ exports.ExtendedAnnotationsReader = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const json5_1 = tslib_1.__importDefault(require("json5"));
6
6
  const symbolAtNode_js_1 = require("../Utils/symbolAtNode.js");
7
+ const getFullDescription_js_1 = require("../Utils/getFullDescription.js");
7
8
  const BasicAnnotationsReader_js_1 = require("./BasicAnnotationsReader.js");
8
9
  class ExtendedAnnotationsReader extends BasicAnnotationsReader_js_1.BasicAnnotationsReader {
9
10
  typeChecker;
10
11
  markdownDescription;
11
- constructor(typeChecker, extraTags, markdownDescription) {
12
+ fullDescription;
13
+ constructor(typeChecker, extraTags, markdownDescription, fullDescription) {
12
14
  super(extraTags);
13
15
  this.typeChecker = typeChecker;
14
16
  this.markdownDescription = markdownDescription;
17
+ this.fullDescription = fullDescription;
15
18
  }
16
19
  getAnnotations(node) {
17
20
  const annotations = {
@@ -39,17 +42,26 @@ class ExtendedAnnotationsReader extends BasicAnnotationsReader_js_1.BasicAnnotat
39
42
  if (!symbol) {
40
43
  return undefined;
41
44
  }
45
+ const annotations = {};
42
46
  const comments = symbol.getDocumentationComment(this.typeChecker);
43
- if (!comments || !comments.length) {
44
- return undefined;
47
+ if (comments && comments.length) {
48
+ const markdownDescription = comments
49
+ .map((comment) => comment.text)
50
+ .join(" ")
51
+ .replace(/\r/g, "")
52
+ .trim();
53
+ annotations.description = markdownDescription.replace(/(?<=[^\n])\n(?=[^\n*-])/g, " ").trim();
54
+ if (this.markdownDescription) {
55
+ annotations.markdownDescription = markdownDescription;
56
+ }
45
57
  }
46
- const markdownDescription = comments
47
- .map((comment) => comment.text)
48
- .join(" ")
49
- .replace(/\r/g, "")
50
- .trim();
51
- const description = markdownDescription.replace(/(?<=[^\n])\n(?=[^\n*-])/g, " ").trim();
52
- return this.markdownDescription ? { description, markdownDescription } : { description };
58
+ if (this.fullDescription) {
59
+ const fullDescription = (0, getFullDescription_js_1.getFullDescription)(node)?.trim();
60
+ if (fullDescription) {
61
+ annotations.fullDescription = fullDescription;
62
+ }
63
+ }
64
+ return Object.keys(annotations).length ? annotations : undefined;
53
65
  }
54
66
  getTypeAnnotation(node) {
55
67
  const symbol = (0, symbolAtNode_js_1.symbolAtNode)(node);
@@ -1 +1 @@
1
- {"version":3,"file":"ExtendedAnnotationsReader.js","sourceRoot":"","sources":["../../../src/AnnotationsReader/ExtendedAnnotationsReader.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAG1B,8DAAwD;AACxD,2EAAqE;AAErE,MAAa,yBAA0B,SAAQ,kDAAsB;IAErD;IAEA;IAHZ,YACY,WAA2B,EACnC,SAAuB,EACf,mBAA6B;QAErC,KAAK,CAAC,SAAS,CAAC,CAAC;QAJT,gBAAW,GAAX,WAAW,CAAgB;QAE3B,wBAAmB,GAAnB,mBAAmB,CAAU;IAGzC,CAAC;IAEM,cAAc,CAAC,IAAa;QAC/B,MAAM,WAAW,GAAgB;YAC7B,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACtC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC/B,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAClC,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;SAChC,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IAEM,UAAU,CAAC,IAAa;QAC3B,MAAM,MAAM,GAAG,IAAA,8BAAY,EAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,SAAS,GAAsB,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAgC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAChH,OAAO,CAAC,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEO,wBAAwB,CAAC,IAAa;QAC1C,MAAM,MAAM,GAAG,IAAA,8BAAY,EAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,QAAQ,GAA2B,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1F,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,mBAAmB,GAAG,QAAQ;aAC/B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;aAC9B,IAAI,CAAC,GAAG,CAAC;aACT,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAClB,IAAI,EAAE,CAAC;QAEZ,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAExF,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7F,CAAC;IACO,iBAAiB,CAAC,IAAa;QACnC,MAAM,MAAM,GAAG,IAAA,8BAAY,EAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,SAAS,GAAsB,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAKO,oBAAoB,CAAC,IAAa;QACtC,MAAM,MAAM,GAAG,IAAA,8BAAY,EAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,SAAS,GAAsB,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;YAIT,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,CAAC;IACxB,CAAC;CACJ;AA3GD,8DA2GC"}
1
+ {"version":3,"file":"ExtendedAnnotationsReader.js","sourceRoot":"","sources":["../../../src/AnnotationsReader/ExtendedAnnotationsReader.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ import type ts from "typescript";
1
2
  export interface Config {
2
3
  path?: string;
3
- type?: string;
4
+ type?: string | string[];
4
5
  minify?: boolean;
5
6
  schemaId?: string;
6
7
  tsconfig?: string;
@@ -8,6 +9,7 @@ export interface Config {
8
9
  topRef?: boolean;
9
10
  jsDoc?: "none" | "extended" | "basic";
10
11
  markdownDescription?: boolean;
12
+ fullDescription?: boolean;
11
13
  sortProps?: boolean;
12
14
  strictTuples?: boolean;
13
15
  skipTypeCheck?: boolean;
@@ -16,7 +18,8 @@ export interface Config {
16
18
  additionalProperties?: boolean;
17
19
  discriminatorType?: "json-schema" | "open-api";
18
20
  functions?: FunctionOptions;
21
+ tsProgram?: ts.Program;
19
22
  }
20
23
  export type CompletedConfig = Config & typeof DEFAULT_CONFIG;
21
24
  export type FunctionOptions = "fail" | "comment" | "hide";
22
- export declare const DEFAULT_CONFIG: Omit<Required<Config>, "path" | "type" | "schemaId" | "tsconfig">;
25
+ export declare const DEFAULT_CONFIG: Omit<Required<Config>, "path" | "type" | "schemaId" | "tsconfig" | "tsProgram">;
@@ -6,6 +6,7 @@ exports.DEFAULT_CONFIG = {
6
6
  topRef: true,
7
7
  jsDoc: "extended",
8
8
  markdownDescription: false,
9
+ fullDescription: false,
9
10
  sortProps: true,
10
11
  strictTuples: false,
11
12
  skipTypeCheck: false,
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":";;;AAwBa,QAAA,cAAc,GAAsE;IAC7F,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,UAAU;IACjB,mBAAmB,EAAE,KAAK;IAC1B,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,EAAE;IACb,oBAAoB,EAAE,KAAK;IAC3B,iBAAiB,EAAE,aAAa;IAChC,SAAS,EAAE,SAAS;CACvB,CAAC"}
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":";;;AAiJa,QAAA,cAAc,GAAoF;IAC3G,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,UAAU;IACjB,mBAAmB,EAAE,KAAK;IAC1B,eAAe,EAAE,KAAK;IACtB,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,EAAE;IACb,oBAAoB,EAAE,KAAK;IAC3B,iBAAiB,EAAE,aAAa;IAChC,SAAS,EAAE,SAAS;CACvB,CAAC"}
@@ -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
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BinaryExpressionNodeParser = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typescript_1 = tslib_1.__importDefault(require("typescript"));
6
+ const AnyType_js_1 = require("../Type/AnyType.js");
7
+ const BooleanType_js_1 = require("../Type/BooleanType.js");
8
+ const LiteralType_js_1 = require("../Type/LiteralType.js");
9
+ const NumberType_js_1 = require("../Type/NumberType.js");
10
+ const StringType_js_1 = require("../Type/StringType.js");
11
+ const UnionType_js_1 = require("../Type/UnionType.js");
12
+ const AliasType_js_1 = require("../Type/AliasType.js");
13
+ class BinaryExpressionNodeParser {
14
+ childNodeParser;
15
+ constructor(childNodeParser) {
16
+ this.childNodeParser = childNodeParser;
17
+ }
18
+ supportsNode(node) {
19
+ return node.kind === typescript_1.default.SyntaxKind.BinaryExpression;
20
+ }
21
+ createType(node, context) {
22
+ const leftType = this.childNodeParser.createType(node.left, context);
23
+ const rightType = this.childNodeParser.createType(node.right, context);
24
+ if (leftType instanceof AnyType_js_1.AnyType || rightType instanceof AnyType_js_1.AnyType) {
25
+ return new AnyType_js_1.AnyType();
26
+ }
27
+ if (this.isStringLike(leftType) || this.isStringLike(rightType)) {
28
+ return new StringType_js_1.StringType();
29
+ }
30
+ if (this.isDefinitelyNumberLike(leftType) && this.isDefinitelyNumberLike(rightType)) {
31
+ return new NumberType_js_1.NumberType();
32
+ }
33
+ if (this.isBooleanLike(leftType) && this.isBooleanLike(rightType)) {
34
+ return new BooleanType_js_1.BooleanType();
35
+ }
36
+ return new StringType_js_1.StringType();
37
+ }
38
+ isStringLike(type) {
39
+ if (type instanceof AliasType_js_1.AliasType) {
40
+ return this.isStringLike(type.getType());
41
+ }
42
+ if (type instanceof StringType_js_1.StringType) {
43
+ return true;
44
+ }
45
+ if (type instanceof LiteralType_js_1.LiteralType && type.isString()) {
46
+ return true;
47
+ }
48
+ if (type instanceof UnionType_js_1.UnionType) {
49
+ return type.getTypes().some((t) => this.isStringLike(t));
50
+ }
51
+ return false;
52
+ }
53
+ isBooleanLike(type) {
54
+ if (type instanceof BooleanType_js_1.BooleanType) {
55
+ return true;
56
+ }
57
+ if (type instanceof LiteralType_js_1.LiteralType && typeof type.getValue() === "boolean") {
58
+ return true;
59
+ }
60
+ return false;
61
+ }
62
+ isDefinitelyNumberLike(type) {
63
+ if (type instanceof AliasType_js_1.AliasType) {
64
+ return this.isDefinitelyNumberLike(type.getType());
65
+ }
66
+ if (type instanceof NumberType_js_1.NumberType) {
67
+ return true;
68
+ }
69
+ if (type instanceof LiteralType_js_1.LiteralType && typeof type.getValue() === "number") {
70
+ return true;
71
+ }
72
+ if (type instanceof UnionType_js_1.UnionType) {
73
+ return type.getTypes().every((t) => this.isDefinitelyNumberLike(t));
74
+ }
75
+ return false;
76
+ }
77
+ }
78
+ exports.BinaryExpressionNodeParser = BinaryExpressionNodeParser;
79
+ //# sourceMappingURL=BinaryExpressionNodeParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryExpressionNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/BinaryExpressionNodeParser.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ class MappedTypeNodeParser {
48
48
  const type = this.childNodeParser.createType(node.type, this.createSubContext(node, keyListType, context));
49
49
  return type instanceof NeverType_js_1.NeverType ? new NeverType_js_1.NeverType() : new ArrayType_js_1.ArrayType(type);
50
50
  }
51
- const type = this.childNodeParser.createType(node.type, context);
51
+ const type = this.childNodeParser.createType(node.type, this.createSubContext(node, keyListType, context));
52
52
  const resultType = new ObjectType_js_1.ObjectType(id, [], [], type);
53
53
  if (resultType) {
54
54
  let annotations;
@@ -1 +1 @@
1
- {"version":3,"file":"MappedTypeNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/MappedTypeNodeParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MappedTypeNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/MappedTypeNodeParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import ts from "typescript";
2
+ import type { NodeParser } from "../NodeParser.js";
3
+ import { Context } from "../NodeParser.js";
4
+ import type { SubNodeParser } from "../SubNodeParser.js";
5
+ import type { BaseType } from "../Type/BaseType.js";
6
+ export declare class NewExpressionParser implements SubNodeParser {
7
+ protected typeChecker: ts.TypeChecker;
8
+ protected childNodeParser: NodeParser;
9
+ constructor(typeChecker: ts.TypeChecker, childNodeParser: NodeParser);
10
+ supportsNode(node: ts.NewExpression): boolean;
11
+ createType(node: ts.NewExpression, context: Context): BaseType;
12
+ protected createSubContext(node: ts.NewExpression, parentContext: Context): Context;
13
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NewExpressionParser = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typescript_1 = tslib_1.__importDefault(require("typescript"));
6
+ const NodeParser_js_1 = require("../NodeParser.js");
7
+ const Errors_js_1 = require("../Error/Errors.js");
8
+ class NewExpressionParser {
9
+ typeChecker;
10
+ childNodeParser;
11
+ constructor(typeChecker, childNodeParser) {
12
+ this.typeChecker = typeChecker;
13
+ this.childNodeParser = childNodeParser;
14
+ }
15
+ supportsNode(node) {
16
+ return node.kind === typescript_1.default.SyntaxKind.NewExpression;
17
+ }
18
+ createType(node, context) {
19
+ const type = this.typeChecker.getTypeAtLocation(node);
20
+ const symbol = type.symbol || type.aliasSymbol;
21
+ const decl = this.typeChecker.typeToTypeNode(type, node, typescript_1.default.NodeBuilderFlags.IgnoreErrors) ||
22
+ symbol?.valueDeclaration ||
23
+ symbol?.declarations?.[0];
24
+ if (!decl) {
25
+ throw new Errors_js_1.UnknownNodeError(node);
26
+ }
27
+ return this.childNodeParser.createType(decl, this.createSubContext(node, context));
28
+ }
29
+ createSubContext(node, parentContext) {
30
+ const subContext = new NodeParser_js_1.Context(node);
31
+ if (node.arguments) {
32
+ for (const arg of node.arguments) {
33
+ const type = this.childNodeParser.createType(arg, parentContext);
34
+ subContext.pushArgument(type);
35
+ }
36
+ }
37
+ return subContext;
38
+ }
39
+ }
40
+ exports.NewExpressionParser = NewExpressionParser;
41
+ //# sourceMappingURL=NewExpressionParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewExpressionParser.js","sourceRoot":"","sources":["../../../src/NodeParser/NewExpressionParser.ts"],"names":[],"mappings":";;;;AAAA,oEAA4B;AAE5B,oDAA2C;AAG3C,kDAAsD;AAEtD,MAAa,mBAAmB;IAEd;IACA;IAFd,YACc,WAA2B,EAC3B,eAA2B;QAD3B,gBAAW,GAAX,WAAW,CAAgB;QAC3B,oBAAe,GAAf,eAAe,CAAY;IACtC,CAAC;IAEG,YAAY,CAAC,IAAsB;QACtC,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC;IACrD,CAAC;IAEM,UAAU,CAAC,IAAsB,EAAE,OAAgB;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC;QAE/C,MAAM,IAAI,GACN,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAC7E,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,4BAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACvF,CAAC;IAES,gBAAgB,CAAC,IAAsB,EAAE,aAAsB;QACrE,MAAM,UAAU,GAAG,IAAI,uBAAO,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBACjE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AAtCD,kDAsCC"}
@@ -1,7 +1,7 @@
1
1
  import ts from "typescript";
2
2
  import type { Context, NodeParser } from "../NodeParser.js";
3
3
  import type { SubNodeParser } from "../SubNodeParser.js";
4
- import type { BaseType } from "../Type/BaseType.js";
4
+ import { BaseType } from "../Type/BaseType.js";
5
5
  export declare class TypeOperatorNodeParser implements SubNodeParser {
6
6
  protected childNodeParser: NodeParser;
7
7
  constructor(childNodeParser: NodeParser);
@@ -4,6 +4,7 @@ exports.TypeOperatorNodeParser = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const typescript_1 = tslib_1.__importDefault(require("typescript"));
6
6
  const ArrayType_js_1 = require("../Type/ArrayType.js");
7
+ const BaseType_js_1 = require("../Type/BaseType.js");
7
8
  const NumberType_js_1 = require("../Type/NumberType.js");
8
9
  const ObjectType_js_1 = require("../Type/ObjectType.js");
9
10
  const StringType_js_1 = require("../Type/StringType.js");
@@ -28,7 +29,7 @@ class TypeOperatorNodeParser {
28
29
  return new NumberType_js_1.NumberType();
29
30
  }
30
31
  const keys = (0, typeKeys_js_1.getTypeKeys)(type);
31
- if (derefed instanceof ObjectType_js_1.ObjectType && derefed.getAdditionalProperties()) {
32
+ if (derefed instanceof ObjectType_js_1.ObjectType && derefed.getAdditionalProperties() instanceof BaseType_js_1.BaseType) {
32
33
  return new UnionType_js_1.UnionType([...keys, new StringType_js_1.StringType()]);
33
34
  }
34
35
  if (keys.length === 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"TypeOperatorNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/TypeOperatorNodeParser.ts"],"names":[],"mappings":";;;;AAAA,oEAA4B;AAG5B,uDAAiD;AAEjD,yDAAmD;AACnD,yDAAmD;AACnD,yDAAmD;AACnD,uDAAiD;AACjD,wDAAkD;AAClD,sDAAmD;AAEnD,MAAa,sBAAsB;IACF;IAA7B,YAA6B,eAA2B;QAA3B,oBAAe,GAAf,eAAe,CAAY;IAAG,CAAC;IAErD,YAAY,CAAC,IAAyB;QACzC,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC;IACpD,CAAC;IAEM,UAAU,CAAC,IAAyB,EAAE,OAAgB;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAA,wBAAS,EAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAE,CAAC,UAAU,CAAC,eAAe,IAAI,OAAO,EAAE,CAAC;YAC7D,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,YAAY,wBAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,0BAAU,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,yBAAW,EAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,OAAO,YAAY,0BAAU,IAAI,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACrE,OAAO,IAAI,wBAAS,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,0BAAU,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,wBAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACJ;AA5BD,wDA4BC"}
1
+ {"version":3,"file":"TypeOperatorNodeParser.js","sourceRoot":"","sources":["../../../src/NodeParser/TypeOperatorNodeParser.ts"],"names":[],"mappings":";;;;AAAA,oEAA4B;AAG5B,uDAAiD;AACjD,qDAA+C;AAC/C,yDAAmD;AACnD,yDAAmD;AACnD,yDAAmD;AACnD,uDAAiD;AACjD,wDAAkD;AAClD,sDAAmD;AAEnD,MAAa,sBAAsB;IACF;IAA7B,YAA6B,eAA2B;QAA3B,oBAAe,GAAf,eAAe,CAAY;IAAG,CAAC;IAErD,YAAY,CAAC,IAAyB;QACzC,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC;IACpD,CAAC;IAEM,UAAU,CAAC,IAAyB,EAAE,OAAgB;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAA,wBAAS,EAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAE,CAAC,UAAU,CAAC,eAAe,IAAI,OAAO,EAAE,CAAC;YAC7D,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,YAAY,wBAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,0BAAU,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,yBAAW,EAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,OAAO,YAAY,0BAAU,IAAI,OAAO,CAAC,uBAAuB,EAAE,YAAY,sBAAQ,EAAE,CAAC;YACzF,OAAO,IAAI,wBAAS,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,0BAAU,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,wBAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACJ;AA5BD,wDA4BC"}