@ngqp/core
Version:
87 lines • 10 kB
JavaScript
import { convertToParamMap } from '@angular/router';
import { isObservable, of } from 'rxjs';
/** @internal */
// tslint:disable-next-line:triple-equals
export const LOOSE_IDENTITY_COMPARATOR = (a, b) => a == b;
/** @internal */
export const NOP = () => { };
/** @internal */
export function isMissing(obj) {
return obj === undefined || obj === null;
}
/** @internal */
export function undefinedToNull(obj) {
if (obj === undefined) {
return null;
}
return obj;
}
/** @internal */
export function isPresent(obj) {
return !isMissing(obj);
}
/** @internal */
export function isFunction(obj) {
return isPresent(obj) && typeof obj === 'function';
}
/** @internal */
export function wrapTryCatch(fn, msg) {
return function () {
try {
return fn.apply(this, arguments);
}
catch (err) {
console.error(msg, err);
return null;
}
};
}
/** @internal */
export function areEqualUsing(first, second, comparator) {
const comparison = comparator(first, second);
if (typeof comparison === 'boolean') {
return comparison;
}
return comparison === 0;
}
/** @internal */
export function filterParamMap(paramMap, keys) {
const params = {};
keys
.filter(key => paramMap.keys.includes(key))
.forEach(key => params[key] = paramMap.getAll(key));
return convertToParamMap(params);
}
/** @internal */
export function compareParamMaps(first, second) {
if ((first && !second) || (second && !first)) {
return false;
}
if (!compareStringArraysUnordered(first.keys, second.keys)) {
return false;
}
return first.keys.every(key => compareStringArraysUnordered(first.getAll(key), second.getAll(key)));
}
/** @internal */
export function compareStringArraysUnordered(first, second) {
if (!first && !second) {
return true;
}
if ((first && !second) || (second && !first)) {
return false;
}
if (first.length !== second.length) {
return false;
}
const sortedFirst = first.sort();
const sortedSecond = second.sort();
return sortedFirst.every((firstKey, index) => firstKey === sortedSecond[index]);
}
/** @internal */
export function wrapIntoObservable(input) {
if (isObservable(input)) {
return input;
}
return of(input);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3FwL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BELGdCQUFnQjtBQUNoQix5Q0FBeUM7QUFDekMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBSSxDQUFJLEVBQUUsQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRW5FLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQWEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBRXRDLGdCQUFnQjtBQUNoQixNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVE7SUFDOUIsT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUM7QUFDN0MsQ0FBQztBQUVELGdCQUFnQjtBQUNoQixNQUFNLFVBQVUsZUFBZSxDQUFJLEdBQWtCO0lBQ2pELElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtRQUNuQixPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBRUQsZ0JBQWdCO0FBQ2hCLE1BQU0sVUFBVSxTQUFTLENBQUksR0FBTTtJQUMvQixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRCxnQkFBZ0I7QUFDaEIsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFRO0lBQy9CLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUN2RCxDQUFDO0FBRUQsZ0JBQWdCO0FBQ2hCLE1BQU0sVUFBVSxZQUFZLENBQXFCLEVBQUss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QUFLLENBQUM7S0FDaEI7SUFFRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29udmVydFRvUGFyYW1NYXAsIFBhcmFtTWFwLCBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcGFyYXRvciB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKiogQGludGVybmFsICovXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dHJpcGxlLWVxdWFsc1xuZXhwb3J0IGNvbnN0IExPT1NFX0lERU5USVRZX0NPTVBBUkFUT1IgPSA8VD4oYTogVCwgYjogVCkgPT4gYSA9PSBiO1xuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgY29uc3QgTk9QOiBGdW5jdGlvbiA9ICgpID0+IHt9O1xuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gaXNNaXNzaW5nKG9iajogYW55KTogb2JqIGlzIG51bGwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBvYmogPT09IHVuZGVmaW5lZCB8fCBvYmogPT09IG51bGw7XG59XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRUb051bGw8VD4ob2JqOiBUIHwgdW5kZWZpbmVkKTogVCB8IG51bGwge1xuICAgIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gb2JqO1xufVxuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVzZW50PFQ+KG9iajogVCk6IG9iaiBpcyBFeGNsdWRlPFQsIG51bGwgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gIWlzTWlzc2luZyhvYmopO1xufVxuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbihvYmo6IGFueSk6IG9iaiBpcyBGdW5jdGlvbiB7XG4gICAgcmV0dXJuIGlzUHJlc2VudChvYmopICYmIHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbic7XG59XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCBmdW5jdGlvbiB3cmFwVHJ5Q2F0Y2g8VCBleHRlbmRzIEZ1bmN0aW9uPihmbjogVCwgbXNnOiBzdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gPGFueT5mdW5jdGlvbiAodGhpczogYW55KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKG1zZywgZXJyKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFyZUVxdWFsVXNpbmc8VD4oZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsLCBjb21wYXJhdG9yOiBDb21wYXJhdG9yPFQgfCBudWxsPik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbXBhcmlzb24gPSBjb21wYXJhdG9yKGZpcnN0LCBzZWNvbmQpO1xuICAgIGlmICh0eXBlb2YgY29tcGFyaXNvbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHJldHVybiBjb21wYXJpc29uO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJpc29uID09PSAwO1xufVxuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyUGFyYW1NYXAocGFyYW1NYXA6IFBhcmFtTWFwLCBrZXlzOiBzdHJpbmdbXSk6IFBhcmFtTWFwIHtcbiAgICBjb25zdCBwYXJhbXM6IFBhcmFtcyA9IHt9O1xuICAgIGtleXNcbiAgICAgICAgLmZpbHRlcihrZXkgPT4gcGFyYW1NYXAua2V5cy5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAuZm9yRWFjaChrZXkgPT4gcGFyYW1zWyBrZXkgXSA9IHBhcmFtTWFwLmdldEFsbChrZXkpKTtcblxuICAgIHJldHVybiBjb252ZXJ0VG9QYXJhbU1hcChwYXJhbXMpO1xufVxuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZVBhcmFtTWFwcyhmaXJzdDogUGFyYW1NYXAsIHNlY29uZDogUGFyYW1NYXApOiBib29sZWFuIHtcbiAgICBpZiAoKGZpcnN0ICYmICFzZWNvbmQpIHx8IChzZWNvbmQgJiYgIWZpcnN0KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFjb21wYXJlU3RyaW5nQXJyYXlzVW5vcmRlcmVkKGZpcnN0LmtleXMsIHNlY29uZC5rZXlzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpcnN0LmtleXMuZXZlcnkoa2V5ID0+XG4gICAgICAgIGNvbXBhcmVTdHJpbmdBcnJheXNVbm9yZGVyZWQoZmlyc3QuZ2V0QWxsKGtleSksIHNlY29uZC5nZXRBbGwoa2V5KSlcbiAgICApO1xufVxuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZVN0cmluZ0FycmF5c1Vub3JkZXJlZChmaXJzdDogc3RyaW5nW10sIHNlY29uZDogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICBpZiAoIWZpcnN0ICYmICFzZWNvbmQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKChmaXJzdCAmJiAhc2Vjb25kKSB8fCAoc2Vjb25kICYmICFmaXJzdCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChmaXJzdC5sZW5ndGggIT09IHNlY29uZC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHNvcnRlZEZpcnN0ID0gZmlyc3Quc29ydCgpO1xuICAgIGNvbnN0IHNvcnRlZFNlY29uZCA9IHNlY29uZC5zb3J0KCk7XG4gICAgcmV0dXJuIHNvcnRlZEZpcnN0LmV2ZXJ5KChmaXJzdEtleSwgaW5kZXgpID0+IGZpcnN0S2V5ID09PSBzb3J0ZWRTZWNvbmRbaW5kZXhdKTtcbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBJbnRvT2JzZXJ2YWJsZTxUPihpbnB1dDogVCB8IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKGlucHV0KSkge1xuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKGlucHV0KTtcbn0iXX0=