diff --git a/src/utils.ts b/src/utils.ts index 2295af40..9e26a35a 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -358,10 +358,12 @@ export function appendToDescription(existingDescription: string | undefined, ... return values.join('\n') } -export function isSchemaLike(schema: LinkedJSONSchema) { +export function isSchemaLike(schema: any): schema is LinkedJSONSchema { if (!isPlainObject(schema)) { return false } + + // top-level schema const parent = schema[Parent] if (parent === null) { return true diff --git a/test/testUtils.ts b/test/testUtils.ts index 342de47a..ee252bd1 100644 --- a/test/testUtils.ts +++ b/test/testUtils.ts @@ -1,6 +1,5 @@ import test from 'ava' import {link} from '../src/linker' -import {LinkedJSONSchema} from '../src/types/JSONSchema' import {pathTransform, generateName, isSchemaLike} from '../src/utils' export function run() { @@ -38,10 +37,10 @@ export function run() { required: ['firstName', 'lastName'], }) t.is(isSchemaLike(schema), true) - t.is(isSchemaLike([] as any as LinkedJSONSchema), false) - t.is(isSchemaLike(schema.properties as LinkedJSONSchema), false) - t.is(isSchemaLike(schema.required as any as LinkedJSONSchema), false) - t.is(isSchemaLike(schema.title as any as LinkedJSONSchema), false) + t.is(isSchemaLike([]), false) + t.is(isSchemaLike(schema.properties), false) + t.is(isSchemaLike(schema.required), false) + t.is(isSchemaLike(schema.title), false) t.is(isSchemaLike(schema.properties!.firstName), true) t.is(isSchemaLike(schema.properties!.lastName), true) })