UNPKG

@prismatic-io/spectral

Version:

Utility library for building Prismatic connectors and code-native integrations

33 lines (32 loc) 1.43 kB
import type { UnionToIntersection } from "./utils"; export type CustomerActivatedConnectionConfigVar = { dataType: "connection"; stableKey: string; }; export type OrganizationActivatedConnectionConfigVar = { dataType: "connection"; stableKey: string; }; export type ScopedConfigVar = CustomerActivatedConnectionConfigVar | OrganizationActivatedConnectionConfigVar; /** * Root ScopedConfigVars type exposed for augmentation. * * The expected interface when augmenting is: * * ```ts * interface IntegrationDefinitionScopedConfigVars { * [key: string]: OrganizationActivatedConnectionConfigVar * } * ``` * */ export interface IntegrationDefinitionScopedConfigVars { } type CreateScopedConfigVars<TScopedConfigVarMap> = keyof TScopedConfigVarMap extends never ? { [key: string]: OrganizationActivatedConnectionConfigVar | string; } : UnionToIntersection<keyof TScopedConfigVarMap extends infer TScopedConfigVarName ? TScopedConfigVarName extends keyof TScopedConfigVarMap ? TScopedConfigVarMap[TScopedConfigVarName] extends OrganizationActivatedConnectionConfigVar ? { [Key in TScopedConfigVarName]: TScopedConfigVarMap[TScopedConfigVarName]; } : never : never : never>; export type ScopedConfigVarMap = CreateScopedConfigVars<IntegrationDefinitionScopedConfigVars>; export declare const isConnectionScopedConfigVar: (cv: unknown) => cv is OrganizationActivatedConnectionConfigVar; export {};