UNPKG

@naturalcycles/scrubber-lib

Version:

Scrub data in JavaScript plain objects by using rules defined in a configuration object

24 lines (23 loc) 856 B
import type { AnyObject, StringMap } from '@naturalcycles/js-lib/types'; export type ScrubberFn<T = any, PARAMS = AnyObject> = (value: T, params?: PARAMS) => T; export type ScrubberSQLFn<PARAMS = AnyObject> = (params?: PARAMS) => string; export interface ScrubberConfig { fields: StringMap<ScrubberFieldConfig>; /** * Populated at runtime from any config keys with dots, key is last component (after last dot) and array contains * preceeding components a.k.a "parents" */ splitFields?: StringMap<string[][]>; throwOnError?: boolean; preserveFalsy?: boolean; } export interface ScrubberFieldConfig { scrubber: string; params?: StringMap<any>; } export interface ScrubbersMap { [scrubberName: string]: ScrubberFn<any, any>; } export interface ScrubbersSQLMap { [scrubberName: string]: ScrubberSQLFn<any>; }