UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

29 lines 3.24 kB
/** * Helper function to get an object with deep keys * * @param object - The object to query. * @param path - The string path of the property to get. * @param defaultValue - (optional) - The value returned for undefined resolved values. * @returns The updated object * * @example * const myObj = {foo: {bar: 'baz', bing: 'bang'}}; * objectDeepGet(myObj, 'foo.bar') // Returns: 'baz' * objectDeepGet(myObj, 'does.not.exist', 'hi') // Returns: 'hi' */ // eslint-disable-next-line @typescript-eslint/no-explicit-any export function objectDeepGet(object, path, defaultValue) { if (!object) { return defaultValue; } var keys = path.split('.'); object = object[keys[0]]; if (object && keys.length > 1) { return objectDeepGet(object, keys.slice(1).join('.'), defaultValue); } if (object === undefined && defaultValue) { return defaultValue; } return object; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRlZXAtZ2V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy91dGlsaXRpZXMvIiwic291cmNlcyI6WyJvYmplY3QtZGVlcC1nZXQvb2JqZWN0LWRlZXAtZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQTJCLEVBQUUsSUFBWSxFQUFFLFlBQWtCO0lBQ3pGLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxPQUFPLFlBQVksQ0FBQztLQUNyQjtJQUVELElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6QixJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUM3QixPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDckU7SUFFRCxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksWUFBWSxFQUFFO1FBQ3hDLE9BQU8sWUFBWSxDQUFDO0tBQ3JCO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IGFuIG9iamVjdCB3aXRoIGRlZXAga2V5c1xuICpcbiAqIEBwYXJhbSBvYmplY3QgLSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHBhdGggLSBUaGUgc3RyaW5nIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgLSAob3B0aW9uYWwpIC0gVGhlIHZhbHVlIHJldHVybmVkIGZvciB1bmRlZmluZWQgcmVzb2x2ZWQgdmFsdWVzLlxuICogQHJldHVybnMgVGhlIHVwZGF0ZWQgb2JqZWN0XG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IG15T2JqID0ge2Zvbzoge2JhcjogJ2JheicsIGJpbmc6ICdiYW5nJ319O1xuICogb2JqZWN0RGVlcEdldChteU9iaiwgJ2Zvby5iYXInKSAgICAgICAgICAgICAgLy8gUmV0dXJuczogJ2JheidcbiAqIG9iamVjdERlZXBHZXQobXlPYmosICdkb2VzLm5vdC5leGlzdCcsICdoaScpIC8vIFJldHVybnM6ICdoaSdcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBvYmplY3REZWVwR2V0KG9iamVjdDogUmVjb3JkPHN0cmluZywgYW55PiwgcGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBhbnkge1xuICBpZiAoIW9iamVjdCkge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICBvYmplY3QgPSBvYmplY3Rba2V5c1swXV07XG5cbiAgaWYgKG9iamVjdCAmJiBrZXlzLmxlbmd0aCA+IDEpIHtcbiAgICByZXR1cm4gb2JqZWN0RGVlcEdldChvYmplY3QsIGtleXMuc2xpY2UoMSkuam9pbignLicpLCBkZWZhdWx0VmFsdWUpO1xuICB9XG5cbiAgaWYgKG9iamVjdCA9PT0gdW5kZWZpbmVkICYmIGRlZmF1bHRWYWx1ZSkge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICByZXR1cm4gb2JqZWN0O1xufVxuXG4iXX0=