UNPKG

@naturalcycles/scrubber-lib

Version:

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

34 lines (33 loc) 1.64 kB
import type { ScrubberConfig, ScrubbersMap, ScrubbersSQLMap } from './scrubber.model.js'; export declare class Scrubber { private cfg; private readonly scrubbersMap; private readonly scrubbersSQLMap; private readonly initializationVector; private readonly rootType?; /** * Create new scrubber instance * * @param cfg * @param additionalScrubbersMap optional additional scrubbers * @param additionalScrubbersSQLMap optional additional scrubbers SQL * @param initializationVector optional initialization vector used by some scrubbers. * @param rootType optional root type. Assumes all objects passed to this scubber is of named type for the sake of parent matching. */ constructor(cfg: ScrubberConfig, additionalScrubbersMap?: ScrubbersMap, additionalScrubbersSQLMap?: ScrubbersSQLMap, initializationVector?: string, rootType?: string); static getScrubberForType(rootType: string, cfg: ScrubberConfig, additionalScrubbersImpl?: ScrubbersMap, additionalScrubbersSQLImpl?: ScrubbersSQLMap, initializationVector?: string): Scrubber; /** * Returns undefined if there's no scrubber defined for the field. */ getScrubberSql(fieldName: string): string | undefined; scrub<T>(data: T): T; private applyScrubbers; private expandCfg; private checkIfScrubbersExistAndRaise; private splitFields; /** * returns true if all entries in b are equal to the end of entries of a. a may be longer than b. * Supports objects inside of arrays by removing any integer entries from a before comparing */ private arrayContainsInOrder; }