@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
TypeScript
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;
}