Skip to content

Commit 9e52a29

Browse files
feat: title in annotations (#403)
1 parent d9338fd commit 9e52a29

File tree

4 files changed

+44
-9
lines changed

4 files changed

+44
-9
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/**
2+
* @title filled#
3+
*/
4+
interface MySubObject {
5+
a: boolean;
6+
}
7+
8+
interface MyObject {
9+
/**
10+
* @title empty#
11+
*/
12+
empty;
13+
14+
filled: MySubObject;
15+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"definitions": {
4+
"MySubObject": {
5+
"title": "filled#",
6+
"type": "object",
7+
"properties": {
8+
"a": { "type": "boolean" }
9+
},
10+
"required": ["a"]
11+
}
12+
},
13+
"properties": {
14+
"empty": {
15+
"title": "empty#"
16+
},
17+
"filled": {
18+
"$ref": "#/definitions/MySubObject"
19+
}
20+
},
21+
"required": ["empty", "filled"],
22+
"type": "object"
23+
}

test/schema.test.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -259,19 +259,15 @@ describe("schema", () => {
259259
describe("annotations", () => {
260260
assertSchema("annotation-default", "MyObject");
261261
assertSchema("annotation-ref", "MyObject", {}, undefined, undefined, {
262-
skipCompile: true
262+
skipCompile: true,
263263
});
264264
assertSchema("annotation-tjs", "MyObject", {
265265
validationKeywords: ["hide"],
266266
});
267267
assertSchema("annotation-id", "MyObject", {}, undefined, undefined, {
268-
expectedWarnings: [
269-
"schema id ignored",
270-
"schema id ignored",
271-
"schema id ignored",
272-
"schema id ignored"
273-
]
268+
expectedWarnings: ["schema id ignored", "schema id ignored", "schema id ignored", "schema id ignored"],
274269
});
270+
assertSchema("annotation-title", "MyObject");
275271
assertSchema("annotation-items", "MyObject");
276272

277273
assertSchema("typeof-keyword", "MyObject", { typeOfKeyword: true });
@@ -461,6 +457,6 @@ describe("tsconfig.json", () => {
461457

462458
describe("Functionality 'required' in annotation", () => {
463459
assertSchema("annotation-required", "MyObject", {
464-
tsNodeRegister: true
460+
tsNodeRegister: true,
465461
});
466462
});

typescript-json-schema.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,8 @@ const validationKeywords = {
416416
format: true,
417417
default: true,
418418
$ref: true,
419-
id: true
419+
id: true,
420+
title: true
420421
};
421422

422423
/**

0 commit comments

Comments
 (0)