474 lines
16 KiB
JavaScript
474 lines
16 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
0 && (module.exports = {
|
||
|
OpenGraphMetadata: null,
|
||
|
TwitterMetadata: null,
|
||
|
AppLinksMeta: null
|
||
|
});
|
||
|
function _export(target, all) {
|
||
|
for(var name in all)Object.defineProperty(target, name, {
|
||
|
enumerable: true,
|
||
|
get: all[name]
|
||
|
});
|
||
|
}
|
||
|
_export(exports, {
|
||
|
OpenGraphMetadata: function() {
|
||
|
return OpenGraphMetadata;
|
||
|
},
|
||
|
TwitterMetadata: function() {
|
||
|
return TwitterMetadata;
|
||
|
},
|
||
|
AppLinksMeta: function() {
|
||
|
return AppLinksMeta;
|
||
|
}
|
||
|
});
|
||
|
const _meta = require("./meta");
|
||
|
function OpenGraphMetadata({ openGraph }) {
|
||
|
var _openGraph_title, _openGraph_url, _openGraph_ttl;
|
||
|
if (!openGraph) {
|
||
|
return null;
|
||
|
}
|
||
|
let typedOpenGraph;
|
||
|
if ("type" in openGraph) {
|
||
|
const openGraphType = openGraph.type;
|
||
|
switch(openGraphType){
|
||
|
case "website":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "website"
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "article":
|
||
|
var _openGraph_publishedTime, _openGraph_modifiedTime, _openGraph_expirationTime;
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "article"
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "article:published_time",
|
||
|
content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString()
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "article:modified_time",
|
||
|
content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString()
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "article:expiration_time",
|
||
|
content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString()
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "article:author",
|
||
|
contents: openGraph.authors
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "article:section",
|
||
|
content: openGraph.section
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "article:tag",
|
||
|
contents: openGraph.tags
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "book":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "book"
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "book:isbn",
|
||
|
content: openGraph.isbn
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "book:release_date",
|
||
|
content: openGraph.releaseDate
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "book:author",
|
||
|
contents: openGraph.authors
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "book:tag",
|
||
|
contents: openGraph.tags
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "profile":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "profile"
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "profile:first_name",
|
||
|
content: openGraph.firstName
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "profile:last_name",
|
||
|
content: openGraph.lastName
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "profile:username",
|
||
|
content: openGraph.username
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "profile:gender",
|
||
|
content: openGraph.gender
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "music.song":
|
||
|
var _openGraph_duration;
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "music.song"
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "music:duration",
|
||
|
content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString()
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "music:album",
|
||
|
contents: openGraph.albums
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "music:musician",
|
||
|
contents: openGraph.musicians
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "music.album":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "music.album"
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "music:song",
|
||
|
contents: openGraph.songs
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "music:musician",
|
||
|
contents: openGraph.musicians
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "music:release_date",
|
||
|
content: openGraph.releaseDate
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "music.playlist":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "music.playlist"
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "music:song",
|
||
|
contents: openGraph.songs
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "music:creator",
|
||
|
contents: openGraph.creators
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "music.radio_station":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "music.radio_station"
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "music:creator",
|
||
|
contents: openGraph.creators
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "video.movie":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "video.movie"
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "video:actor",
|
||
|
contents: openGraph.actors
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "video:director",
|
||
|
contents: openGraph.directors
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "video:writer",
|
||
|
contents: openGraph.writers
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "video:duration",
|
||
|
content: openGraph.duration
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "video:release_date",
|
||
|
content: openGraph.releaseDate
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "video:tag",
|
||
|
contents: openGraph.tags
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "video.episode":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "video.episode"
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "video:actor",
|
||
|
contents: openGraph.actors
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "video:director",
|
||
|
contents: openGraph.directors
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "video:writer",
|
||
|
contents: openGraph.writers
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "video:duration",
|
||
|
content: openGraph.duration
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "video:release_date",
|
||
|
content: openGraph.releaseDate
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "video:tag",
|
||
|
contents: openGraph.tags
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "video:series",
|
||
|
content: openGraph.series
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "video.tv_show":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "video.tv_show"
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
case "video.other":
|
||
|
typedOpenGraph = [
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:type",
|
||
|
content: "video.other"
|
||
|
})
|
||
|
];
|
||
|
break;
|
||
|
default:
|
||
|
const _exhaustiveCheck = openGraphType;
|
||
|
throw new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`);
|
||
|
}
|
||
|
}
|
||
|
return (0, _meta.MetaFilter)([
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:determiner",
|
||
|
content: openGraph.determiner
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:title",
|
||
|
content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:description",
|
||
|
content: openGraph.description
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:url",
|
||
|
content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString()
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:site_name",
|
||
|
content: openGraph.siteName
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:locale",
|
||
|
content: openGraph.locale
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:country_name",
|
||
|
content: openGraph.countryName
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
property: "og:ttl",
|
||
|
content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString()
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "og:image",
|
||
|
contents: openGraph.images
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "og:video",
|
||
|
contents: openGraph.videos
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "og:audio",
|
||
|
contents: openGraph.audio
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "og:email",
|
||
|
contents: openGraph.emails
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "og:phone_number",
|
||
|
contents: openGraph.phoneNumbers
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "og:fax_number",
|
||
|
contents: openGraph.faxNumbers
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "og:locale:alternate",
|
||
|
contents: openGraph.alternateLocale
|
||
|
}),
|
||
|
...typedOpenGraph ? typedOpenGraph : []
|
||
|
]);
|
||
|
}
|
||
|
function TwitterAppItem({ app, type }) {
|
||
|
var _app_url_type, _app_url;
|
||
|
return [
|
||
|
(0, _meta.Meta)({
|
||
|
name: `twitter:app:name:${type}`,
|
||
|
content: app.name
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: `twitter:app:id:${type}`,
|
||
|
content: app.id[type]
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: `twitter:app:url:${type}`,
|
||
|
content: (_app_url = app.url) == null ? void 0 : (_app_url_type = _app_url[type]) == null ? void 0 : _app_url_type.toString()
|
||
|
})
|
||
|
];
|
||
|
}
|
||
|
function TwitterMetadata({ twitter }) {
|
||
|
var _twitter_title;
|
||
|
if (!twitter) return null;
|
||
|
const { card } = twitter;
|
||
|
return (0, _meta.MetaFilter)([
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:card",
|
||
|
content: card
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:site",
|
||
|
content: twitter.site
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:site:id",
|
||
|
content: twitter.siteId
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:creator",
|
||
|
content: twitter.creator
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:creator:id",
|
||
|
content: twitter.creatorId
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:title",
|
||
|
content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:description",
|
||
|
content: twitter.description
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
namePrefix: "twitter:image",
|
||
|
contents: twitter.images
|
||
|
}),
|
||
|
...card === "player" ? twitter.players.flatMap((player)=>[
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:player",
|
||
|
content: player.playerUrl.toString()
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:player:stream",
|
||
|
content: player.streamUrl.toString()
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:player:width",
|
||
|
content: player.width
|
||
|
}),
|
||
|
(0, _meta.Meta)({
|
||
|
name: "twitter:player:height",
|
||
|
content: player.height
|
||
|
})
|
||
|
]) : [],
|
||
|
...card === "app" ? [
|
||
|
TwitterAppItem({
|
||
|
app: twitter.app,
|
||
|
type: "iphone"
|
||
|
}),
|
||
|
TwitterAppItem({
|
||
|
app: twitter.app,
|
||
|
type: "ipad"
|
||
|
}),
|
||
|
TwitterAppItem({
|
||
|
app: twitter.app,
|
||
|
type: "googleplay"
|
||
|
})
|
||
|
] : []
|
||
|
]);
|
||
|
}
|
||
|
function AppLinksMeta({ appLinks }) {
|
||
|
if (!appLinks) return null;
|
||
|
return (0, _meta.MetaFilter)([
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "al:ios",
|
||
|
contents: appLinks.ios
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "al:iphone",
|
||
|
contents: appLinks.iphone
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "al:ipad",
|
||
|
contents: appLinks.ipad
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "al:android",
|
||
|
contents: appLinks.android
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "al:windows_phone",
|
||
|
contents: appLinks.windows_phone
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "al:windows",
|
||
|
contents: appLinks.windows
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "al:windows_universal",
|
||
|
contents: appLinks.windows_universal
|
||
|
}),
|
||
|
(0, _meta.MultiMeta)({
|
||
|
propertyPrefix: "al:web",
|
||
|
contents: appLinks.web
|
||
|
})
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
//# sourceMappingURL=opengraph.js.map
|