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), });
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),
});