typia 11.0.0 → 11.0.1

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/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import * as module from './module.mjs';
1
+ import * as module$1 from './module.mjs';
2
2
  export { assert, assertEquals, assertGuard, assertGuardEquals, createAssert, createAssertEquals, createAssertGuard, createAssertGuardEquals, createEquals, createIs, createRandom, createValidate, createValidateEquals, equals, is, random, validate, validateEquals } from './module.mjs';
3
3
  import * as functional from './functional.mjs';
4
4
  export { functional };
@@ -22,5 +22,5 @@ export { TypeGuardError } from './TypeGuardError.mjs';
22
22
 
23
23
 
24
24
 
25
- export { module as default };
25
+ export { module$1 as default };
26
26
  //# sourceMappingURL=index.mjs.map
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.json_schema_alias = void 0;
4
4
  const json_schema_description_1 = require("./json_schema_description");
5
+ const json_schema_jsDocTags_1 = require("./json_schema_jsDocTags");
5
6
  const json_schema_object_1 = require("./json_schema_object");
6
7
  const json_schema_station_1 = require("./json_schema_station");
7
8
  const json_schema_title_1 = require("./json_schema_title");
@@ -31,8 +32,10 @@ const json_schema_alias = (props) => {
31
32
  },
32
33
  metadata: props.alias.type.value,
33
34
  });
34
- if (schema !== null)
35
+ if (schema !== null) {
36
+ (0, json_schema_jsDocTags_1.json_schema_jsDocTags)(schema, props.alias.type.jsDocTags);
35
37
  Object.assign(props.components.schemas[props.alias.type.name], schema);
38
+ }
36
39
  }
37
40
  return [{ $ref }];
38
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"json_schema_alias.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_alias.ts"],"names":[],"mappings":";;;AAIA,uEAAoE;AACpE,6DAA0D;AAC1D,+DAA4D;AAC5D,2DAAwD;AAEjD,MAAM,iBAAiB,GAAG,CAA6B,KAI7D,EAAoC,EAAE;;;IACrC,IACE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;QACnC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAE3C,OAAO,IAAA,uCAAkB,EAAC;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE;SAC3C,CAAqC,CAAC;IAEzC,MAAM,IAAI,GAAW,wBAAwB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrE,IAAI,CAAA,MAAA,KAAK,CAAC,UAAU,CAAC,OAAO,0CAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAK,SAAS,EAAE,CAAC;QACpE,uBAAuB;QACvB,YAAA,KAAK,CAAC,UAAU,EAAC,OAAO,uCAAP,OAAO,GAAK,EAAE,EAAC;QAChC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAErD,kBAAkB;QAClB,MAAM,MAAM,GAA+B,IAAA,yCAAmB,EAAC;YAC7D,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE;gBACT,UAAU,EACR,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;oBACnE,SAAS;gBACX,KAAK,EAAE,IAAA,qCAAiB,EAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC1C,WAAW,EAAE,IAAA,iDAAuB,EAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;aACvD;YACD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;SACjC,CAAC,CAAC;QACH,IAAI,MAAM,KAAK,IAAI;YACjB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACpB,CAAC,CAAC;AArCW,QAAA,iBAAiB,qBAqC5B"}
1
+ {"version":3,"file":"json_schema_alias.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_alias.ts"],"names":[],"mappings":";;;AAIA,uEAAoE;AACpE,mEAAgE;AAChE,6DAA0D;AAC1D,+DAA4D;AAC5D,2DAAwD;AAEjD,MAAM,iBAAiB,GAAG,CAA6B,KAI7D,EAAoC,EAAE;;;IACrC,IACE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;QACnC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAE3C,OAAO,IAAA,uCAAkB,EAAC;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE;SAC3C,CAAqC,CAAC;IAEzC,MAAM,IAAI,GAAW,wBAAwB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrE,IAAI,CAAA,MAAA,KAAK,CAAC,UAAU,CAAC,OAAO,0CAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAK,SAAS,EAAE,CAAC;QACpE,uBAAuB;QACvB,YAAA,KAAK,CAAC,UAAU,EAAC,OAAO,uCAAP,OAAO,GAAK,EAAE,EAAC;QAChC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAErD,kBAAkB;QAClB,MAAM,MAAM,GAA+B,IAAA,yCAAmB,EAAC;YAC7D,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE;gBACT,UAAU,EACR,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;oBACnE,SAAS;gBACX,KAAK,EAAE,IAAA,qCAAiB,EAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC1C,WAAW,EAAE,IAAA,iDAAuB,EAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;aACvD;YACD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;SACjC,CAAC,CAAC;QACH,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAA,6CAAqB,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,EAAE,MAAM,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACpB,CAAC,CAAC;AAvCW,QAAA,iBAAiB,qBAuC5B"}
@@ -1,4 +1,5 @@
1
1
  import { json_schema_description } from './json_schema_description.mjs';
2
+ import { json_schema_jsDocTags } from './json_schema_jsDocTags.mjs';
2
3
  import { json_schema_object } from './json_schema_object.mjs';
3
4
  import { json_schema_station } from './json_schema_station.mjs';
4
5
  import { json_schema_title } from './json_schema_title.mjs';
@@ -27,8 +28,10 @@ const json_schema_alias = (props) => {
27
28
  },
28
29
  metadata: props.alias.type.value,
29
30
  });
30
- if (schema !== null)
31
+ if (schema !== null) {
32
+ json_schema_jsDocTags(schema, props.alias.type.jsDocTags);
31
33
  Object.assign(props.components.schemas[props.alias.type.name], schema);
34
+ }
32
35
  }
33
36
  return [{ $ref }];
34
37
  };
@@ -0,0 +1,3 @@
1
+ import { OpenApi } from "@samchon/openapi";
2
+ import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
3
+ export declare const json_schema_jsDocTags: <Schema extends OpenApi.IJsonSchema>(schema: Schema, jsDocTags: IJsDocTagInfo[]) => Schema;
@@ -0,0 +1,3 @@
1
+ import { OpenApi } from "@samchon/openapi";
2
+ import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
3
+ export declare const json_schema_jsDocTags: <Schema extends OpenApi.IJsonSchema>(schema: Schema, jsDocTags: IJsDocTagInfo[]) => Schema;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.json_schema_jsDocTags = void 0;
4
+ const json_schema_jsDocTags = (schema, jsDocTags) => {
5
+ var _a;
6
+ for (const tag of jsDocTags) {
7
+ if (tag.name.startsWith("x-") === false)
8
+ continue;
9
+ const value = (_a = tag.text) === null || _a === void 0 ? void 0 : _a.filter((s) => s.kind === "text").map((s) => s.text.split("\r\n").join("\n"))[0];
10
+ if (value === undefined)
11
+ continue;
12
+ else
13
+ schema[tag.name] = cast(value);
14
+ }
15
+ return schema;
16
+ };
17
+ exports.json_schema_jsDocTags = json_schema_jsDocTags;
18
+ const cast = (value) => {
19
+ if (value === "true")
20
+ return true;
21
+ if (value === "false")
22
+ return false;
23
+ const num = Number(value);
24
+ if (Number.isNaN(num) === false)
25
+ return num;
26
+ return value;
27
+ };
28
+ //# sourceMappingURL=json_schema_jsDocTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json_schema_jsDocTags.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_jsDocTags.ts"],"names":[],"mappings":";;;AAIO,MAAM,qBAAqB,GAAG,CACnC,MAAc,EACd,SAA0B,EAClB,EAAE;;IACV,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,SAAS;QAElD,MAAM,KAAK,GAAuB,MAAA,GAAG,CAAC,IAAI,0CACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;;YAC5B,MAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAdW,QAAA,qBAAqB,yBAchC;AAEF,MAAM,IAAI,GAAG,CAAC,KAAa,EAA6B,EAAE;IACxD,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,GAAG,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ const json_schema_jsDocTags = (schema, jsDocTags) => {
2
+ for (const tag of jsDocTags) {
3
+ if (tag.name.startsWith("x-") === false)
4
+ continue;
5
+ const value = tag.text
6
+ ?.filter((s) => s.kind === "text")
7
+ .map((s) => s.text.split("\r\n").join("\n"))[0];
8
+ if (value === undefined)
9
+ continue;
10
+ else
11
+ schema[tag.name] = cast(value);
12
+ }
13
+ return schema;
14
+ };
15
+ const cast = (value) => {
16
+ if (value === "true")
17
+ return true;
18
+ if (value === "false")
19
+ return false;
20
+ const num = Number(value);
21
+ if (Number.isNaN(num) === false)
22
+ return num;
23
+ return value;
24
+ };
25
+
26
+ export { json_schema_jsDocTags };
27
+ //# sourceMappingURL=json_schema_jsDocTags.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json_schema_jsDocTags.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -5,6 +5,7 @@ const CommentFactory_1 = require("../../factories/CommentFactory");
5
5
  const Metadata_1 = require("../../schemas/metadata/Metadata");
6
6
  const PatternUtil_1 = require("../../utils/PatternUtil");
7
7
  const json_schema_description_1 = require("./json_schema_description");
8
+ const json_schema_jsDocTags_1 = require("./json_schema_jsDocTags");
8
9
  const json_schema_plugin_1 = require("./json_schema_plugin");
9
10
  const json_schema_station_1 = require("./json_schema_station");
10
11
  const json_schema_title_1 = require("./json_schema_title");
@@ -49,8 +50,7 @@ const create_object_schema = (props) => {
49
50
  continue;
50
51
  else if (property.jsDocTags.find((tag) => tag.name === "hidden"))
51
52
  continue; // THE HIDDEN TAG
52
- const key = property.key.getSoleLiteral();
53
- const schema = (0, json_schema_station_1.json_schema_station)({
53
+ const value = (0, json_schema_station_1.json_schema_station)({
54
54
  blockNever: true,
55
55
  components: props.components,
56
56
  attribute: {
@@ -62,10 +62,13 @@ const create_object_schema = (props) => {
62
62
  },
63
63
  metadata: property.value,
64
64
  });
65
- if (schema === null)
65
+ if (value === null)
66
66
  continue;
67
+ else
68
+ (0, json_schema_jsDocTags_1.json_schema_jsDocTags)(value, property.jsDocTags);
69
+ const key = property.key.getSoleLiteral();
67
70
  if (key !== null) {
68
- properties[key] = schema;
71
+ properties[key] = value;
69
72
  if (property.value.isRequired() === true)
70
73
  required.push(key);
71
74
  }
@@ -75,12 +78,12 @@ const create_object_schema = (props) => {
75
78
  metadata: property.key,
76
79
  });
77
80
  if (pattern === PatternUtil_1.PatternUtil.STRING)
78
- extraMeta.additionalProperties = [property.value, schema];
81
+ extraMeta.additionalProperties = [property.value, value];
79
82
  else
80
- extraMeta.patternProperties[pattern] = [property.value, schema];
83
+ extraMeta.patternProperties[pattern] = [property.value, value];
81
84
  }
82
85
  }
83
- return {
86
+ return (0, json_schema_jsDocTags_1.json_schema_jsDocTags)({
84
87
  type: "object",
85
88
  properties,
86
89
  required,
@@ -94,7 +97,7 @@ const create_object_schema = (props) => {
94
97
  components: props.components,
95
98
  extra: extraMeta,
96
99
  }),
97
- };
100
+ }, props.object.type.jsDocTags);
98
101
  };
99
102
  /** @internal */
100
103
  const join = (props) => {
@@ -1 +1 @@
1
- {"version":3,"file":"json_schema_object.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json_schema_object.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_object.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { CommentFactory } from '../../factories/CommentFactory.mjs';
2
2
  import { Metadata } from '../../schemas/metadata/Metadata.mjs';
3
3
  import { PatternUtil } from '../../utils/PatternUtil.mjs';
4
4
  import { json_schema_description } from './json_schema_description.mjs';
5
+ import { json_schema_jsDocTags } from './json_schema_jsDocTags.mjs';
5
6
  import { json_schema_plugin } from './json_schema_plugin.mjs';
6
7
  import { json_schema_station } from './json_schema_station.mjs';
7
8
  import { json_schema_title } from './json_schema_title.mjs';
@@ -44,8 +45,7 @@ const create_object_schema = (props) => {
44
45
  continue;
45
46
  else if (property.jsDocTags.find((tag) => tag.name === "hidden"))
46
47
  continue; // THE HIDDEN TAG
47
- const key = property.key.getSoleLiteral();
48
- const schema = json_schema_station({
48
+ const value = json_schema_station({
49
49
  blockNever: true,
50
50
  components: props.components,
51
51
  attribute: {
@@ -57,10 +57,13 @@ const create_object_schema = (props) => {
57
57
  },
58
58
  metadata: property.value,
59
59
  });
60
- if (schema === null)
60
+ if (value === null)
61
61
  continue;
62
+ else
63
+ json_schema_jsDocTags(value, property.jsDocTags);
64
+ const key = property.key.getSoleLiteral();
62
65
  if (key !== null) {
63
- properties[key] = schema;
66
+ properties[key] = value;
64
67
  if (property.value.isRequired() === true)
65
68
  required.push(key);
66
69
  }
@@ -70,12 +73,12 @@ const create_object_schema = (props) => {
70
73
  metadata: property.key,
71
74
  });
72
75
  if (pattern === PatternUtil.STRING)
73
- extraMeta.additionalProperties = [property.value, schema];
76
+ extraMeta.additionalProperties = [property.value, value];
74
77
  else
75
- extraMeta.patternProperties[pattern] = [property.value, schema];
78
+ extraMeta.patternProperties[pattern] = [property.value, value];
76
79
  }
77
80
  }
78
- return {
81
+ return json_schema_jsDocTags({
79
82
  type: "object",
80
83
  properties,
81
84
  required,
@@ -88,7 +91,7 @@ const create_object_schema = (props) => {
88
91
  components: props.components,
89
92
  extra: extraMeta,
90
93
  }),
91
- };
94
+ }, props.object.type.jsDocTags);
92
95
  };
93
96
  /** @internal */
94
97
  const join = (props) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "11.0.0",
3
+ "version": "11.0.1",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -3,6 +3,7 @@ import { OpenApi } from "@samchon/openapi";
3
3
  import { MetadataAlias } from "../../schemas/metadata/MetadataAlias";
4
4
 
5
5
  import { json_schema_description } from "./json_schema_description";
6
+ import { json_schema_jsDocTags } from "./json_schema_jsDocTags";
6
7
  import { json_schema_object } from "./json_schema_object";
7
8
  import { json_schema_station } from "./json_schema_station";
8
9
  import { json_schema_title } from "./json_schema_title";
@@ -40,8 +41,10 @@ export const json_schema_alias = <BlockNever extends boolean>(props: {
40
41
  },
41
42
  metadata: props.alias.type.value,
42
43
  });
43
- if (schema !== null)
44
+ if (schema !== null) {
45
+ json_schema_jsDocTags(schema, props.alias.type.jsDocTags);
44
46
  Object.assign(props.components.schemas[props.alias.type.name]!, schema);
47
+ }
45
48
  }
46
49
  return [{ $ref }];
47
50
  };
@@ -0,0 +1,27 @@
1
+ import { OpenApi } from "@samchon/openapi";
2
+
3
+ import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
4
+
5
+ export const json_schema_jsDocTags = <Schema extends OpenApi.IJsonSchema>(
6
+ schema: Schema,
7
+ jsDocTags: IJsDocTagInfo[],
8
+ ): Schema => {
9
+ for (const tag of jsDocTags) {
10
+ if (tag.name.startsWith("x-") === false) continue;
11
+
12
+ const value: string | undefined = tag.text
13
+ ?.filter((s) => s.kind === "text")
14
+ .map((s) => s.text.split("\r\n").join("\n"))[0];
15
+ if (value === undefined) continue;
16
+ else (schema as any)[tag.name] = cast(value);
17
+ }
18
+ return schema;
19
+ };
20
+
21
+ const cast = (value: string): string | number | boolean => {
22
+ if (value === "true") return true;
23
+ if (value === "false") return false;
24
+ const num: number = Number(value);
25
+ if (Number.isNaN(num) === false) return num;
26
+ return value;
27
+ };
@@ -9,6 +9,7 @@ import { MetadataObject } from "../../schemas/metadata/MetadataObject";
9
9
  import { PatternUtil } from "../../utils/PatternUtil";
10
10
 
11
11
  import { json_schema_description } from "./json_schema_description";
12
+ import { json_schema_jsDocTags } from "./json_schema_jsDocTags";
12
13
  import { json_schema_plugin } from "./json_schema_plugin";
13
14
  import { json_schema_station } from "./json_schema_station";
14
15
  import { json_schema_title } from "./json_schema_title";
@@ -66,8 +67,7 @@ const create_object_schema = (props: {
66
67
  continue;
67
68
  else if (property.jsDocTags.find((tag) => tag.name === "hidden")) continue; // THE HIDDEN TAG
68
69
 
69
- const key: string | null = property.key.getSoleLiteral();
70
- const schema: OpenApi.IJsonSchema | null = json_schema_station({
70
+ const value: OpenApi.IJsonSchema | null = json_schema_station({
71
71
  blockNever: true,
72
72
  components: props.components,
73
73
  attribute: {
@@ -80,10 +80,12 @@ const create_object_schema = (props: {
80
80
  },
81
81
  metadata: property.value,
82
82
  });
83
+ if (value === null) continue;
84
+ else json_schema_jsDocTags(value, property.jsDocTags);
83
85
 
84
- if (schema === null) continue;
86
+ const key: string | null = property.key.getSoleLiteral();
85
87
  if (key !== null) {
86
- properties[key] = schema;
88
+ properties[key] = value;
87
89
  if (property.value.isRequired() === true) required.push(key);
88
90
  } else {
89
91
  const pattern: string = metadata_to_pattern({
@@ -91,27 +93,29 @@ const create_object_schema = (props: {
91
93
  metadata: property.key,
92
94
  });
93
95
  if (pattern === PatternUtil.STRING)
94
- extraMeta.additionalProperties = [property.value, schema];
95
- else extraMeta.patternProperties[pattern] = [property.value, schema];
96
+ extraMeta.additionalProperties = [property.value, value];
97
+ else extraMeta.patternProperties[pattern] = [property.value, value];
96
98
  }
97
99
  }
98
100
 
99
- return {
100
- type: "object",
101
- properties,
102
- required,
103
- title: (() => {
104
- const info: IJsDocTagInfo | undefined = props.object.type.jsDocTags.find(
105
- (tag) => tag.name === "title",
106
- );
107
- return info?.text?.length ? CommentFactory.merge(info.text) : undefined;
108
- })(),
109
- description: json_schema_description(props.object.type),
110
- additionalProperties: join({
111
- components: props.components,
112
- extra: extraMeta,
113
- }),
114
- };
101
+ return json_schema_jsDocTags(
102
+ {
103
+ type: "object",
104
+ properties,
105
+ required,
106
+ title: (() => {
107
+ const info: IJsDocTagInfo | undefined =
108
+ props.object.type.jsDocTags.find((tag) => tag.name === "title");
109
+ return info?.text?.length ? CommentFactory.merge(info.text) : undefined;
110
+ })(),
111
+ description: json_schema_description(props.object.type),
112
+ additionalProperties: join({
113
+ components: props.components,
114
+ extra: extraMeta,
115
+ }),
116
+ },
117
+ props.object.type.jsDocTags,
118
+ );
115
119
  };
116
120
 
117
121
  /** @internal */