24 lines · 1.0 KB · TypeScript
RawDownload
import { Option, Schema } from "effect";import { AuthenticationSchema, type Authentication } from "@executor-js/plugin-openapi"; export const GoogleIntegrationConfigSchema = Schema.Struct({  specHash: Schema.optional(Schema.String),  sourceUrl: Schema.optional(Schema.String),  googleDiscoveryUrls: Schema.optional(Schema.Array(Schema.String)),  baseUrl: Schema.optional(Schema.String),  headers: Schema.optional(Schema.Record(Schema.String, Schema.String)),  queryParams: Schema.optional(Schema.Record(Schema.String, Schema.String)),  authenticationTemplate: Schema.optional(Schema.Array(AuthenticationSchema)),}); export type GoogleIntegrationConfig = Omit<  typeof GoogleIntegrationConfigSchema.Type,  "authenticationTemplate"> & {  readonly authenticationTemplate?: readonly Authentication[];}; const decodeConfig = Schema.decodeUnknownOption(GoogleIntegrationConfigSchema); export const decodeGoogleIntegrationConfig = (value: unknown): GoogleIntegrationConfig | null =>  Option.getOrNull(decodeConfig(value)) as GoogleIntegrationConfig | null;