@xylabs/sdk-meta

Base functionality used throughout XYO TypeScript/JavaScript libraries
Install
Using npm:
npm install {{name}}
Using yarn:
yarn add {{name}}
Using pnpm:
pnpm add {{name}}
Using bun:
bun add {{name}}
License
See the LICENSE file for license rights and limitations (LGPL-3.0-only).
Reference
packages
meta
### .temp-typedoc
### functions
### <a id="addMetaToHead"></a>addMetaToHead
@xylabs/sdk-meta
function addMetaToHead(
$,
name,
value): void;
Adds or replaces a meta tag in the document head.
Parameters
$
CheerioAPI
The Cheerio API instance for the document.
name
string
The meta property name.
value
string | object
The meta content value (string, array, or nested object).
Returns
void
### <a id="getMetaAsDict"></a>getMetaAsDict
@xylabs/sdk-meta
function getMetaAsDict(obj, parentKey?): Record<string, string>;
Recursively flattens a nested meta object into a flat dictionary with colon-delimited keys.
Parameters
obj
StringIndexable
The nested object to flatten.
parentKey?
string
The accumulated key prefix from parent levels.
Returns
Record<string, string>
A flat record mapping colon-delimited property names to string values.
### <a id="mergeDocumentHead"></a>mergeDocumentHead
@xylabs/sdk-meta
function mergeDocumentHead(destination, source): string;
Merges meta tags from the source HTML head into the destination HTML head.
Existing meta tags with matching property attributes are replaced; others are appended.
Parameters
destination
string
The base HTML string to merge into.
source
string
The HTML string whose head meta tags will be merged.
Returns
string
The merged HTML string.
### <a id="metaBuilder"></a>metaBuilder
@xylabs/sdk-meta
function metaBuilder(
html,
meta,
handler?): string;
Injects meta properties, title, and description into an HTML string.
Parameters
html
string
The base HTML string to modify.
meta
Meta
The metadata to inject.
handler?
string
Optional meta-handler property value to include.
Returns
string
The modified HTML string with injected metadata.
### interfaces
### <a id="Meta"></a>Meta
@xylabs/sdk-meta
Represents page metadata including Open Graph and Twitter card properties.
Properties
description?
optional description?: string;
og?
optional og?: OpenGraphMeta;
title?
optional title?: string;
optional twitter?: TwitterMeta;
### <a id="OpenGraphMeta"></a>OpenGraphMeta
@xylabs/sdk-meta
Open Graph protocol metadata for rich link previews.
Properties
audio?
optional audio?: OpenGraphStructuredProperty;
description?
optional description?: string;
determiner?
optional determiner?: string;
image?
optional image?: OpenGraphStructuredProperty;
locale?
optional locale?: string | string[];
site_name?
optional site_name?: string;
title?
optional title?: string;
type?
optional type?: string;
url?
optional url?: string;
video?
optional video?: OpenGraphStructuredProperty;
### <a id="OpenGraphStructured"></a>OpenGraphStructured
@xylabs/sdk-meta
Structured properties for an Open Graph media object (image, video, or audio).
Properties
?
optional ?: string;
alt?
optional alt?: string;
height?
optional height?: number;
secure_url?
optional secure_url?: string;
type?
optional type?: string;
url?
optional url?: string;
width?
optional width?: number;
### <a id="TwitterApp"></a>TwitterApp
@xylabs/sdk-meta
Twitter App Card metadata containing app store identifiers, names, and URLs per platform.
Properties
id?
optional id?: object;
googleplay?
optional googleplay?: string;
ipad?
optional ipad?: string;
iphone?
optional iphone?: string;
name?
optional name?: object;
googleplay?
optional googleplay?: string;
ipad?
optional ipad?: string;
iphone?
optional iphone?: string;
url?
optional url?: object;
googleplay?
optional googleplay?: string;
ipad?
optional ipad?: string;
iphone?
optional iphone?: string;
### <a id="TwitterMeta"></a>TwitterMeta
@xylabs/sdk-meta
https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup
Properties
app?
optional app?: TwitterApp;
card?
optional card?: "summary" | "summary_large_image" | "app" | "player";
The card type. Used with all cards. Fallback: og:type.
If an og:type, og:title and og:description exist in the markup but
twitter:card is absent, then a summary card may be rendered.
creator?
optional creator?: object;
?
optional ?: string;
The
Username
of content creator. Used with summary_large_image cards
id?
optional id?: string;
Twitter user ID of content creator. Used with summary,
summary_large_image cards
description?
optional description?: string;
Description of content (maximum 200 characters). Used with summary,
summary_large_image, player cards. Fallback: og:description.
image?
optional image?: object;
?
optional ?: string;
URL of image to use in the card. Images must be less than 5MB in size.
JPG, PNG, WEBP and GIF formats are supported. Only the first frame of
an animated GIF will be used. SVG is not supported. Used with summary,
summary_large_image, player cards. Fallback: og:image
alt?
optional alt?: string;
A text description of the image conveying the essential nature of
an image to users who are visually impaired. Maximum 420
characters. Used with summary, summary_large_image, player cards
player?
optional player?: TwitterPlayer;
site?
optional site?: object;
The
?
optional ?: string;
id?
optional id?: string;
Same as twitter:site, but the user’s Twitter ID. Either
twitter:site or twitter:site:id is required. Used with
summary, summary_large_image, player cards
Username
of website. Either twitter:site or twitter:site:id is
required. Used with summary, summary_large_image, app, player
cards
title?
optional title?: string;
Title of content (max 70 characters). Used with summary,
summary_large_image, player cards. Fallback: og:title.
### <a id="TwitterPlayer"></a>TwitterPlayer
@xylabs/sdk-meta
https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/player-card
Properties
: string;
HTTPS URL to iFrame player. This must be a HTTPS URL which does not
generate active mixed content warnings in a web browser. The audio or
video player must not require plugins such as Adobe Flash.
height?
optional height?: number;
Height of iframe in pixels. Used with player card
stream?
optional stream?: string;
URL to raw video or audio stream. Used with player card
width?
optional width?: number;
Width of iframe in pixels. Used with player card
### type-aliases
### <a id="OpenGraphStructuredProperty"></a>OpenGraphStructuredProperty
@xylabs/sdk-meta
type OpenGraphStructuredProperty =
| string
| OpenGraphStructured
| (string | OpenGraphStructured)[];
A structured Open Graph property value: a URL string, a structured object, or an array of either.
### <a id="StringIndexable"></a>StringIndexable
@xylabs/sdk-meta
type StringIndexable = Record<string, any>;
An object with string keys and arbitrary values, used for recursive meta flattening.