xref: /expo/packages/@expo/cli/src/export/html.ts (revision 9b2597ba)
1*9b2597baSEvan Bacon// <link rel="preload" href="/_expo/static/css/xxxxxx.css" as="style">
2*9b2597baSEvan Baconexport function appendLinkToHtml(
3*9b2597baSEvan Bacon  html: string,
4*9b2597baSEvan Bacon  links: { rel: string; href: string; as?: string }[]
5*9b2597baSEvan Bacon) {
6*9b2597baSEvan Bacon  return html.replace(
7*9b2597baSEvan Bacon    '</head>',
8*9b2597baSEvan Bacon    links
9*9b2597baSEvan Bacon      .map((link) => {
10*9b2597baSEvan Bacon        let linkTag = `<link rel="${link.rel}"`;
11*9b2597baSEvan Bacon
12*9b2597baSEvan Bacon        if (link.href) linkTag += ` href="${link.href}"`;
13*9b2597baSEvan Bacon        if (link.as) linkTag += ` as="${link.as}"`;
14*9b2597baSEvan Bacon
15*9b2597baSEvan Bacon        linkTag += '>';
16*9b2597baSEvan Bacon
17*9b2597baSEvan Bacon        return linkTag;
18*9b2597baSEvan Bacon      })
19*9b2597baSEvan Bacon      .join('') + '</head>'
20*9b2597baSEvan Bacon  );
21*9b2597baSEvan Bacon}
22*9b2597baSEvan Bacon
23*9b2597baSEvan Baconexport function appendScriptsToHtml(html: string, scripts: string[]) {
24*9b2597baSEvan Bacon  return html.replace(
25*9b2597baSEvan Bacon    '</body>',
26*9b2597baSEvan Bacon    scripts.map((script) => `<script src="${script}" defer></script>`).join('') + '</body>'
27*9b2597baSEvan Bacon  );
28*9b2597baSEvan Bacon}
29