Type alias ExtractVariables<Query>

ExtractVariables<Query>: Query extends Variable<infer VType, infer VName>
    ? {
        [key in VName]: GetVariableType<VType>
    }
    : Query extends [infer Inputs, infer Outputs]
        ? ExtractVariablesDeep<Inputs> & ExtractVariables<Outputs>
        : Query extends string | number | boolean | (string | number | boolean)[]
            ? {}
            : UnionToIntersection<{
                [K in keyof Query]: WithOptionalNullables<ExtractVariables<Query[K]>>
            }[keyof Query]>

Type Parameters

  • Query