declare module lib_object { /** * @author fenris */ function fetch(object: Object, fieldname: string, fallback?: type_value, escalation?: int): type_value; /** * @author fenris */ function map(object_from: { [key: string]: type_from; }, transformator: (value_from: type_from, key?: string) => type_to): { [key: string]: type_to; }; /** * @desc gibt ein Objekt mit bestimmten Einträgen des Eingabe-Objekts zurück * @author fenris */ function filter(object_from: { [key: string]: type_value; }, predicate: (value_from: type_value, key?: string) => boolean): { [key: string]: type_value; }; /** * @desc wandelt ein Array mit Einträgen der Form {key,value} in ein entsprechendes Objekt um * @author fenris */ function from_array(array: Array<{ key: string; value: type_value; }>): { [key: string]: type_value; }; /** * @desc wandelt ein Objekt in ein entsprechendes Array mit Einträgen der Form {key,value} um * @author fenris */ function to_array(object: { [key: string]: type_value; }): Array<{ key: string; value: type_value; }>; /** * @desc gibt eine Liste von Schlüsseln eines Objekts zurück * @author fenris */ function keys(object: { [key: string]: any; }): Array; /** * @desc gibt eine Liste von Werten eines Objekts zurück * @author fenris */ function values(object: { [key: string]: type_value; }): Array; /** * @desc liest ein Baum-artiges Objekt an einer bestimmten Stelle aus * @author fenris */ function path_read(object: Object, path: string, fallback?: type_value, escalation?: int): type_value; /** * @desc schreibt einen Wert an eine bestimmte Stelle in einem Baum-artigen Objekt * @author fenris */ function path_write(object: Object, path: string, value: type_value, construct?: boolean): void; /** * @desc prüft ob ein Objekt einem bestimmten Muster entspricht * @param {Object} object das zu prüfende Objekt * @param {Object} pattern das einzuhaltende Muster * @param {Function} connlate eine Funktion zum Feststellen der Gleichheit von Einzelwerten * @author fenris */ function matches(object: Object, pattern: Object, collate?: typeof instance_collate): boolean; /** * @desc erzeugt eine Projektion eines Baum-artigen Objekts in ein Listen-artiges Objekt * @param {string} [separator] welches Zeichen als Trenner zwischen zwei Pfad-Schritten verwendet werden soll * @author fenris */ function flatten(value: any, separator?: string, key_for_element?: (index: int) => string): Object; /** * @author fenris */ function clash(x: { [key: string]: any; }, y: { [key: string]: any; }, { "overwrite": overwrite, "hooks": { "existing": hook_existing, }, }?: { overwrite?: boolean; hooks?: { existing?: (key?: string, value_old?: any, value_new?: any) => void; }; }): { [key: string]: any; }; /** * @author fenris */ function patch(core: Object, mantle: Object, deep?: boolean, path?: string): void; /** * @author fenris */ function patched(core: Object, mantle: Object, deep?: boolean): Object; /** * @author fenris */ function attached(object: Object, key: string, value: any): Object; /** * @author fenris */ function copy(object: Object): Object; } /** * @desc adapters for old syntax * @author fenris */ declare var object_fetch: typeof lib_object.fetch; declare var object_map: typeof lib_object.map; declare var object_a2o: typeof lib_object.from_array; declare var object_o2a: typeof lib_object.to_array; declare var object_matches: typeof lib_object.matches; declare var object_clash: typeof lib_object.clash;