emilepharand/Babilonia

View on GitHub
server/model/ideas/expression.ts

Summary

Maintainability
A
0 mins
Test Coverage
import type {Language} from '../languages/language';

export enum KnownUnknown {
    Known = 'Known',
    Unknown = 'Unknown',
}

export function getKnownUnknown(isKnown: boolean): KnownUnknown {
    return isKnown ? KnownUnknown.Known : KnownUnknown.Unknown;
}

export type ExpressionForAdding = {
    text: string;
    languageId: number;
    known?: boolean;
};

export type Expression = {
    id: number;
    text: string;
    language: Language;
    known: boolean;
    ordering: number;
    // This is used for search results
    matched?: boolean;
};

export function getEmptyNexpressions(n: number, startId: number, l: Language): Expression[] {
    return Array.from({length: n}, (_, i) => ({
        id: startId + i,
        text: '',
        language: l,
        known: false,
        ordering: i,
    }));
}

export function getExpressionForAddingFromExpression(e: Expression): ExpressionForAdding {
    return {
        languageId: e.language.id,
        text: e.text,
        known: e.known,
    };
}