mirror of
https://github.com/geoffsee/open-gsio.git
synced 2025-09-08 22:56:46 +00:00
change semantics
Update README deployment steps and add deploy:secrets script to package.json update local inference script and README update lockfile reconfigure package scripts for development update test execution pass server tests Update README with revised Bun commands and workspace details remove pnpm package manager designator create bun server
This commit is contained in:

committed by
Geoff Seemueller

parent
1055cda2f1
commit
497eb22ad8
6
packages/client/src/renderer/+config.ts
Normal file
6
packages/client/src/renderer/+config.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import type { Config } from "vike/types";
|
||||
|
||||
// https://vike.dev/config
|
||||
export default {
|
||||
passToClient: ["pageProps", "urlPathname"],
|
||||
} satisfies Config;
|
16
packages/client/src/renderer/+onRenderClient.tsx
Normal file
16
packages/client/src/renderer/+onRenderClient.tsx
Normal file
@@ -0,0 +1,16 @@
|
||||
export { onRenderClient };
|
||||
|
||||
import React from "react";
|
||||
import { hydrateRoot } from "react-dom/client";
|
||||
import { Layout } from "../layout/Layout";
|
||||
|
||||
// See https://vike.dev/onRenderClient for usage details
|
||||
async function onRenderClient(pageContext) {
|
||||
const { Page, pageProps } = pageContext;
|
||||
hydrateRoot(
|
||||
document.getElementById("page-view"),
|
||||
<Layout pageContext={pageContext}>
|
||||
<Page {...pageProps} />
|
||||
</Layout>,
|
||||
);
|
||||
}
|
56
packages/client/src/renderer/+onRenderHtml.tsx
Normal file
56
packages/client/src/renderer/+onRenderHtml.tsx
Normal file
@@ -0,0 +1,56 @@
|
||||
import React from "react";
|
||||
export { onRenderHtml };
|
||||
|
||||
import { renderToStream } from "react-streaming/server";
|
||||
import { escapeInject } from "vike/server";
|
||||
import { Layout } from "../layout/Layout";
|
||||
import type { OnRenderHtmlAsync } from "vike/types";
|
||||
|
||||
// See https://vike.dev/onRenderHtml for usage details
|
||||
const onRenderHtml: OnRenderHtmlAsync = async (
|
||||
pageContext,
|
||||
): ReturnType<OnRenderHtmlAsync> => {
|
||||
const { Page, pageProps } = pageContext;
|
||||
|
||||
const page = (
|
||||
<Layout pageContext={pageContext}>
|
||||
<Page {...pageProps} />
|
||||
</Layout>
|
||||
);
|
||||
|
||||
let ua;
|
||||
try {
|
||||
ua = pageContext.headers["user-agent"];
|
||||
} catch (e) {
|
||||
ua = "";
|
||||
}
|
||||
|
||||
const res = escapeInject`<!DOCTYPE html>
|
||||
<html data-theme="dark" lang="en">
|
||||
<head>
|
||||
<title>open-gsio</title>
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="description" content="Maker Site">
|
||||
<script>
|
||||
window.ga_tid = "open-gsio";
|
||||
window.ga_api = "/api/metrics";
|
||||
</script>
|
||||
<script src="/cfga.min.js" async></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="page-view">${await renderToStream(page, {userAgent: ua})}</div>
|
||||
</body>
|
||||
</html>`;
|
||||
|
||||
return {
|
||||
documentHtml: res,
|
||||
pageContext: {
|
||||
enableEagerStreaming: true,
|
||||
},
|
||||
};
|
||||
};
|
19
packages/client/src/renderer/routes.ts
Normal file
19
packages/client/src/renderer/routes.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
// Top level control interface for navigation
|
||||
export default {
|
||||
"/": { sidebarLabel: "Home", heroLabel: "open-gsio" },
|
||||
// "/about": { sidebarLabel: "About", heroLabel: "About Me" },
|
||||
// "/resume": { sidebarLabel: "Resume", heroLabel: "resume" },
|
||||
// "/demo": { sidebarLabel: "Demo", heroLabel: "Demos" },
|
||||
// "/services": { sidebarLabel: "Services", heroLabel: "services" },
|
||||
"/connect": { sidebarLabel: "Connect", heroLabel: "connect" },
|
||||
"/privacy-policy": {
|
||||
sidebarLabel: "",
|
||||
heroLabel: "privacy policy",
|
||||
hideNav: true,
|
||||
},
|
||||
"/terms-of-service": {
|
||||
sidebarLabel: "",
|
||||
heroLabel: "terms of service",
|
||||
hideNav: true,
|
||||
},
|
||||
};
|
15
packages/client/src/renderer/types.ts
Normal file
15
packages/client/src/renderer/types.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
export type { PageProps };
|
||||
|
||||
type Page = (pageProps: PageProps) => React.ReactElement;
|
||||
type PageProps = Record<string, unknown>;
|
||||
|
||||
declare global {
|
||||
namespace Vike {
|
||||
interface PageContext {
|
||||
Page: Page;
|
||||
pageProps?: PageProps;
|
||||
fetch?: typeof fetch;
|
||||
env: import("@open-gsio/env");
|
||||
}
|
||||
}
|
||||
}
|
22
packages/client/src/renderer/usePageContext.tsx
Normal file
22
packages/client/src/renderer/usePageContext.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
import React, { useContext } from "react";
|
||||
import type { PageContext } from "vike/types";
|
||||
|
||||
export { PageContextProvider };
|
||||
export { usePageContext };
|
||||
|
||||
const Context = React.createContext<PageContext>(undefined as any);
|
||||
|
||||
function PageContextProvider({
|
||||
pageContext,
|
||||
children,
|
||||
}: {
|
||||
pageContext: PageContext;
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
return <Context.Provider value={pageContext}>{children}</Context.Provider>;
|
||||
}
|
||||
|
||||
function usePageContext() {
|
||||
const pageContext = useContext(Context);
|
||||
return pageContext;
|
||||
}
|
Reference in New Issue
Block a user