UNPKG

mobx-react-routing

Version:
32 lines 1.35 kB
import { AnyObject } from 'yummies/utils/types'; import type { QueryParams } from '../query-params/index.js'; import type { queryParamsPresets } from './query-params-presets.js'; export interface QueryParamsFieldModelConfig<T> { queryParams: QueryParams; /** * Название поля в query параметрах */ name: string; /** * Дефолтное значение если ничего нет */ defaultValue: T; /** * Стратегия обновления этого поля */ strategy?: 'replace' | 'push'; /** * Получение query param значения */ serialize: (value: T | undefined) => any; /** * Получение рабочего значения */ deserialize: (value: any) => T | null; } export type PresetName = keyof typeof queryParamsPresets; export type DefinePresetByType<T> = T extends string[] ? 'string[]' : T extends number[] ? 'number[]' : T extends string ? 'string' : T extends boolean ? 'boolean' : T extends number ? 'number' : T extends AnyObject ? 'json' : 'string'; export interface QueryParamsFieldModelPresetConfig<Preset extends PresetName, T> extends Omit<QueryParamsFieldModelConfig<T>, 'serialize' | 'deserialize'> { preset: Preset; } //# sourceMappingURL=query-params-field.types.d.ts.map