UNPKG

@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! 🚀

46 lines • 8.75 kB
import { _GLOBAL_IMAGE, _isDefined, _maybeNonHttpUrlDevMessage, _withModuleManagerSameGlobalKey, _withModuleManagerSetterFactory, withContentAttribute, withManagerObjectMerging, } from '@davidlj95/ngx-meta/core'; import { MODULE_NAME } from '../../module-name'; import { withOpenGraphPropertyAttribute } from '../../utils/with-open-graph-property-attribute'; import { provideOpenGraphManager } from '../../utils/provide-open-graph-manager'; const NO_KEY_VALUE = { url: undefined, alt: undefined, secureUrl: null, type: null, width: null, height: null, }; /** * Manages the {@link OpenGraph.image} metadata * @public */ export const provideOpenGraphImage = () => provideOpenGraphManager(_GLOBAL_IMAGE, _withModuleManagerSameGlobalKey(), withManagerObjectMerging(), _withModuleManagerSetterFactory((metaElementsService) => (value) => { const imageUrl = value?.url?.toString(); const effectiveValue = _isDefined(imageUrl) ? value : NO_KEY_VALUE; /* istanbul ignore next https://github.com/istanbuljs/istanbuljs/issues/719 */ if (ngDevMode) { _maybeNonHttpUrlDevMessage(imageUrl, { module: MODULE_NAME, property: _GLOBAL_IMAGE, value: imageUrl, link: 'https://stackoverflow.com/a/9858694/3263250', }); } metaElementsService.set(withOpenGraphPropertyAttribute(_GLOBAL_IMAGE), withContentAttribute(imageUrl)); metaElementsService.set(withOpenGraphPropertyAttribute(_GLOBAL_IMAGE, 'alt'), withContentAttribute(effectiveValue?.alt)); metaElementsService.set(withOpenGraphPropertyAttribute(_GLOBAL_IMAGE, 'secure_url'), withContentAttribute(effectiveValue?.secureUrl?.toString())); metaElementsService.set(withOpenGraphPropertyAttribute(_GLOBAL_IMAGE, 'type'), withContentAttribute(effectiveValue?.type)); metaElementsService.set(withOpenGraphPropertyAttribute(_GLOBAL_IMAGE, 'width'), withContentAttribute(effectiveValue?.width?.toString())); metaElementsService.set(withOpenGraphPropertyAttribute(_GLOBAL_IMAGE, 'height'), withContentAttribute(effectiveValue?.height?.toString())); })); /** * {@inheritDoc provideOpenGraphImage} * @deprecated Use {@link provideOpenGraphImage} instead * @public */ export const OPEN_GRAPH_IMAGE_METADATA_PROVIDER = /* @__PURE__ */ provideOpenGraphImage(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1vcGVuLWdyYXBoLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29wZW4tZ3JhcGgvc3JjL2Jhc2ljLW9wdGlvbmFsL21hbmFnZXJzL3Byb3ZpZGUtb3Blbi1ncmFwaC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsYUFBYSxFQUNiLFVBQVUsRUFDViwwQkFBMEIsRUFDMUIsK0JBQStCLEVBQy9CLCtCQUErQixFQUUvQixvQkFBb0IsRUFDcEIsd0JBQXdCLEdBQ3pCLE1BQU0sMEJBQTBCLENBQUE7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQy9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFBO0FBQy9GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBRWhGLE1BQU0sWUFBWSxHQUFvQztJQUNwRCxHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxTQUFTO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxFQUFFLENBQ3hDLHVCQUF1QixDQUNyQixhQUFhLEVBQ2IsK0JBQStCLEVBQUUsRUFDakMsd0JBQXdCLEVBQUUsRUFDMUIsK0JBQStCLENBQzdCLENBQUMsbUJBQTJDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDekQsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQTtJQUN2QyxNQUFNLGNBQWMsR0FBb0MsVUFBVSxDQUNoRSxRQUFRLENBQ1Q7UUFDQyxDQUFDLENBQUMsS0FBSztRQUNQLENBQUMsQ0FBQyxZQUFZLENBQUE7SUFDaEIsOEVBQThFO0lBQzlFLElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCwwQkFBMEIsQ0FBQyxRQUFRLEVBQUU7WUFDbkMsTUFBTSxFQUFFLFdBQVc7WUFDbkIsUUFBUSxFQUFFLGFBQWE7WUFDdkIsS0FBSyxFQUFFLFFBQVE7WUFDZixJQUFJLEVBQUUsNkNBQTZDO1NBQ3BELENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxHQUFHLENBQ3JCLDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxFQUM3QyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FDL0IsQ0FBQTtJQUNELG1CQUFtQixDQUFDLEdBQUcsQ0FDckIsOEJBQThCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxFQUNwRCxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQzFDLENBQUE7SUFDRCxtQkFBbUIsQ0FBQyxHQUFHLENBQ3JCLDhCQUE4QixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsRUFDM0Qsb0JBQW9CLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUM1RCxDQUFBO0lBQ0QsbUJBQW1CLENBQUMsR0FBRyxDQUNyQiw4QkFBOEIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLEVBQ3JELG9CQUFvQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FDM0MsQ0FBQTtJQUNELG1CQUFtQixDQUFDLEdBQUcsQ0FDckIsOEJBQThCLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUN0RCxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQ3hELENBQUE7SUFDRCxtQkFBbUIsQ0FBQyxHQUFHLENBQ3JCLDhCQUE4QixDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsRUFDdkQsb0JBQW9CLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUN6RCxDQUFBO0FBQ0gsQ0FBQyxDQUNGLENBQ0YsQ0FBQTtBQUVIOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQ0FBa0M7QUFDN0MsZUFBZTtBQUNmLHFCQUFxQixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVuR3JhcGggfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7XG4gIF9HTE9CQUxfSU1BR0UsXG4gIF9pc0RlZmluZWQsXG4gIF9tYXliZU5vbkh0dHBVcmxEZXZNZXNzYWdlLFxuICBfd2l0aE1vZHVsZU1hbmFnZXJTYW1lR2xvYmFsS2V5LFxuICBfd2l0aE1vZHVsZU1hbmFnZXJTZXR0ZXJGYWN0b3J5LFxuICBOZ3hNZXRhRWxlbWVudHNTZXJ2aWNlLFxuICB3aXRoQ29udGVudEF0dHJpYnV0ZSxcbiAgd2l0aE1hbmFnZXJPYmplY3RNZXJnaW5nLFxufSBmcm9tICdAZGF2aWRsajk1L25neC1tZXRhL2NvcmUnXG5pbXBvcnQgeyBNT0RVTEVfTkFNRSB9IGZyb20gJy4uLy4uL21vZHVsZS1uYW1lJ1xuaW1wb3J0IHsgd2l0aE9wZW5HcmFwaFByb3BlcnR5QXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2l0aC1vcGVuLWdyYXBoLXByb3BlcnR5LWF0dHJpYnV0ZSdcbmltcG9ydCB7IHByb3ZpZGVPcGVuR3JhcGhNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vdXRpbHMvcHJvdmlkZS1vcGVuLWdyYXBoLW1hbmFnZXInXG5cbmNvbnN0IE5PX0tFWV9WQUxVRTogT3BlbkdyYXBoW3R5cGVvZiBfR0xPQkFMX0lNQUdFXSA9IHtcbiAgdXJsOiB1bmRlZmluZWQsXG4gIGFsdDogdW5kZWZpbmVkLFxuICBzZWN1cmVVcmw6IG51bGwsXG4gIHR5cGU6IG51bGwsXG4gIHdpZHRoOiBudWxsLFxuICBoZWlnaHQ6IG51bGwsXG59XG5cbi8qKlxuICogTWFuYWdlcyB0aGUge0BsaW5rIE9wZW5HcmFwaC5pbWFnZX0gbWV0YWRhdGFcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVPcGVuR3JhcGhJbWFnZSA9ICgpID0+XG4gIHByb3ZpZGVPcGVuR3JhcGhNYW5hZ2VyKFxuICAgIF9HTE9CQUxfSU1BR0UsXG4gICAgX3dpdGhNb2R1bGVNYW5hZ2VyU2FtZUdsb2JhbEtleSgpLFxuICAgIHdpdGhNYW5hZ2VyT2JqZWN0TWVyZ2luZygpLFxuICAgIF93aXRoTW9kdWxlTWFuYWdlclNldHRlckZhY3RvcnkoXG4gICAgICAobWV0YUVsZW1lbnRzU2VydmljZTogTmd4TWV0YUVsZW1lbnRzU2VydmljZSkgPT4gKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IGltYWdlVXJsID0gdmFsdWU/LnVybD8udG9TdHJpbmcoKVxuICAgICAgICBjb25zdCBlZmZlY3RpdmVWYWx1ZTogT3BlbkdyYXBoW3R5cGVvZiBfR0xPQkFMX0lNQUdFXSA9IF9pc0RlZmluZWQoXG4gICAgICAgICAgaW1hZ2VVcmwsXG4gICAgICAgIClcbiAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgOiBOT19LRVlfVkFMVUVcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgaHR0cHM6Ly9naXRodWIuY29tL2lzdGFuYnVsanMvaXN0YW5idWxqcy9pc3N1ZXMvNzE5ICovXG4gICAgICAgIGlmIChuZ0Rldk1vZGUpIHtcbiAgICAgICAgICBfbWF5YmVOb25IdHRwVXJsRGV2TWVzc2FnZShpbWFnZVVybCwge1xuICAgICAgICAgICAgbW9kdWxlOiBNT0RVTEVfTkFNRSxcbiAgICAgICAgICAgIHByb3BlcnR5OiBfR0xPQkFMX0lNQUdFLFxuICAgICAgICAgICAgdmFsdWU6IGltYWdlVXJsLFxuICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS85ODU4Njk0LzMyNjMyNTAnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgbWV0YUVsZW1lbnRzU2VydmljZS5zZXQoXG4gICAgICAgICAgd2l0aE9wZW5HcmFwaFByb3BlcnR5QXR0cmlidXRlKF9HTE9CQUxfSU1BR0UpLFxuICAgICAgICAgIHdpdGhDb250ZW50QXR0cmlidXRlKGltYWdlVXJsKSxcbiAgICAgICAgKVxuICAgICAgICBtZXRhRWxlbWVudHNTZXJ2aWNlLnNldChcbiAgICAgICAgICB3aXRoT3BlbkdyYXBoUHJvcGVydHlBdHRyaWJ1dGUoX0dMT0JBTF9JTUFHRSwgJ2FsdCcpLFxuICAgICAgICAgIHdpdGhDb250ZW50QXR0cmlidXRlKGVmZmVjdGl2ZVZhbHVlPy5hbHQpLFxuICAgICAgICApXG4gICAgICAgIG1ldGFFbGVtZW50c1NlcnZpY2Uuc2V0KFxuICAgICAgICAgIHdpdGhPcGVuR3JhcGhQcm9wZXJ0eUF0dHJpYnV0ZShfR0xPQkFMX0lNQUdFLCAnc2VjdXJlX3VybCcpLFxuICAgICAgICAgIHdpdGhDb250ZW50QXR0cmlidXRlKGVmZmVjdGl2ZVZhbHVlPy5zZWN1cmVVcmw/LnRvU3RyaW5nKCkpLFxuICAgICAgICApXG4gICAgICAgIG1ldGFFbGVtZW50c1NlcnZpY2Uuc2V0KFxuICAgICAgICAgIHdpdGhPcGVuR3JhcGhQcm9wZXJ0eUF0dHJpYnV0ZShfR0xPQkFMX0lNQUdFLCAndHlwZScpLFxuICAgICAgICAgIHdpdGhDb250ZW50QXR0cmlidXRlKGVmZmVjdGl2ZVZhbHVlPy50eXBlKSxcbiAgICAgICAgKVxuICAgICAgICBtZXRhRWxlbWVudHNTZXJ2aWNlLnNldChcbiAgICAgICAgICB3aXRoT3BlbkdyYXBoUHJvcGVydHlBdHRyaWJ1dGUoX0dMT0JBTF9JTUFHRSwgJ3dpZHRoJyksXG4gICAgICAgICAgd2l0aENvbnRlbnRBdHRyaWJ1dGUoZWZmZWN0aXZlVmFsdWU/LndpZHRoPy50b1N0cmluZygpKSxcbiAgICAgICAgKVxuICAgICAgICBtZXRhRWxlbWVudHNTZXJ2aWNlLnNldChcbiAgICAgICAgICB3aXRoT3BlbkdyYXBoUHJvcGVydHlBdHRyaWJ1dGUoX0dMT0JBTF9JTUFHRSwgJ2hlaWdodCcpLFxuICAgICAgICAgIHdpdGhDb250ZW50QXR0cmlidXRlKGVmZmVjdGl2ZVZhbHVlPy5oZWlnaHQ/LnRvU3RyaW5nKCkpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICksXG4gIClcblxuLyoqXG4gKiB7QGluaGVyaXREb2MgcHJvdmlkZU9wZW5HcmFwaEltYWdlfVxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBwcm92aWRlT3BlbkdyYXBoSW1hZ2V9IGluc3RlYWRcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IE9QRU5fR1JBUEhfSU1BR0VfTUVUQURBVEFfUFJPVklERVIgPVxuICAvKiBAX19QVVJFX18gKi9cbiAgcHJvdmlkZU9wZW5HcmFwaEltYWdlKClcbiJdfQ==