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

30 lines • 5.53 kB
import { _GLOBAL_IMAGE, _maybeNonHttpUrlDevMessage, _withModuleManagerSameGlobalKey, _withModuleManagerSetterFactory, withContentAttribute, withManagerObjectMerging, } from '@davidlj95/ngx-meta/core'; import { MODULE_NAME } from '../module-name'; import { withTwitterCardNameAttribute } from '../utils/with-twitter-card-name-attribute'; import { provideTwitterCardManager } from '../utils/provide-twitter-card-manager'; /** * Manages the {@link TwitterCard.image} metadata * @public */ export const provideTwitterCardImage = () => provideTwitterCardManager(_GLOBAL_IMAGE, _withModuleManagerSameGlobalKey(), withManagerObjectMerging(), _withModuleManagerSetterFactory((metaElementsService) => (image) => { /* istanbul ignore next https://github.com/istanbuljs/istanbuljs/issues/719 */ if (ngDevMode) { _maybeNonHttpUrlDevMessage(image?.url, { module: MODULE_NAME, property: 'image', value: image?.url.toString(), link: 'https://devcommunity.x.com/t/card-error-unable-to-render-or-no-image-read-this-first/62736', }); } metaElementsService.set(withTwitterCardNameAttribute(_GLOBAL_IMAGE), withContentAttribute(image?.url?.toString())); metaElementsService.set(withTwitterCardNameAttribute(_GLOBAL_IMAGE, 'alt'), withContentAttribute(image?.alt)); })); /** * {@inheritDoc provideTwitterCardImage} * @deprecated Use {@link provideTwitterCardImage} instead * @public */ export const TWITTER_CARD_IMAGE_METADATA_PROVIDER = /* @__PURE__ */ provideTwitterCardImage(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS10d2l0dGVyLWNhcmQtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHdpdHRlci1jYXJkL3NyYy9tYW5hZ2Vycy9wcm92aWRlLXR3aXR0ZXItY2FyZC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsYUFBYSxFQUNiLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBRS9CLG9CQUFvQixFQUNwQix3QkFBd0IsR0FDekIsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFFakY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxFQUFFLENBQzFDLHlCQUF5QixDQUN2QixhQUFhLEVBQ2IsK0JBQStCLEVBQUUsRUFDakMsd0JBQXdCLEVBQUUsRUFDMUIsK0JBQStCLENBQzdCLENBQUMsbUJBQTJDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDekQsOEVBQThFO0lBQzlFLElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCwwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxXQUFXO1lBQ25CLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUM1QixJQUFJLEVBQUUsNEZBQTRGO1NBQ25HLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxHQUFHLENBQ3JCLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxFQUMzQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQzdDLENBQUE7SUFDRCxtQkFBbUIsQ0FBQyxHQUFHLENBQ3JCLDRCQUE0QixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFDbEQsb0JBQW9CLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUNqQyxDQUFBO0FBQ0gsQ0FBQyxDQUNGLENBQ0YsQ0FBQTtBQUVIOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQ0FBb0M7QUFDL0MsZUFBZTtBQUNmLHVCQUF1QixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBfR0xPQkFMX0lNQUdFLFxuICBfbWF5YmVOb25IdHRwVXJsRGV2TWVzc2FnZSxcbiAgX3dpdGhNb2R1bGVNYW5hZ2VyU2FtZUdsb2JhbEtleSxcbiAgX3dpdGhNb2R1bGVNYW5hZ2VyU2V0dGVyRmFjdG9yeSxcbiAgTmd4TWV0YUVsZW1lbnRzU2VydmljZSxcbiAgd2l0aENvbnRlbnRBdHRyaWJ1dGUsXG4gIHdpdGhNYW5hZ2VyT2JqZWN0TWVyZ2luZyxcbn0gZnJvbSAnQGRhdmlkbGo5NS9uZ3gtbWV0YS9jb3JlJ1xuaW1wb3J0IHsgTU9EVUxFX05BTUUgfSBmcm9tICcuLi9tb2R1bGUtbmFtZSdcbmltcG9ydCB7IHdpdGhUd2l0dGVyQ2FyZE5hbWVBdHRyaWJ1dGUgfSBmcm9tICcuLi91dGlscy93aXRoLXR3aXR0ZXItY2FyZC1uYW1lLWF0dHJpYnV0ZSdcbmltcG9ydCB7IHByb3ZpZGVUd2l0dGVyQ2FyZE1hbmFnZXIgfSBmcm9tICcuLi91dGlscy9wcm92aWRlLXR3aXR0ZXItY2FyZC1tYW5hZ2VyJ1xuXG4vKipcbiAqIE1hbmFnZXMgdGhlIHtAbGluayBUd2l0dGVyQ2FyZC5pbWFnZX0gbWV0YWRhdGFcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVUd2l0dGVyQ2FyZEltYWdlID0gKCkgPT5cbiAgcHJvdmlkZVR3aXR0ZXJDYXJkTWFuYWdlcihcbiAgICBfR0xPQkFMX0lNQUdFLFxuICAgIF93aXRoTW9kdWxlTWFuYWdlclNhbWVHbG9iYWxLZXkoKSxcbiAgICB3aXRoTWFuYWdlck9iamVjdE1lcmdpbmcoKSxcbiAgICBfd2l0aE1vZHVsZU1hbmFnZXJTZXR0ZXJGYWN0b3J5KFxuICAgICAgKG1ldGFFbGVtZW50c1NlcnZpY2U6IE5neE1ldGFFbGVtZW50c1NlcnZpY2UpID0+IChpbWFnZSkgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCBodHRwczovL2dpdGh1Yi5jb20vaXN0YW5idWxqcy9pc3RhbmJ1bGpzL2lzc3Vlcy83MTkgKi9cbiAgICAgICAgaWYgKG5nRGV2TW9kZSkge1xuICAgICAgICAgIF9tYXliZU5vbkh0dHBVcmxEZXZNZXNzYWdlKGltYWdlPy51cmwsIHtcbiAgICAgICAgICAgIG1vZHVsZTogTU9EVUxFX05BTUUsXG4gICAgICAgICAgICBwcm9wZXJ0eTogJ2ltYWdlJyxcbiAgICAgICAgICAgIHZhbHVlOiBpbWFnZT8udXJsLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9kZXZjb21tdW5pdHkueC5jb20vdC9jYXJkLWVycm9yLXVuYWJsZS10by1yZW5kZXItb3Itbm8taW1hZ2UtcmVhZC10aGlzLWZpcnN0LzYyNzM2JyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIG1ldGFFbGVtZW50c1NlcnZpY2Uuc2V0KFxuICAgICAgICAgIHdpdGhUd2l0dGVyQ2FyZE5hbWVBdHRyaWJ1dGUoX0dMT0JBTF9JTUFHRSksXG4gICAgICAgICAgd2l0aENvbnRlbnRBdHRyaWJ1dGUoaW1hZ2U/LnVybD8udG9TdHJpbmcoKSksXG4gICAgICAgIClcbiAgICAgICAgbWV0YUVsZW1lbnRzU2VydmljZS5zZXQoXG4gICAgICAgICAgd2l0aFR3aXR0ZXJDYXJkTmFtZUF0dHJpYnV0ZShfR0xPQkFMX0lNQUdFLCAnYWx0JyksXG4gICAgICAgICAgd2l0aENvbnRlbnRBdHRyaWJ1dGUoaW1hZ2U/LmFsdCksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgKSxcbiAgKVxuXG4vKipcbiAqIHtAaW5oZXJpdERvYyBwcm92aWRlVHdpdHRlckNhcmRJbWFnZX1cbiAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgcHJvdmlkZVR3aXR0ZXJDYXJkSW1hZ2V9IGluc3RlYWRcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IFRXSVRURVJfQ0FSRF9JTUFHRV9NRVRBREFUQV9QUk9WSURFUiA9XG4gIC8qIEBfX1BVUkVfXyAqL1xuICBwcm92aWRlVHdpdHRlckNhcmRJbWFnZSgpXG4iXX0=