Initial commit

This commit is contained in:
bilulib
2025-04-13 00:18:57 +02:00
parent cff009bb7c
commit d894249e61
18301 changed files with 2905442 additions and 3845 deletions

View File

@@ -0,0 +1,7 @@
import React from 'react';
export declare function createServerInsertedMetadata(nonce: string | undefined): {
ServerInsertedMetadataProvider: ({ children, }: {
children: React.ReactNode;
}) => import("react/jsx-runtime").JSX.Element;
getServerInsertedMetadata(): Promise<string>;
};

View File

@@ -0,0 +1,62 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "createServerInsertedMetadata", {
enumerable: true,
get: function() {
return createServerInsertedMetadata;
}
});
const _jsxruntime = require("react/jsx-runtime");
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
const _serveredge = require("react-dom/server.edge");
const _serverinsertedmetadatasharedruntime = require("../../../shared/lib/server-inserted-metadata.shared-runtime");
const _rendertostring = require("../render-to-string");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
/**
* For chromium based browsers (Chrome, Edge, etc.) and Safari,
* icons need to stay under <head> to be picked up by the browser.
*
*/ const REINSERT_ICON_SCRIPT = `\
document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))`;
function createServerInsertedMetadata(nonce) {
let metadataResolver = null;
let metadataToFlush = null;
const setMetadataResolver = (resolver)=>{
metadataResolver = resolver;
};
return {
ServerInsertedMetadataProvider: ({ children })=>{
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_serverinsertedmetadatasharedruntime.ServerInsertedMetadataContext.Provider, {
value: setMetadataResolver,
children: children
});
},
async getServerInsertedMetadata () {
if (!metadataResolver || metadataToFlush) {
return '';
}
metadataToFlush = metadataResolver();
const html = await (0, _rendertostring.renderToString)({
renderToReadableStream: _serveredge.renderToReadableStream,
element: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
children: [
metadataToFlush,
/*#__PURE__*/ (0, _jsxruntime.jsx)("script", {
nonce: nonce,
children: REINSERT_ICON_SCRIPT
})
]
})
});
return html;
}
};
}
//# sourceMappingURL=create-server-inserted-metadata.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/app-render/metadata-insertion/create-server-inserted-metadata.tsx"],"sourcesContent":["import React from 'react'\nimport { renderToReadableStream } from 'react-dom/server.edge'\nimport {\n ServerInsertedMetadataContext,\n type MetadataResolver,\n} from '../../../shared/lib/server-inserted-metadata.shared-runtime'\nimport { renderToString } from '../render-to-string'\n\n/**\n * For chromium based browsers (Chrome, Edge, etc.) and Safari,\n * icons need to stay under <head> to be picked up by the browser.\n *\n */\nconst REINSERT_ICON_SCRIPT = `\\\ndocument.querySelectorAll('body link[rel=\"icon\"], body link[rel=\"apple-touch-icon\"]').forEach(el => document.head.appendChild(el))`\n\nexport function createServerInsertedMetadata(nonce: string | undefined) {\n let metadataResolver: MetadataResolver | null = null\n let metadataToFlush: React.ReactNode = null\n const setMetadataResolver = (resolver: MetadataResolver): void => {\n metadataResolver = resolver\n }\n\n return {\n ServerInsertedMetadataProvider: ({\n children,\n }: {\n children: React.ReactNode\n }) => {\n return (\n <ServerInsertedMetadataContext.Provider value={setMetadataResolver}>\n {children}\n </ServerInsertedMetadataContext.Provider>\n )\n },\n\n async getServerInsertedMetadata(): Promise<string> {\n if (!metadataResolver || metadataToFlush) {\n return ''\n }\n\n metadataToFlush = metadataResolver()\n const html = await renderToString({\n renderToReadableStream,\n element: (\n <>\n {metadataToFlush}\n <script nonce={nonce}>{REINSERT_ICON_SCRIPT}</script>\n </>\n ),\n })\n\n return html\n },\n }\n}\n"],"names":["createServerInsertedMetadata","REINSERT_ICON_SCRIPT","nonce","metadataResolver","metadataToFlush","setMetadataResolver","resolver","ServerInsertedMetadataProvider","children","ServerInsertedMetadataContext","Provider","value","getServerInsertedMetadata","html","renderToString","renderToReadableStream","element","script"],"mappings":";;;;+BAgBgBA;;;eAAAA;;;;8DAhBE;4BACqB;qDAIhC;gCACwB;;;;;;AAE/B;;;;CAIC,GACD,MAAMC,uBAAuB,CAAC;kIACoG,CAAC;AAE5H,SAASD,6BAA6BE,KAAyB;IACpE,IAAIC,mBAA4C;IAChD,IAAIC,kBAAmC;IACvC,MAAMC,sBAAsB,CAACC;QAC3BH,mBAAmBG;IACrB;IAEA,OAAO;QACLC,gCAAgC,CAAC,EAC/BC,QAAQ,EAGT;YACC,qBACE,qBAACC,kEAA6B,CAACC,QAAQ;gBAACC,OAAON;0BAC5CG;;QAGP;QAEA,MAAMI;YACJ,IAAI,CAACT,oBAAoBC,iBAAiB;gBACxC,OAAO;YACT;YAEAA,kBAAkBD;YAClB,MAAMU,OAAO,MAAMC,IAAAA,8BAAc,EAAC;gBAChCC,wBAAAA,kCAAsB;gBACtBC,uBACE;;wBACGZ;sCACD,qBAACa;4BAAOf,OAAOA;sCAAQD;;;;YAG7B;YAEA,OAAOY;QACT;IACF;AACF"}