pip-services3-commons-node
Version:
Portable abstractions and patterns for Pip.Services in Node.js
55 lines (54 loc) • 2.12 kB
TypeScript
/**
* Helper class to perform property introspection and dynamic writing.
*
* It is similar to [[ObjectWriter]] but writes properties recursively
* through the entire object graph. Nested property names are defined
* using dot notation as "object.subobject.property"
*
* @see [[PropertyReflector]]
* @see [[ObjectWriter]]
*/
export declare class RecursiveObjectWriter {
private static createProperty;
private static performSetProperty;
/**
* Recursively sets value of object and its subobjects property specified by its name.
*
* The object can be a user defined object, map or array.
* The property name correspondently must be object property,
* map key or array index.
*
* If the property does not exist or introspection fails
* this method doesn't do anything and doesn't any throw errors.
*
* @param obj an object to write property to.
* @param name a name of the property to set.
* @param value a new value for the property to set.
*/
static setProperty(obj: any, name: string, value: any): void;
/**
* Recursively sets values of some (all) object and its subobjects properties.
*
* The object can be a user defined object, map or array.
* Property values correspondently are object properties,
* map key-pairs or array elements with their indexes.
*
* If some properties do not exist or introspection fails
* they are just silently skipped and no errors thrown.
*
* @param obj an object to write properties to.
* @param values a map, containing property names and their values.
*
* @see [[setProperty]]
*/
static setProperties(obj: any, values: any): void;
/**
* Copies content of one object to another object
* by recursively reading all properties from source object
* and then recursively writing them to destination object.
*
* @param dest a destination object to write properties to.
* @param src a source object to read properties from
*/
static copyProperties(dest: any, src: any): void;
}