@davidlj95/ngx-meta
Version:
Set your Angular site's metadata: standard meta tags, Open Graph, Twitter Cards, JSON-LD structured data and more. Supports SSR (and Angular Universal). Use a service. Use routes' data. Set it up in a flash! 🚀
28 lines • 5.2 kB
JavaScript
import { _injectMetadataManagers, } from './ngx-meta-metadata-manager';
import { _makeInjectionToken } from '../utils';
const metadataRegistryFactory = () => {
const managers = _injectMetadataManagers();
const managersById = new Map();
const register = (manager) => {
/* istanbul ignore next https://github.com/istanbuljs/istanbuljs/issues/719 */
if (managersById.has(manager.id)) {
return;
}
managersById.set(manager.id, manager);
};
managers.forEach(register);
const getAll = () => managersById.values();
const findByGlobalOrJsonPath = (globalOrJsonPath) => [...getAll()].filter((manager) => manager.resolverOptions.global == globalOrJsonPath ||
manager.resolverOptions.jsonPath.join('.') == globalOrJsonPath);
return {
register,
getAll,
findByGlobalOrJsonPath,
};
};
export const metadataRegistry = () => _makeInjectionToken(ngDevMode ? 'Metadata Registry' : 'MReg', metadataRegistryFactory);
export const provideMetadataRegistry = () => ({
provide: metadataRegistry(),
useFactory: metadataRegistryFactory,
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS9zcmMvbWFuYWdlcnMvbWV0YWRhdGEtcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixHQUV4QixNQUFNLDZCQUE2QixDQUFBO0FBQ3BDLE9BQU8sRUFBdUIsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFhbkUsTUFBTSx1QkFBdUIsR0FBMkIsR0FBRyxFQUFFO0lBQzNELE1BQU0sUUFBUSxHQUFHLHVCQUF1QixFQUFFLENBQUE7SUFDMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWtDLENBQUE7SUFDOUQsTUFBTSxRQUFRLEdBQWlDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDekQsOEVBQThFO1FBQzlFLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFNO1FBQ1IsQ0FBQztRQUNELFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUN2QyxDQUFDLENBQUE7SUFDRCxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzFCLE1BQU0sTUFBTSxHQUErQixHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDdEUsTUFBTSxzQkFBc0IsR0FBK0MsQ0FDekUsZ0JBQWdCLEVBQ2hCLEVBQUUsQ0FDRixDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ2xCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxnQkFBZ0I7UUFDbEQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUNqRSxDQUFBO0lBQ0gsT0FBTztRQUNMLFFBQVE7UUFDUixNQUFNO1FBQ04sc0JBQXNCO0tBQ3ZCLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBMEMsR0FBRyxFQUFFLENBQzFFLG1CQUFtQixDQUNqQixTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQ3hDLHVCQUF1QixDQUN4QixDQUFBO0FBRUgsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW1CLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFO0lBQzNCLFVBQVUsRUFBRSx1QkFBdUI7Q0FDcEMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgX2luamVjdE1ldGFkYXRhTWFuYWdlcnMsXG4gIE5neE1ldGFNZXRhZGF0YU1hbmFnZXIsXG59IGZyb20gJy4vbmd4LW1ldGEtbWV0YWRhdGEtbWFuYWdlcidcbmltcG9ydCB7IF9MYXp5SW5qZWN0aW9uVG9rZW4sIF9tYWtlSW5qZWN0aW9uVG9rZW4gfSBmcm9tICcuLi91dGlscydcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YVJlZ2lzdHJ5IHtcbiAgcmVhZG9ubHkgcmVnaXN0ZXI6IChtYW5hZ2VyOiBOZ3hNZXRhTWV0YWRhdGFNYW5hZ2VyKSA9PiB2b2lkXG4gIHJlYWRvbmx5IGdldEFsbDogKCkgPT4gSXRlcmFibGU8Tmd4TWV0YU1ldGFkYXRhTWFuYWdlcj5cbiAgcmVhZG9ubHkgZmluZEJ5R2xvYmFsT3JKc29uUGF0aDogKFxuICAgIGdsb2JhbE9ySnNvblBhdGg6IHN0cmluZyxcbiAgKSA9PiBJdGVyYWJsZTxOZ3hNZXRhTWV0YWRhdGFNYW5hZ2VyPlxufVxuXG5jb25zdCBtZXRhZGF0YVJlZ2lzdHJ5RmFjdG9yeTogKCkgPT4gTWV0YWRhdGFSZWdpc3RyeSA9ICgpID0+IHtcbiAgY29uc3QgbWFuYWdlcnMgPSBfaW5qZWN0TWV0YWRhdGFNYW5hZ2VycygpXG4gIGNvbnN0IG1hbmFnZXJzQnlJZCA9IG5ldyBNYXA8c3RyaW5nLCBOZ3hNZXRhTWV0YWRhdGFNYW5hZ2VyPigpXG4gIGNvbnN0IHJlZ2lzdGVyOiBNZXRhZGF0YVJlZ2lzdHJ5WydyZWdpc3RlciddID0gKG1hbmFnZXIpID0+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCBodHRwczovL2dpdGh1Yi5jb20vaXN0YW5idWxqcy9pc3RhbmJ1bGpzL2lzc3Vlcy83MTkgKi9cbiAgICBpZiAobWFuYWdlcnNCeUlkLmhhcyhtYW5hZ2VyLmlkKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIG1hbmFnZXJzQnlJZC5zZXQobWFuYWdlci5pZCwgbWFuYWdlcilcbiAgfVxuICBtYW5hZ2Vycy5mb3JFYWNoKHJlZ2lzdGVyKVxuICBjb25zdCBnZXRBbGw6IE1ldGFkYXRhUmVnaXN0cnlbJ2dldEFsbCddID0gKCkgPT4gbWFuYWdlcnNCeUlkLnZhbHVlcygpXG4gIGNvbnN0IGZpbmRCeUdsb2JhbE9ySnNvblBhdGg6IE1ldGFkYXRhUmVnaXN0cnlbJ2ZpbmRCeUdsb2JhbE9ySnNvblBhdGgnXSA9IChcbiAgICBnbG9iYWxPckpzb25QYXRoLFxuICApID0+XG4gICAgWy4uLmdldEFsbCgpXS5maWx0ZXIoXG4gICAgICAobWFuYWdlcikgPT5cbiAgICAgICAgbWFuYWdlci5yZXNvbHZlck9wdGlvbnMuZ2xvYmFsID09IGdsb2JhbE9ySnNvblBhdGggfHxcbiAgICAgICAgbWFuYWdlci5yZXNvbHZlck9wdGlvbnMuanNvblBhdGguam9pbignLicpID09IGdsb2JhbE9ySnNvblBhdGgsXG4gICAgKVxuICByZXR1cm4ge1xuICAgIHJlZ2lzdGVyLFxuICAgIGdldEFsbCxcbiAgICBmaW5kQnlHbG9iYWxPckpzb25QYXRoLFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YVJlZ2lzdHJ5OiBfTGF6eUluamVjdGlvblRva2VuPE1ldGFkYXRhUmVnaXN0cnk+ID0gKCkgPT5cbiAgX21ha2VJbmplY3Rpb25Ub2tlbihcbiAgICBuZ0Rldk1vZGUgPyAnTWV0YWRhdGEgUmVnaXN0cnknIDogJ01SZWcnLFxuICAgIG1ldGFkYXRhUmVnaXN0cnlGYWN0b3J5LFxuICApXG5cbmV4cG9ydCBjb25zdCBwcm92aWRlTWV0YWRhdGFSZWdpc3RyeTogKCkgPT4gUHJvdmlkZXIgPSAoKSA9PiAoe1xuICBwcm92aWRlOiBtZXRhZGF0YVJlZ2lzdHJ5KCksXG4gIHVzZUZhY3Rvcnk6IG1ldGFkYXRhUmVnaXN0cnlGYWN0b3J5LFxufSlcbiJdfQ==