UNPKG

@tangential/core

Version:

Core types and support code for Tangential

54 lines 6.75 kB
import { map } from 'rxjs/operators'; export class NgUtil { static data$(route) { return route.data.pipe(map((data) => { return NgUtil.collectFromRoute(route.snapshot, true); })); } static data(route) { return NgUtil.collectFromRoute(route, true); } static params(route) { return NgUtil.collectFromRoute(route, false); } static collectFromRoute(route, data) { const datas = [{}]; let child = route.root; while (child) { const what = data ? child.data : child.params; datas.push(what || {}); child = child.firstChild; } // merge them all together... return Object.assign.apply(Object, datas); } static params$(route) { return route.params.pipe(map((params) => { return NgUtil.collectFromRoute(route.snapshot, false); })); } static routeLeaf(route) { let child = route.root; while (child.firstChild) { child = child.firstChild; } return child; } static keylessUrl(route) { return route.url ? route.url.split('/').map(segment => NgUtil.isFirebaseId(segment) ? ':key' : segment).join('/') : ''; } /** * * @param key * @returns {boolean} * @deprecated See FireBlanket.util#isFirebaseGeneratedId */ static isFirebaseId(key) { let isKey = false; if (key && key.length === 20 && key.startsWith('-')) { isKey = true; } return isKey; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdlbnRpYWwvY29yZS9zcmMvbGliL3V0aWwvbmctdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUE7QUFJbEMsTUFBTSxPQUFPLE1BQU07SUFFakIsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFxQjtRQUNoQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3ZDLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDdEQsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQTZCO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUE2QjtRQUN6QyxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUE2QixFQUFFLElBQWE7UUFDbEUsTUFBTSxLQUFLLEdBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN6QixJQUFJLEtBQUssR0FBK0IsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUNsRCxPQUFPLEtBQUssRUFBRTtZQUNaLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQTtZQUM3QyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUN0QixLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQTtTQUN6QjtRQUNELDZCQUE2QjtRQUM3QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFZLENBQVEsQ0FBQTtJQUN6RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFxQjtRQUNsQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQzNDLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDdkQsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQTBCO1FBQ3pDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUE7UUFFdEIsT0FBTyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3ZCLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO1NBQ3pCO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUEwQjtRQUMxQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FDekMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQzlFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBVztRQUM3QixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuRCxLQUFLLEdBQUcsSUFBSSxDQUFBO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5cblxuZXhwb3J0IGNsYXNzIE5nVXRpbCB7XG5cbiAgc3RhdGljIGRhdGEkKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6T2JzZXJ2YWJsZTx7fT4ge1xuICAgIHJldHVybiByb3V0ZS5kYXRhLnBpcGUobWFwKChkYXRhOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBOZ1V0aWwuY29sbGVjdEZyb21Sb3V0ZShyb3V0ZS5zbmFwc2hvdCwgdHJ1ZSlcbiAgICB9KSlcbiAgfVxuXG4gIHN0YXRpYyBkYXRhKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYW55IHtcbiAgICByZXR1cm4gTmdVdGlsLmNvbGxlY3RGcm9tUm91dGUocm91dGUsIHRydWUpXG4gIH1cblxuICBzdGF0aWMgcGFyYW1zKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYW55IHtcbiAgICByZXR1cm4gTmdVdGlsLmNvbGxlY3RGcm9tUm91dGUocm91dGUsIGZhbHNlKVxuICB9XG5cbiAgc3RhdGljIGNvbGxlY3RGcm9tUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGRhdGE6IGJvb2xlYW4pOiBhbnkge1xuICAgIGNvbnN0IGRhdGFzOiBhbnlbXSA9IFt7fV1cbiAgICBsZXQgY2hpbGQ6QWN0aXZhdGVkUm91dGVTbmFwc2hvdHxudWxsID0gcm91dGUucm9vdFxuICAgIHdoaWxlIChjaGlsZCkge1xuICAgICAgY29uc3Qgd2hhdCA9IGRhdGEgPyBjaGlsZC5kYXRhIDogY2hpbGQucGFyYW1zXG4gICAgICBkYXRhcy5wdXNoKHdoYXQgfHwge30pXG4gICAgICBjaGlsZCA9IGNoaWxkLmZpcnN0Q2hpbGRcbiAgICB9XG4gICAgLy8gbWVyZ2UgdGhlbSBhbGwgdG9nZXRoZXIuLi5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbi5hcHBseShPYmplY3QsIGRhdGFzIGFzIGFueSkgYXMgYW55XG4gIH1cblxuICBzdGF0aWMgcGFyYW1zJChyb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICByZXR1cm4gcm91dGUucGFyYW1zLnBpcGUobWFwKChwYXJhbXM6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIE5nVXRpbC5jb2xsZWN0RnJvbVJvdXRlKHJvdXRlLnNuYXBzaG90LCBmYWxzZSlcbiAgICB9KSlcbiAgfVxuXG4gIHN0YXRpYyByb3V0ZUxlYWYocm91dGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHtcbiAgICBsZXQgY2hpbGQgPSByb3V0ZS5yb290XG5cbiAgICB3aGlsZSAoY2hpbGQuZmlyc3RDaGlsZCkge1xuICAgICAgY2hpbGQgPSBjaGlsZC5maXJzdENoaWxkXG4gICAgfVxuICAgIHJldHVybiBjaGlsZFxuICB9XG5cbiAgc3RhdGljIGtleWxlc3NVcmwocm91dGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBzdHJpbmcge1xuICAgIHJldHVybiByb3V0ZS51cmwgPyByb3V0ZS51cmwuc3BsaXQoJy8nKS5tYXAoXG4gICAgICBzZWdtZW50ID0+IE5nVXRpbC5pc0ZpcmViYXNlSWQoc2VnbWVudCkgPyAnOmtleScgOiBzZWdtZW50KS5qb2luKCcvJykgOiAnJ1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBrZXlcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqIEBkZXByZWNhdGVkIFNlZSBGaXJlQmxhbmtldC51dGlsI2lzRmlyZWJhc2VHZW5lcmF0ZWRJZFxuICAgKi9cbiAgc3RhdGljIGlzRmlyZWJhc2VJZChrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBpc0tleSA9IGZhbHNlXG4gICAgaWYgKGtleSAmJiBrZXkubGVuZ3RoID09PSAyMCAmJiBrZXkuc3RhcnRzV2l0aCgnLScpKSB7XG4gICAgICBpc0tleSA9IHRydWVcbiAgICB9XG4gICAgcmV0dXJuIGlzS2V5XG4gIH1cblxufVxuIl19