connection.ts 787 B

12345678910111213141516171819202122
  1. export * as Connection from "./connection"
  2. import { Schema } from "effect"
  3. import { Credential } from "./credential"
  4. export interface CredentialInfo extends Schema.Schema.Type<typeof CredentialInfo> {}
  5. export const CredentialInfo = Schema.Struct({
  6. type: Schema.Literal("credential"),
  7. id: Credential.ID,
  8. label: Schema.String,
  9. }).annotate({ identifier: "Connection.CredentialInfo" })
  10. export interface EnvInfo extends Schema.Schema.Type<typeof EnvInfo> {}
  11. export const EnvInfo = Schema.Struct({
  12. type: Schema.Literal("env"),
  13. name: Schema.String,
  14. }).annotate({ identifier: "Connection.EnvInfo" })
  15. export const Info = Schema.Union([CredentialInfo, EnvInfo])
  16. .pipe(Schema.toTaggedUnion("type"))
  17. .annotate({ identifier: "Connection.Info" })
  18. export type Info = typeof Info.Type