132 lines
4.7 KiB
JavaScript
132 lines
4.7 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
Object.defineProperty(exports, "createMetadataComponents", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return createMetadataComponents;
|
||
|
}
|
||
|
});
|
||
|
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
||
|
const _basic = require("./generate/basic");
|
||
|
const _alternate = require("./generate/alternate");
|
||
|
const _opengraph = require("./generate/opengraph");
|
||
|
const _icons = require("./generate/icons");
|
||
|
const _resolvemetadata = require("./resolve-metadata");
|
||
|
const _meta = require("./generate/meta");
|
||
|
const _defaultmetadata = require("./default-metadata");
|
||
|
const _notfound = require("../../client/components/not-found");
|
||
|
function _interop_require_default(obj) {
|
||
|
return obj && obj.__esModule ? obj : {
|
||
|
default: obj
|
||
|
};
|
||
|
}
|
||
|
function createMetadataComponents({ tree, pathname, searchParams, getDynamicParamFromSegment, appUsingSizeAdjustment, errorType }) {
|
||
|
const metadataContext = {
|
||
|
pathname
|
||
|
};
|
||
|
let resolve;
|
||
|
// Only use promise.resolve here to avoid unhandled rejections
|
||
|
const metadataErrorResolving = new Promise((res)=>{
|
||
|
resolve = res;
|
||
|
});
|
||
|
async function MetadataTree() {
|
||
|
const defaultMetadata = (0, _defaultmetadata.createDefaultMetadata)();
|
||
|
let metadata = defaultMetadata;
|
||
|
let error;
|
||
|
const errorMetadataItem = [
|
||
|
null,
|
||
|
null
|
||
|
];
|
||
|
const errorConvention = errorType === "redirect" ? undefined : errorType;
|
||
|
const [resolvedMetadata, resolvedError] = await (0, _resolvemetadata.resolveMetadata)({
|
||
|
tree,
|
||
|
parentParams: {},
|
||
|
metadataItems: [],
|
||
|
errorMetadataItem,
|
||
|
searchParams,
|
||
|
getDynamicParamFromSegment,
|
||
|
errorConvention,
|
||
|
metadataContext
|
||
|
});
|
||
|
if (!resolvedError) {
|
||
|
metadata = resolvedMetadata;
|
||
|
resolve(undefined);
|
||
|
} else {
|
||
|
error = resolvedError;
|
||
|
// If the error triggers in initial metadata resolving, re-resolve with proper error type.
|
||
|
// They'll be saved for flight data, when hydrates, it will replaces the SSR'd metadata with this.
|
||
|
// for not-found error: resolve not-found metadata
|
||
|
if (!errorType && (0, _notfound.isNotFoundError)(resolvedError)) {
|
||
|
const [notFoundMetadata, notFoundMetadataError] = await (0, _resolvemetadata.resolveMetadata)({
|
||
|
tree,
|
||
|
parentParams: {},
|
||
|
metadataItems: [],
|
||
|
errorMetadataItem,
|
||
|
searchParams,
|
||
|
getDynamicParamFromSegment,
|
||
|
errorConvention: "not-found",
|
||
|
metadataContext
|
||
|
});
|
||
|
metadata = notFoundMetadata;
|
||
|
error = notFoundMetadataError || error;
|
||
|
}
|
||
|
resolve(error);
|
||
|
}
|
||
|
const elements = (0, _meta.MetaFilter)([
|
||
|
(0, _basic.BasicMetadata)({
|
||
|
metadata
|
||
|
}),
|
||
|
(0, _alternate.AlternatesMetadata)({
|
||
|
alternates: metadata.alternates
|
||
|
}),
|
||
|
(0, _basic.ItunesMeta)({
|
||
|
itunes: metadata.itunes
|
||
|
}),
|
||
|
(0, _basic.FormatDetectionMeta)({
|
||
|
formatDetection: metadata.formatDetection
|
||
|
}),
|
||
|
(0, _basic.VerificationMeta)({
|
||
|
verification: metadata.verification
|
||
|
}),
|
||
|
(0, _basic.AppleWebAppMeta)({
|
||
|
appleWebApp: metadata.appleWebApp
|
||
|
}),
|
||
|
(0, _opengraph.OpenGraphMetadata)({
|
||
|
openGraph: metadata.openGraph
|
||
|
}),
|
||
|
(0, _opengraph.TwitterMetadata)({
|
||
|
twitter: metadata.twitter
|
||
|
}),
|
||
|
(0, _opengraph.AppLinksMeta)({
|
||
|
appLinks: metadata.appLinks
|
||
|
}),
|
||
|
(0, _icons.IconsMetadata)({
|
||
|
icons: metadata.icons
|
||
|
})
|
||
|
]);
|
||
|
if (appUsingSizeAdjustment) elements.push(/*#__PURE__*/ _react.default.createElement("meta", {
|
||
|
name: "next-size-adjust"
|
||
|
}));
|
||
|
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, elements.map((el, index)=>{
|
||
|
return /*#__PURE__*/ _react.default.cloneElement(el, {
|
||
|
key: index
|
||
|
});
|
||
|
}));
|
||
|
}
|
||
|
async function MetadataOutlet() {
|
||
|
const error = await metadataErrorResolving;
|
||
|
if (error) {
|
||
|
throw error;
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
// @ts-expect-error async server components
|
||
|
return [
|
||
|
MetadataTree,
|
||
|
MetadataOutlet
|
||
|
];
|
||
|
}
|
||
|
|
||
|
//# sourceMappingURL=metadata.js.map
|