Skip to content

Commit

Permalink
Merge pull request #1423 from vega/next
Browse files Browse the repository at this point in the history
  • Loading branch information
domoritz committed Sep 28, 2022
2 parents 0886360 + 12be096 commit 712b6e7
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 13 deletions.
4 changes: 2 additions & 2 deletions src/Utils/removeUnreachable.ts
Expand Up @@ -39,7 +39,7 @@ function addReachable(
}
} else if (definition.not) {
addReachable(definition.not, definitions, reachable);
} else if (definition.type === "object") {
} else if (definition.type?.includes("object")) {
for (const prop in definition.properties || {}) {
const propDefinition = definition.properties![prop];
addReachable(propDefinition, definitions, reachable);
Expand All @@ -49,7 +49,7 @@ function addReachable(
if (additionalProperties) {
addReachable(additionalProperties, definitions, reachable);
}
} else if (definition.type === "array") {
} else if (definition.type?.includes("array")) {
const items = definition.items;
if (Array.isArray(items)) {
for (const item of items) {
Expand Down
2 changes: 2 additions & 0 deletions test/valid-data-annotations.test.ts
Expand Up @@ -73,4 +73,6 @@ describe("valid-data-annotations", () => {
it("annotation-writeOnly", assertValidSchema("annotation-writeOnly", "MyObject", "basic"));

it("annotation-union-if-then", assertValidSchema("annotation-union-if-then", "Animal", "basic"));

it("annotation-nullable-definition", assertValidSchema("annotation-nullable-definition", "MyObject", "extended"));
});
10 changes: 10 additions & 0 deletions test/valid-data/annotation-nullable-definition/main.ts
@@ -0,0 +1,10 @@
export class Definition {
name: string
}

export class MyObject {
/**
* @nullable
*/
optional?: Definition[]
}
33 changes: 33 additions & 0 deletions test/valid-data/annotation-nullable-definition/schema.json
@@ -0,0 +1,33 @@
{
"$schema":"http://json-schema.org/draft-07/schema#",
"$ref":"#/definitions/MyObject",
"definitions":{
"MyObject":{
"type":"object",
"properties":{
"optional":{
"type":[
"array",
"null"
],
"items":{
"$ref":"#/definitions/Definition"
}
}
},
"additionalProperties":false
},
"Definition":{
"type":"object",
"properties":{
"name":{
"type":"string"
}
},
"required":[
"name"
],
"additionalProperties":false
}
}
}
22 changes: 11 additions & 11 deletions yarn.lock
Expand Up @@ -1115,10 +1115,10 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"

"@humanwhocodes/config-array@^0.10.4":
version "0.10.4"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c"
integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==
"@humanwhocodes/config-array@^0.10.5":
version "0.10.5"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.5.tgz#bb679745224745fff1e9a41961c1d45a49f81c04"
integrity sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==
dependencies:
"@humanwhocodes/object-schema" "^1.2.1"
debug "^4.1.1"
Expand Down Expand Up @@ -1697,9 +1697,9 @@
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==

"@types/node@*", "@types/node@^18.7.18":
version "18.7.18"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.18.tgz#633184f55c322e4fb08612307c274ee6d5ed3154"
integrity sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==
version "18.7.20"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.20.tgz#d9442de7b5cb166476340b4271b15300fe058a39"
integrity sha512-adzY4vLLr5Uivmx8+zfSJ5fbdgKxX8UMtjtl+17n0B1q1Nz8JEmE151vefMdpD+1gyh+77weN4qEhej/O7budQ==

"@types/normalize-package-data@^2.4.0":
version "2.4.1"
Expand Down Expand Up @@ -2876,12 +2876,12 @@ eslint-visitor-keys@^3.3.0:
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==

eslint@^8.23.1:
version "8.23.1"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc"
integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==
version "8.24.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.24.0.tgz#489516c927a5da11b3979dbfb2679394523383c8"
integrity sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==
dependencies:
"@eslint/eslintrc" "^1.3.2"
"@humanwhocodes/config-array" "^0.10.4"
"@humanwhocodes/config-array" "^0.10.5"
"@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
"@humanwhocodes/module-importer" "^1.0.1"
ajv "^6.10.0"
Expand Down

0 comments on commit 712b6e7

Please sign in to comment.