UNPKG

@granito/ngx-hal-client

Version:

A HAL client to be used in Angular projects

33 lines 4 kB
import { Collection } from './internal'; /** * Convert any item, be that a {@link Resource} or {@link Collection} * to a plain {@link Object} or {@link Array}. On conversion * HAL-related properties (`_client`, `_links`, `_embedded`) * are not included in the resulting object. Primitive types * as well as `null` or `undefined` are returned unchanged. * If the argument is an array, every item of the returned array * is converted recursively. For {@link Collection} it returns * the array of values where each item is converted recursively. * * @param item the item to convert * @returns an object, array, primitive value, `undefined` or `null` */ export function objectFrom(item) { if (typeof item !== 'object' || item === null) return item; if (item instanceof Collection) return objectFrom(item.values); if (Array.isArray(item)) return item.map(x => objectFrom(x)); const { _client, _links, _embedded, ...object } = item; return object; } /** * @param arg argument to test * @returns `false` if the argument is `null` or `undefined` and `true` * otherwise */ export function isDefined(arg) { return arg !== undefined && arg !== null; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxZQUFZLENBQUM7QUFFbEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFTO0lBQ2hDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0lBRWhCLElBQUksSUFBSSxZQUFZLFVBQVU7UUFDMUIsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRW5DLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBRXZELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxHQUF5QjtJQUVsRCxPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiwgUmVzb3VyY2UgfSBmcm9tICcuL2ludGVybmFsJztcblxuLyoqXG4gKiBDb252ZXJ0IGFueSBpdGVtLCBiZSB0aGF0IGEge0BsaW5rIFJlc291cmNlfSBvciB7QGxpbmsgQ29sbGVjdGlvbn1cbiAqIHRvIGEgcGxhaW4ge0BsaW5rIE9iamVjdH0gb3Ige0BsaW5rIEFycmF5fS4gT24gY29udmVyc2lvblxuICogSEFMLXJlbGF0ZWQgcHJvcGVydGllcyAoYF9jbGllbnRgLCBgX2xpbmtzYCwgYF9lbWJlZGRlZGApXG4gKiBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSByZXN1bHRpbmcgb2JqZWN0LiBQcmltaXRpdmUgdHlwZXNcbiAqIGFzIHdlbGwgYXMgYG51bGxgIG9yIGB1bmRlZmluZWRgIGFyZSByZXR1cm5lZCB1bmNoYW5nZWQuXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgYW4gYXJyYXksIGV2ZXJ5IGl0ZW0gb2YgdGhlIHJldHVybmVkIGFycmF5XG4gKiBpcyBjb252ZXJ0ZWQgcmVjdXJzaXZlbHkuIEZvciB7QGxpbmsgQ29sbGVjdGlvbn0gaXQgcmV0dXJuc1xuICogdGhlIGFycmF5IG9mIHZhbHVlcyB3aGVyZSBlYWNoIGl0ZW0gaXMgY29udmVydGVkIHJlY3Vyc2l2ZWx5LlxuICpcbiAqIEBwYXJhbSBpdGVtIHRoZSBpdGVtIHRvIGNvbnZlcnRcbiAqIEByZXR1cm5zIGFuIG9iamVjdCwgYXJyYXksIHByaW1pdGl2ZSB2YWx1ZSwgYHVuZGVmaW5lZGAgb3IgYG51bGxgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RGcm9tKGl0ZW06IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtICE9PSAnb2JqZWN0JyB8fCBpdGVtID09PSBudWxsKVxuICAgICAgICByZXR1cm4gaXRlbTtcblxuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQ29sbGVjdGlvbilcbiAgICAgICAgcmV0dXJuIG9iamVjdEZyb20oaXRlbS52YWx1ZXMpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpXG4gICAgICAgIHJldHVybiBpdGVtLm1hcCh4ID0+IG9iamVjdEZyb20oeCkpO1xuXG4gICAgY29uc3QgeyBfY2xpZW50LCBfbGlua3MsIF9lbWJlZGRlZCwgLi4ub2JqZWN0IH0gPSBpdGVtO1xuXG4gICAgcmV0dXJuIG9iamVjdDtcbn1cblxuLyoqXG4gKiBAcGFyYW0gYXJnIGFyZ3VtZW50IHRvIHRlc3RcbiAqIEByZXR1cm5zIGBmYWxzZWAgaWYgdGhlIGFyZ3VtZW50IGlzIGBudWxsYCBvciBgdW5kZWZpbmVkYCBhbmQgYHRydWVgXG4gKiBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmaW5lZDxUPihhcmc6IFQgfCBudWxsIHwgdW5kZWZpbmVkKTpcbiAgICBhcmcgaXMgVCBleHRlbmRzIG51bGwgfCB1bmRlZmluZWQgPyBuZXZlciA6IFQge1xuICAgIHJldHVybiBhcmcgIT09IHVuZGVmaW5lZCAmJiBhcmcgIT09IG51bGw7XG59XG4iXX0=