import { Collection, Vertex } from "../vertex.js"; import { DeepNonNullable } from "../util.js"; import { ExpandKey } from "../common.js"; import { VertexQuery } from "../vertex-query/index.js"; import { Lookup } from "./util.js"; //#region src/core/interfaces/vertices/util/custom-vertex-export/assert-no-invalid-expand-keys.d.ts type _AssertNoInvalidExpandKeys = { [K in keyof Selected]: K extends keyof Available ? Lookup extends infer a extends object ? Lookup extends infer b extends object ? _AssertNoInvalidExpandKeys : 'wtf!?' : never : `invalid expand key: ${K & string}` }[keyof Selected]; /** * Recursively asserts that all keys in the 'expand' section of Q are valid. * If any invalid keys are found, a descriptive string literal type is returned, otherwise `unknown` is returned. */ type AssertNoInvalidExpandKeys, Q extends VertexQuery> = ExpandKey & keyof Q extends never ? unknown : [_AssertNoInvalidExpandKeys[ExpandKey], DeepNonNullable>[ExpandKey]>] extends [infer T] ? [T] extends [never] ? unknown : T : never; //#endregion export { AssertNoInvalidExpandKeys }; //# sourceMappingURL=assert-no-invalid-expand-keys.d.ts.map