@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
59 lines • 6.51 kB
JavaScript
import { __read } from "tslib";
import { objectDeepParse } from '../object-deep-parse/object-deep-parse';
/**
* Utility class to assist with pulling specific values from a `SimpleChanges` object.
*/
var NgChangeObjectValueParser = /** @class */ (function () {
function NgChangeObjectValueParser() {
}
/**
* Function to parse previousValue from triggered by changes on ngOnChange
*
* @param changes - SimpleChanges
* @param path - string
* @returns lowest layer value or changes object itself when path cannot be parsed
*
* @example
* valueParser.getOldValue(myChanges, 'my.path')
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
NgChangeObjectValueParser.getOldValue = function (changes, path) {
var _a = __read(this.parsePath(path), 2), keys = _a[0], key = _a[1];
return (key && changes[key]) ? objectDeepParse(changes[key].previousValue, keys) : undefined;
};
/**
* Function to parse currentValue from triggered by changes on ngOnChange
*
* @param changes - SimpleChanges
* @param path - string
* @returns lowest layer value or changes object itself when path cannot be parsed
*
* @example
* valueParser.getNewValue(myChanges, 'my.path')
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
NgChangeObjectValueParser.getNewValue = function (changes, path) {
var _a = __read(this.parsePath(path), 2), keys = _a[0], key = _a[1];
return (key && changes[key]) ? objectDeepParse(changes[key].currentValue, keys) : undefined;
};
/**
* Function to parse path to get keys for each layer
*
* @param path - string
* @returns an array of two elements, one being an array of all the keys except first one, one being the first key
*
* @example
* valueParser.parsePath('my.path') // Returns: [['my'], 'path']
*/
NgChangeObjectValueParser.parsePath = function (path) {
var keys = path.split('.');
var key = keys.shift();
if (!key) {
key = keys[0];
}
return [keys, key];
};
return NgChangeObjectValueParser;
}());
export { NgChangeObjectValueParser };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdjaGFuZ2Utb2JqZWN0LXZhbHVlLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0ZXJtaW51cy9uZ3gtdG9vbHMvdXRpbGl0aWVzLyIsInNvdXJjZXMiOlsibmdjaGFuZ2Utb2JqZWN0LXZhbHVlLXBhcnNlci9uZ2NoYW5nZS1vYmplY3QtdmFsdWUtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHekU7O0dBRUc7QUFDSDtJQUFBO0lBcURBLENBQUM7SUFwREM7Ozs7Ozs7OztPQVNHO0lBQ0gsOERBQThEO0lBQ2hELHFDQUFXLEdBQXpCLFVBQTBCLE9BQXNCLEVBQUUsSUFBWTtRQUN0RCxJQUFBLG9DQUFrQyxFQUFqQyxZQUFJLEVBQUUsV0FBMkIsQ0FBQztRQUN6QyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9GLENBQUM7SUFHRDs7Ozs7Ozs7O09BU0c7SUFDSCw4REFBOEQ7SUFDaEQscUNBQVcsR0FBekIsVUFBMEIsT0FBc0IsRUFBRSxJQUFZO1FBQ3RELElBQUEsb0NBQWtDLEVBQWpDLFlBQUksRUFBRSxXQUEyQixDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDOUYsQ0FBQztJQUdEOzs7Ozs7OztPQVFHO0lBQ1csbUNBQVMsR0FBdkIsVUFBd0IsSUFBWTtRQUNsQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNmO1FBQ0QsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0gsZ0NBQUM7QUFBRCxDQUFDLEFBckRELElBcURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBvYmplY3REZWVwUGFyc2UgfSBmcm9tICcuLi9vYmplY3QtZGVlcC1wYXJzZS9vYmplY3QtZGVlcC1wYXJzZSc7XG5cblxuLyoqXG4gKiBVdGlsaXR5IGNsYXNzIHRvIGFzc2lzdCB3aXRoIHB1bGxpbmcgc3BlY2lmaWMgdmFsdWVzIGZyb20gYSBgU2ltcGxlQ2hhbmdlc2Agb2JqZWN0LlxuICovXG5leHBvcnQgY2xhc3MgTmdDaGFuZ2VPYmplY3RWYWx1ZVBhcnNlciB7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBwYXJzZSBwcmV2aW91c1ZhbHVlIGZyb20gdHJpZ2dlcmVkIGJ5IGNoYW5nZXMgb24gbmdPbkNoYW5nZVxuICAgKlxuICAgKiBAcGFyYW0gY2hhbmdlcyAtIFNpbXBsZUNoYW5nZXNcbiAgICogQHBhcmFtIHBhdGggLSBzdHJpbmdcbiAgICogQHJldHVybnMgbG93ZXN0IGxheWVyIHZhbHVlIG9yIGNoYW5nZXMgb2JqZWN0IGl0c2VsZiB3aGVuIHBhdGggY2Fubm90IGJlIHBhcnNlZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB2YWx1ZVBhcnNlci5nZXRPbGRWYWx1ZShteUNoYW5nZXMsICdteS5wYXRoJylcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBzdGF0aWMgZ2V0T2xkVmFsdWUoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgcGF0aDogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBba2V5cywga2V5XSA9IHRoaXMucGFyc2VQYXRoKHBhdGgpO1xuICAgIHJldHVybiAoa2V5ICYmIGNoYW5nZXNba2V5XSkgPyBvYmplY3REZWVwUGFyc2UoY2hhbmdlc1trZXldLnByZXZpb3VzVmFsdWUsIGtleXMpIDogdW5kZWZpbmVkO1xuICB9XG5cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gcGFyc2UgY3VycmVudFZhbHVlIGZyb20gdHJpZ2dlcmVkIGJ5IGNoYW5nZXMgb24gbmdPbkNoYW5nZVxuICAgKlxuICAgKiBAcGFyYW0gY2hhbmdlcyAtIFNpbXBsZUNoYW5nZXNcbiAgICogQHBhcmFtIHBhdGggLSBzdHJpbmdcbiAgICogQHJldHVybnMgbG93ZXN0IGxheWVyIHZhbHVlIG9yIGNoYW5nZXMgb2JqZWN0IGl0c2VsZiB3aGVuIHBhdGggY2Fubm90IGJlIHBhcnNlZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB2YWx1ZVBhcnNlci5nZXROZXdWYWx1ZShteUNoYW5nZXMsICdteS5wYXRoJylcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBzdGF0aWMgZ2V0TmV3VmFsdWUoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgcGF0aDogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBba2V5cywga2V5XSA9IHRoaXMucGFyc2VQYXRoKHBhdGgpO1xuICAgIHJldHVybiAoa2V5ICYmIGNoYW5nZXNba2V5XSkgPyBvYmplY3REZWVwUGFyc2UoY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZSwga2V5cykgOiB1bmRlZmluZWQ7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBwYXJzZSBwYXRoIHRvIGdldCBrZXlzIGZvciBlYWNoIGxheWVyXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gc3RyaW5nXG4gICAqIEByZXR1cm5zIGFuIGFycmF5IG9mIHR3byBlbGVtZW50cywgb25lIGJlaW5nIGFuIGFycmF5IG9mIGFsbCB0aGUga2V5cyBleGNlcHQgZmlyc3Qgb25lLCBvbmUgYmVpbmcgdGhlIGZpcnN0IGtleVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB2YWx1ZVBhcnNlci5wYXJzZVBhdGgoJ215LnBhdGgnKSAvLyBSZXR1cm5zOiBbWydteSddLCAncGF0aCddXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlUGF0aChwYXRoOiBzdHJpbmcpOiBbc3RyaW5nW10sIHN0cmluZ10ge1xuICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgbGV0IGtleSA9IGtleXMuc2hpZnQoKTtcblxuICAgIGlmICgha2V5KSB7XG4gICAgICBrZXkgPSBrZXlzWzBdO1xuICAgIH1cbiAgICByZXR1cm4gW2tleXMsIGtleV07XG4gIH1cbn1cbiJdfQ==