@odata2ts/odata-query-objects
Version:
Q-Objects are the magic sauce for the odata-query-builder and allow for renaming and type conversion
21 lines (20 loc) • 1.31 kB
TypeScript
import { ValueConverter } from "@odata2ts/converter-api";
import { FlexibleConversionModel } from "../QueryObjectModel";
import { QParamModel } from "./QParamModel";
import { UrlParamValueFormatter, UrlParamValueParser } from "./UrlParamModel";
export type PrimitiveParamType = string | number | boolean;
export declare abstract class QParam<Type extends PrimitiveParamType, ConvertedType> implements QParamModel<Type, ConvertedType> {
protected name: string;
protected mappedName?: string | undefined;
protected readonly converter: ValueConverter<Type, ConvertedType>;
constructor(name: string, mappedName?: string | undefined, converter?: ValueConverter<Type, ConvertedType>);
getName(): string;
getMappedName(): string;
getConverter(): ValueConverter<Type, ConvertedType>;
protected abstract getUrlConformValue: UrlParamValueFormatter<Type>;
protected abstract parseValueFromUrl: UrlParamValueParser<Type>;
convertFrom(value: FlexibleConversionModel<Type>): FlexibleConversionModel<ConvertedType>;
convertTo(value: FlexibleConversionModel<ConvertedType>): FlexibleConversionModel<Type>;
formatUrlValue(value: FlexibleConversionModel<ConvertedType>): string | undefined;
parseUrlValue(value: string | undefined): FlexibleConversionModel<ConvertedType>;
}