import {ISiFieldValue, ISiDataType, ValueToStringError, ValueFromStringError} from './interfaces'; export class SiFieldValue implements ISiFieldValue { static fromString( field: ISiDataType, stringValue: string, ): SiFieldValue|ValueFromStringError { const value = field.valueFromString(stringValue); if (value instanceof ValueFromStringError) { return value; } return new this(field, value); } constructor( public field: ISiDataType, public value: T, ) {} toString(): string { const stringValue = this.field.valueToString(this.value); return (stringValue instanceof ValueToStringError) ? '' : stringValue; } }