Files
trueref/src/lib/server/mappers/embedding-profile.mapper.ts

36 lines
930 B
TypeScript

import { EmbeddingProfile, EmbeddingProfileEntity } from '$lib/server/models/embedding-profile.js';
function parseConfig(config: Record<string, unknown> | string | null): Record<string, unknown> {
if (!config) {
return {};
}
if (typeof config === 'string') {
try {
const parsed = JSON.parse(config);
return parsed && typeof parsed === 'object' ? (parsed as Record<string, unknown>) : {};
} catch {
return {};
}
}
return config;
}
export class EmbeddingProfileMapper {
static fromEntity(entity: EmbeddingProfileEntity): EmbeddingProfile {
return new EmbeddingProfile({
id: entity.id,
providerKind: entity.provider_kind,
title: entity.title,
enabled: Boolean(entity.enabled),
isDefault: Boolean(entity.is_default),
model: entity.model,
dimensions: entity.dimensions,
config: parseConfig(entity.config),
createdAt: entity.created_at,
updatedAt: entity.updated_at
});
}
}