Rhys Sullivanfresh starte9a8cbc8 months agoHistory
63 lines · 1.5 KB · TypeScript
RawDownload
import {  RowStoreError,  SourceStoreError,  ToolArtifactStoreError,} from "@executor-v2/persistence-ports";import * as ParseResult from "effect/ParseResult"; import { type SqlBackend } from "./sql-internals"; const toBackendLabel = (backend: SqlBackend): string => `sql-${backend}`; const toErrorMessage = (cause: unknown): string =>  cause instanceof Error ? cause.message : String(cause); const toParseDetails = (cause: unknown): string | null =>  ParseResult.isParseError(cause)    ? ParseResult.TreeFormatter.formatErrorSync(cause)    : null; export const toRowStoreError = (  backend: SqlBackend,  operation: string,  location: string,  cause: unknown,): RowStoreError =>  new RowStoreError({    operation,    backend: toBackendLabel(backend),    location,    message: toErrorMessage(cause),    reason: null,    details: toParseDetails(cause),  }); export const toSourceStoreError = (  backend: SqlBackend,  operation: string,  location: string,  cause: unknown,): SourceStoreError =>  new SourceStoreError({    operation,    backend: toBackendLabel(backend),    location,    message: toErrorMessage(cause),    reason: null,    details: toParseDetails(cause),  }); export const toToolArtifactStoreError = (  backend: SqlBackend,  operation: string,  location: string,  cause: unknown,): ToolArtifactStoreError =>  new ToolArtifactStoreError({    operation,    backend: toBackendLabel(backend),    location,    message: toErrorMessage(cause),    reason: null,    details: toParseDetails(cause),  });