@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! 🚀
44 lines • 5.78 kB
JavaScript
// noinspection JSDeprecatedSymbols
/**
* Creates a {@link NgxMetaMetaDefinition} for its use with {@link NgxMetaMetaService}
* by understanding `<meta>` elements as key / value pair elements.
*
* @remarks
*
* One can think about some `<meta>` elements as key / value pairs.
*
* For instance `<meta name='description' content='Lorem ipsum'>` would
* actually be a key / value pair meta where
* - `description` is the key
* - `Lorem ipsum` is the value
* - `name` is the key's HTML attribute name
* - `content`is the value's HTML attribute name
*
* Value is set by {@link NgxMetaMetaService.set} by providing this model and an
* actual value
*
* @deprecated Use {@link NgxMetaElementsService} APIs instead.
* See {@link https://ngx-meta.dev/migrations/01-meta-element-apis | migration guide} for more info
*
* @param keyName - Name of the key in the key/value meta definition
* @param options - Specifies HTML attribute names and extras of the definition if any
*
* @public
*/
export const makeKeyValMetaDefinition = (keyName,
/* istanbul ignore next - quite simple */
options = {}) => {
/* istanbul ignore next - quite simple */
const keyAttr = options.keyAttr ?? 'name';
/* istanbul ignore next - quite simple */
const valAttr = options.valAttr ?? 'content';
return {
withContent: (value) => ({
[keyAttr]: keyName,
[valAttr]: value,
...options.extras,
}),
attrSelector: `${keyAttr}='${keyName}'`,
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS1rZXktdmFsLW1ldGEtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL3NyYy9tZXRhLWVsZW1lbnRzL3YxL21ha2Uta2V5LXZhbC1tZXRhLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBS25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FDdEMsT0FBZTtBQUNmLHlDQUF5QztBQUN6QyxVQUEyQyxFQUFFLEVBQ3RCLEVBQUU7SUFDekIseUNBQXlDO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFBO0lBQ3pDLHlDQUF5QztJQUN6QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQTtJQUM1QyxPQUFPO1FBQ0wsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTztZQUNsQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUs7WUFDaEIsR0FBRyxPQUFPLENBQUMsTUFBTTtTQUNsQixDQUFDO1FBQ0YsWUFBWSxFQUFFLEdBQUcsT0FBTyxLQUFLLE9BQU8sR0FBRztLQUN4QyxDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbm9pbnNwZWN0aW9uIEpTRGVwcmVjYXRlZFN5bWJvbHNcblxuaW1wb3J0IHsgTWV0YURlZmluaXRpb24gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJ1xuaW1wb3J0IHsgTmd4TWV0YU1ldGFEZWZpbml0aW9uIH0gZnJvbSAnLi9uZ3gtbWV0YS1tZXRhLWRlZmluaXRpb24nXG5cbi8qKlxuICogQ3JlYXRlcyBhIHtAbGluayBOZ3hNZXRhTWV0YURlZmluaXRpb259IGZvciBpdHMgdXNlIHdpdGgge0BsaW5rIE5neE1ldGFNZXRhU2VydmljZX1cbiAqIGJ5IHVuZGVyc3RhbmRpbmcgYDxtZXRhPmAgZWxlbWVudHMgYXMga2V5IC8gdmFsdWUgcGFpciBlbGVtZW50cy5cbiAqXG4gKiBAcmVtYXJrc1xuICpcbiAqIE9uZSBjYW4gdGhpbmsgYWJvdXQgc29tZSBgPG1ldGE+YCBlbGVtZW50cyBhcyBrZXkgLyB2YWx1ZSBwYWlycy5cbiAqXG4gKiBGb3IgaW5zdGFuY2UgYDxtZXRhIG5hbWU9J2Rlc2NyaXB0aW9uJyBjb250ZW50PSdMb3JlbSBpcHN1bSc+YCB3b3VsZFxuICogYWN0dWFsbHkgYmUgYSBrZXkgLyB2YWx1ZSBwYWlyIG1ldGEgd2hlcmVcbiAqICAtIGBkZXNjcmlwdGlvbmAgaXMgdGhlIGtleVxuICogIC0gYExvcmVtIGlwc3VtYCBpcyB0aGUgdmFsdWVcbiAqICAtIGBuYW1lYCBpcyB0aGUga2V5J3MgSFRNTCBhdHRyaWJ1dGUgbmFtZVxuICogIC0gYGNvbnRlbnRgaXMgdGhlIHZhbHVlJ3MgSFRNTCBhdHRyaWJ1dGUgbmFtZVxuICpcbiAqIFZhbHVlIGlzIHNldCBieSB7QGxpbmsgTmd4TWV0YU1ldGFTZXJ2aWNlLnNldH0gYnkgcHJvdmlkaW5nIHRoaXMgbW9kZWwgYW5kIGFuXG4gKiBhY3R1YWwgdmFsdWVcbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIE5neE1ldGFFbGVtZW50c1NlcnZpY2V9IEFQSXMgaW5zdGVhZC5cbiAqICAgICAgICAgICAgIFNlZSB7QGxpbmsgaHR0cHM6Ly9uZ3gtbWV0YS5kZXYvbWlncmF0aW9ucy8wMS1tZXRhLWVsZW1lbnQtYXBpcyB8IG1pZ3JhdGlvbiBndWlkZX0gZm9yIG1vcmUgaW5mb1xuICpcbiAqIEBwYXJhbSBrZXlOYW1lIC0gTmFtZSBvZiB0aGUga2V5IGluIHRoZSBrZXkvdmFsdWUgbWV0YSBkZWZpbml0aW9uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFNwZWNpZmllcyBIVE1MIGF0dHJpYnV0ZSBuYW1lcyBhbmQgZXh0cmFzIG9mIHRoZSBkZWZpbml0aW9uIGlmIGFueVxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VLZXlWYWxNZXRhRGVmaW5pdGlvbiA9IChcbiAga2V5TmFtZTogc3RyaW5nLFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAtIHF1aXRlIHNpbXBsZSAqL1xuICBvcHRpb25zOiBNYWtlS2V5VmFsTWV0YURlZmluaXRpb25PcHRpb25zID0ge30sXG4pOiBOZ3hNZXRhTWV0YURlZmluaXRpb24gPT4ge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAtIHF1aXRlIHNpbXBsZSAqL1xuICBjb25zdCBrZXlBdHRyID0gb3B0aW9ucy5rZXlBdHRyID8/ICduYW1lJ1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAtIHF1aXRlIHNpbXBsZSAqL1xuICBjb25zdCB2YWxBdHRyID0gb3B0aW9ucy52YWxBdHRyID8/ICdjb250ZW50J1xuICByZXR1cm4ge1xuICAgIHdpdGhDb250ZW50OiAodmFsdWUpID0+ICh7XG4gICAgICBba2V5QXR0cl06IGtleU5hbWUsXG4gICAgICBbdmFsQXR0cl06IHZhbHVlLFxuICAgICAgLi4ub3B0aW9ucy5leHRyYXMsXG4gICAgfSksXG4gICAgYXR0clNlbGVjdG9yOiBgJHtrZXlBdHRyfT0nJHtrZXlOYW1lfSdgLFxuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBhcmd1bWVudCBvYmplY3QgZm9yIHtAbGluayBtYWtlS2V5VmFsTWV0YURlZmluaXRpb259XG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBOZ3hNZXRhRWxlbWVudHNTZXJ2aWNlfSBBUElzIGluc3RlYWQuXG4gKiAgICAgICAgICAgICBTZWUge0BsaW5rIGh0dHBzOi8vbmd4LW1ldGEuZGV2L21pZ3JhdGlvbnMvMDEtbWV0YS1lbGVtZW50LWFwaXMgfCBtaWdyYXRpb24gZ3VpZGV9IGZvciBtb3JlIGluZm9cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFrZUtleVZhbE1ldGFEZWZpbml0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBgPG1ldGE+YCBhdHRyaWJ1dGUgdGhhdCB3aWxsIGhvbGQgdGhlIGtleVxuICAgKlxuICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBuYW1lYFxuICAgKi9cbiAga2V5QXR0cj86IHN0cmluZ1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYDxtZXRhPmAgYXR0cmlidXRlIHRoYXQgd2lsbCBob2xkIHRoZSB2YWx1ZVxuICAgKlxuICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBjb250ZW50YFxuICAgKi9cbiAgdmFsQXR0cj86IHN0cmluZ1xuICAvKipcbiAgICogRXh0cmEgY29udGVudHMgZm9yIHRoZSBtZXRhIGRlZmluaXRpb25cbiAgICpcbiAgICogRGVmYXVsdCB2YWx1ZSBpcyBgdW5kZWZpbmVkYFxuICAgKi9cbiAgZXh0cmFzPzogTWV0YURlZmluaXRpb25cbn1cbiJdfQ==