ngx-foresight
Version:
<p align="center"> <img src="https://akshykhade.github.io/ngx-foresight/logo.svg" width="305px"> </p> <br/> <p align="center"> <a href="https://www.npmjs.com/package/ngx-foresight"> <img src="https://img.shields.io/npm/v/ngx-foresight.svg?style=fo
40 lines • 4.43 kB
JavaScript
import { Injectable } from '@angular/core';
import { EMPTY } from 'rxjs';
import { findPath } from './utils/find-path';
import * as i0 from "@angular/core";
import * as i1 from "./prefetch-registry.service";
import * as i2 from "@angular/router";
export class ForesightjsStrategy {
registry;
router;
loading = new Set();
constructor(registry, router) {
this.registry = registry;
this.router = router;
}
preload(route, load) {
if (this.loading.has(route)) {
// Don't preload the same route twice
return EMPTY;
}
// Prevent from preloading
if (route.data && route.data['preload'] === false) {
return EMPTY;
}
const fullPath = findPath(this.router.config, route);
if (this.registry.shouldPrefetch(fullPath)) {
this.loading.add(route);
return load();
}
return EMPTY;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForesightjsStrategy, deps: [{ token: i1.PrefetchRegistry }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForesightjsStrategy, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForesightjsStrategy, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: () => [{ type: i1.PrefetchRegistry }, { type: i2.Router }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXNpZ2h0anNTdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3Jlc2lnaHQvc3JjL2xpYi9mb3Jlc2lnaHRqc1N0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFNN0MsTUFBTSxPQUFPLG1CQUFtQjtJQUdWO0lBQW9DO0lBRnhELE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDO0lBRTNCLFlBQW9CLFFBQTBCLEVBQVUsTUFBYztRQUFsRCxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBRTFFLE9BQU8sQ0FBQyxLQUFZLEVBQUUsSUFBYztRQUNsQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIscUNBQXFDO1lBQ3JDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELDBCQUEwQjtRQUMxQixJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNsRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt3R0F0QlUsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByZWxvYWRpbmdTdHJhdGVneSwgUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFTVBUWSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluZFBhdGggfSBmcm9tICcuL3V0aWxzL2ZpbmQtcGF0aCc7XG5pbXBvcnQgeyBQcmVmZXRjaFJlZ2lzdHJ5IH0gZnJvbSAnLi9wcmVmZXRjaC1yZWdpc3RyeS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcmVzaWdodGpzU3RyYXRlZ3kgaW1wbGVtZW50cyBQcmVsb2FkaW5nU3RyYXRlZ3kge1xuICBsb2FkaW5nID0gbmV3IFNldDxSb3V0ZT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZ2lzdHJ5OiBQcmVmZXRjaFJlZ2lzdHJ5LCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxuXG4gIHByZWxvYWQocm91dGU6IFJvdXRlLCBsb2FkOiBGdW5jdGlvbikge1xuICAgIGlmICh0aGlzLmxvYWRpbmcuaGFzKHJvdXRlKSkge1xuICAgICAgLy8gRG9uJ3QgcHJlbG9hZCB0aGUgc2FtZSByb3V0ZSB0d2ljZVxuICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cblxuICAgIC8vIFByZXZlbnQgZnJvbSBwcmVsb2FkaW5nXG4gICAgaWYgKHJvdXRlLmRhdGEgJiYgcm91dGUuZGF0YVsncHJlbG9hZCddID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cbiAgICBjb25zdCBmdWxsUGF0aCA9IGZpbmRQYXRoKHRoaXMucm91dGVyLmNvbmZpZywgcm91dGUpO1xuICAgIGlmICh0aGlzLnJlZ2lzdHJ5LnNob3VsZFByZWZldGNoKGZ1bGxQYXRoKSkge1xuICAgICAgdGhpcy5sb2FkaW5nLmFkZChyb3V0ZSk7XG4gICAgICByZXR1cm4gbG9hZCgpO1xuICAgIH1cblxuICAgIHJldHVybiBFTVBUWTtcbiAgfVxufVxuIl19