@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! 🚀
31 lines • 4.33 kB
JavaScript
import { isObject } from '../utils/is-object';
import { _isDefined, _makeInjectionToken } from '../utils';
export const metadataJsonResolver = () => _makeInjectionToken(ngDevMode ? 'JSON Resolver' : 'JR', () => (values, resolverOptions) => {
if (values === undefined) {
return;
}
const keys = [...resolverOptions.jsonPath];
let value = values;
for (const key of keys) {
if (!_isDefined(value)) {
break;
}
value = value[key];
}
const globalValue = resolverOptions.global !== undefined
? values[resolverOptions.global]
: undefined;
if (isObject(value) &&
isObject(globalValue) &&
resolverOptions.objectMerge) {
return {
...globalValue,
...value,
};
}
if (value !== undefined) {
return value;
}
return globalValue;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtanNvbi1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL3NyYy9yZXNvbHZlcnMvbWV0YWRhdGEtanNvbi1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBdUIsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFL0UsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBRTdCLEdBQUcsRUFBRSxDQUNQLG1CQUFtQixDQUNqQixTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUNsQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsRUFBRTtJQUNoQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN6QixPQUFNO0lBQ1IsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDMUMsSUFBSSxLQUFLLEdBQVksTUFBTSxDQUFBO0lBQzNCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQUs7UUFDUCxDQUFDO1FBQ0QsS0FBSyxHQUFJLEtBQTZCLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUNmLGVBQWUsQ0FBQyxNQUFNLEtBQUssU0FBUztRQUNsQyxDQUFDLENBQUUsTUFBOEIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQ3pELENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDZixJQUNFLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDZixRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ3JCLGVBQWUsQ0FBQyxXQUFXLEVBQzNCLENBQUM7UUFDRCxPQUFPO1lBQ0wsR0FBRyxXQUFXO1lBQ2QsR0FBRyxLQUFLO1NBQ1QsQ0FBQTtJQUNILENBQUM7SUFDRCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQTtBQUNwQixDQUFDLENBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGFkYXRhVmFsdWVzIH0gZnJvbSAnLi4vc2VydmljZSdcbmltcG9ydCB7IE1ldGFkYXRhUmVzb2x2ZXJPcHRpb25zIH0gZnJvbSAnLi4vbWFuYWdlcnMnXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4uL3V0aWxzL2lzLW9iamVjdCdcbmltcG9ydCB7IF9pc0RlZmluZWQsIF9MYXp5SW5qZWN0aW9uVG9rZW4sIF9tYWtlSW5qZWN0aW9uVG9rZW4gfSBmcm9tICcuLi91dGlscydcblxuZXhwb3J0IGNvbnN0IG1ldGFkYXRhSnNvblJlc29sdmVyOiBfTGF6eUluamVjdGlvblRva2VuPFxuICBNZXRhZGF0YUpzb25SZXNvbHZlclxuPiA9ICgpID0+XG4gIF9tYWtlSW5qZWN0aW9uVG9rZW4oXG4gICAgbmdEZXZNb2RlID8gJ0pTT04gUmVzb2x2ZXInIDogJ0pSJyxcbiAgICAoKSA9PiAodmFsdWVzLCByZXNvbHZlck9wdGlvbnMpID0+IHtcbiAgICAgIGlmICh2YWx1ZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3Qga2V5cyA9IFsuLi5yZXNvbHZlck9wdGlvbnMuanNvblBhdGhdXG4gICAgICBsZXQgdmFsdWU6IHVua25vd24gPSB2YWx1ZXNcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKCFfaXNEZWZpbmVkKHZhbHVlKSkge1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgU3RyaW5nSW5kZXhlZE9iamVjdClba2V5XVxuICAgICAgfVxuICAgICAgY29uc3QgZ2xvYmFsVmFsdWUgPVxuICAgICAgICByZXNvbHZlck9wdGlvbnMuZ2xvYmFsICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/ICh2YWx1ZXMgYXMgU3RyaW5nSW5kZXhlZE9iamVjdClbcmVzb2x2ZXJPcHRpb25zLmdsb2JhbF1cbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgaWYgKFxuICAgICAgICBpc09iamVjdCh2YWx1ZSkgJiZcbiAgICAgICAgaXNPYmplY3QoZ2xvYmFsVmFsdWUpICYmXG4gICAgICAgIHJlc29sdmVyT3B0aW9ucy5vYmplY3RNZXJnZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZ2xvYmFsVmFsdWUsXG4gICAgICAgICAgLi4udmFsdWUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIGdsb2JhbFZhbHVlXG4gICAgfSxcbiAgKVxuXG4vKiogQHZpc2libGVGb3JUZXN0aW5nICovXG5leHBvcnQgdHlwZSBNZXRhZGF0YUpzb25SZXNvbHZlciA9IChcbiAgdmFsdWVzOiBNZXRhZGF0YVZhbHVlcyB8IHVuZGVmaW5lZCxcbiAgcmVzb2x2ZXJPcHRpb25zOiBNZXRhZGF0YVJlc29sdmVyT3B0aW9ucyxcbikgPT4gdW5rbm93blxuXG50eXBlIFN0cmluZ0luZGV4ZWRPYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuIl19