From 51d64baae9a0810399a74b4ff68d4a2c2317649c Mon Sep 17 00:00:00 2001 From: arcticfly <41524992+arcticfly@users.noreply.github.com> Date: Mon, 31 Jul 2023 16:50:15 -0700 Subject: [PATCH] Add og image for experiments (#100) * Add og image for experiments * Update meta tags * Fix prettier * Add key to meta tags * Remove ngrok from og:image --- @types/nextjs-routes.d.ts | 1 + package.json | 1 + pnpm-lock.yaml | 128 +++++++++++++++- .../fonts/Inconsolata_SemiExpanded-Medium.ttf | Bin 0 -> 98636 bytes public/og.png | Bin 0 -> 63290 bytes src/pages/_app.tsx | 8 + src/pages/api/experiments/og-image.tsx | 81 ++++++++++ src/pages/experiments/[id].tsx | 143 ++++++++++++------ src/server/api/routers/experiments.router.ts | 27 ++++ src/server/api/trpc.ts | 2 +- 10 files changed, 340 insertions(+), 51 deletions(-) create mode 100644 public/fonts/Inconsolata_SemiExpanded-Medium.ttf create mode 100644 public/og.png create mode 100644 src/pages/api/experiments/og-image.tsx diff --git a/@types/nextjs-routes.d.ts b/@types/nextjs-routes.d.ts index d16d76e..18f5d78 100644 --- a/@types/nextjs-routes.d.ts +++ b/@types/nextjs-routes.d.ts @@ -13,6 +13,7 @@ declare module "nextjs-routes" { export type Route = | StaticRoute<"/account/signin"> | DynamicRoute<"/api/auth/[...nextauth]", { "nextauth": string[] }> + | StaticRoute<"/api/experiments/og-image"> | DynamicRoute<"/api/trpc/[trpc]", { "trpc": string }> | DynamicRoute<"/experiments/[id]", { "id": string }> | StaticRoute<"/experiments"> diff --git a/package.json b/package.json index 1c1eab3..c1a9320 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@trpc/next": "^10.26.0", "@trpc/react-query": "^10.26.0", "@trpc/server": "^10.26.0", + "@vercel/og": "^0.5.9", "ast-types": "^0.14.2", "chroma-js": "^2.4.2", "concurrently": "^8.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3da9779..d4881b0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -65,6 +65,9 @@ dependencies: '@trpc/server': specifier: ^10.26.0 version: 10.26.0 + '@vercel/og': + specifier: ^0.5.9 + version: 0.5.9 ast-types: specifier: ^0.14.2 version: 0.14.2 @@ -2650,10 +2653,24 @@ packages: resolution: {integrity: sha512-PDNlhP/1vyTgmNyiucGqGCdXIp7HIkkvKO50si3y3PcceeHvqtiKPaH1iJdz63jCWMVMbj2MElSxXPOeBvEVIQ==} requiresBuild: true + /@resvg/resvg-wasm@2.4.1: + resolution: {integrity: sha512-yi6R0HyHtsoWTRA06Col4WoDs7SvlXU3DLMNP2bdAgs7HK18dTEVl1weXgxRzi8gwLteGUbIg29zulxIB3GSdg==} + engines: {node: '>= 10'} + dev: false + /@rushstack/eslint-patch@1.3.2: resolution: {integrity: sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==} dev: true + /@shuding/opentype.js@1.4.0-beta.0: + resolution: {integrity: sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==} + engines: {node: '>= 8.0.0'} + hasBin: true + dependencies: + fflate: 0.7.4 + string.prototype.codepointat: 0.2.1 + dev: false + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true @@ -3183,6 +3200,15 @@ packages: eslint-visitor-keys: 3.4.1 dev: true + /@vercel/og@0.5.9: + resolution: {integrity: sha512-CtjaV/BVHtNCjRtxGqn8Q6AKFLqcG34Byxr91+mY+4eqyp/09LVe9jEeY9WXjbaKvu8syWPMteTpY+YQUQYzSg==} + engines: {node: '>=16'} + dependencies: + '@resvg/resvg-wasm': 2.4.1 + satori: 0.10.1 + yoga-wasm-web: 0.3.3 + dev: false + /@vitest/expect@0.33.0: resolution: {integrity: sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ==} dependencies: @@ -3629,6 +3655,11 @@ packages: resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==} dev: false + /base64-js@0.0.8: + resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} + engines: {node: '>= 0.4'} + dev: false + /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: false @@ -3750,6 +3781,10 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + /camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} + dev: false + /caniuse-lite@1.0.30001517: resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} @@ -4018,12 +4053,33 @@ packages: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} dev: false + /css-background-parser@0.1.0: + resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} + dev: false + /css-box-model@1.2.1: resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} dependencies: tiny-invariant: 1.3.1 dev: false + /css-box-shadow@1.0.0-3: + resolution: {integrity: sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg==} + dev: false + + /css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} + dev: false + + /css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + dev: false + /csstype@2.6.21: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: false @@ -4224,6 +4280,10 @@ packages: /electron-to-chromium@1.4.465: resolution: {integrity: sha512-XQcuHvEJRMU97UJ75e170mgcITZoz0lIyiaVjk6R+NMTJ8KBIvUHYd1779swgOppUlzxR+JsLpq59PumaXS1jQ==} + /emoji-regex@10.2.1: + resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} + dev: false + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false @@ -4939,6 +4999,10 @@ packages: resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} dev: false + /fflate@0.7.4: + resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + dev: false + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5324,6 +5388,11 @@ packages: space-separated-tokens: 1.1.5 dev: false + /hex-rgb@4.3.0: + resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==} + engines: {node: '>=6'} + dev: false + /highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} dev: false @@ -5789,6 +5858,13 @@ packages: type-check: 0.4.0 dev: true + /linebreak@1.1.0: + resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==} + dependencies: + base64-js: 0.0.8 + unicode-trie: 2.0.0 + dev: false + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: false @@ -6393,12 +6469,23 @@ packages: resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} dev: false + /pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + dev: false + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 + /parse-css-color@0.2.1: + resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} + dependencies: + color-name: 1.1.4 + hex-rgb: 4.3.0 + dev: false + /parse-entities@2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} dependencies: @@ -6565,6 +6652,10 @@ packages: engines: {node: '>=4'} dev: false + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: false + /postcss@8.4.14: resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} @@ -7141,6 +7232,22 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false + /satori@0.10.1: + resolution: {integrity: sha512-F4bTCkDp931tLb7+UCNPBuSQwXhikrUkI4fBQo6fA8lF0Evqqgg3nDyUpRktQpR5Ry1DIiIVqLyEwkAms87ykg==} + engines: {node: '>=16'} + dependencies: + '@shuding/opentype.js': 1.4.0-beta.0 + css-background-parser: 0.1.0 + css-box-shadow: 1.0.0-3 + css-to-react-native: 3.2.0 + emoji-regex: 10.2.1 + escape-html: 1.0.3 + linebreak: 1.1.0 + parse-css-color: 0.2.1 + postcss-value-parser: 4.2.0 + yoga-wasm-web: 0.3.3 + dev: false + /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -7368,6 +7475,10 @@ packages: strip-ansi: 6.0.1 dev: false + /string.prototype.codepointat@0.2.1: + resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} + dev: false + /string.prototype.matchall@4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: @@ -7594,6 +7705,10 @@ packages: globrex: 0.1.2 dev: true + /tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + dev: false + /tiny-invariant@1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} dev: false @@ -7800,6 +7915,13 @@ packages: busboy: 1.6.0 dev: true + /unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + dev: false + /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} @@ -8305,6 +8427,10 @@ packages: engines: {node: '>=12.20'} dev: true + /yoga-wasm-web@0.3.3: + resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} + dev: false + /zod@3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} dev: false diff --git a/public/fonts/Inconsolata_SemiExpanded-Medium.ttf b/public/fonts/Inconsolata_SemiExpanded-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..78c634ed4ae460df37b892c483672beceb5b8c38 GIT binary patch literal 98636 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

k@F{^D( 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 literal 0 HcmV?d00001 diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index dc05f68..dde7e61 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -21,6 +21,14 @@ const MyApp: AppType<{ session: Session | null }> = ({ name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" /> + + + + + diff --git a/src/pages/api/experiments/og-image.tsx b/src/pages/api/experiments/og-image.tsx new file mode 100644 index 0000000..5246dcd --- /dev/null +++ b/src/pages/api/experiments/og-image.tsx @@ -0,0 +1,81 @@ +import { ImageResponse } from "@vercel/og"; +import { type NextApiRequest, type NextApiResponse } from "next"; + +export const config = { + runtime: "experimental-edge", +}; + +const inconsolataRegularFontP = fetch( + new URL("../../../../public/fonts/Inconsolata_SemiExpanded-Medium.ttf", import.meta.url), +).then((res) => res.arrayBuffer()); + +const OgImage = async (req: NextApiRequest, res: NextApiResponse) => { + // @ts-expect-error - nextUrl is not defined on NextApiRequest for some reason + const searchParams = req.nextUrl?.searchParams as URLSearchParams; + const experimentLabel = searchParams.get("experimentLabel"); + const variantsCount = searchParams.get("variantsCount"); + const scenariosCount = searchParams.get("scenariosCount"); + + const inconsolataRegularFont = await inconsolataRegularFontP; + + return new ImageResponse( + ( +

+
+ {/* eslint-disable-next-line @next/next/no-img-element */} + OpenPipe Logo +
OpenPipe
+
+ +
{experimentLabel}
+
+
+ Variants: {variantsCount} +
+
+ Scenarios: {scenariosCount} +
+
+
+ ), + { + fonts: [ + { + name: "inconsolata", + data: inconsolataRegularFont, + style: "normal", + weight: 400, + }, + ], + }, + ); +}; + +export default OgImage; diff --git a/src/pages/experiments/[id].tsx b/src/pages/experiments/[id].tsx index 0157fdc..6f490a2 100644 --- a/src/pages/experiments/[id].tsx +++ b/src/pages/experiments/[id].tsx @@ -10,6 +10,9 @@ import { VStack, } from "@chakra-ui/react"; import Link from "next/link"; +import { type GetServerSidePropsContext } from "next"; +import { createServerSideHelpers } from "@trpc/react-query/server"; +import superjson from "superjson"; import { useRouter } from "next/router"; import { useState, useEffect } from "react"; @@ -22,13 +25,43 @@ import { useExperiment, useHandledAsyncCallback } from "~/utils/hooks"; import { useAppStore } from "~/state/store"; import { useSyncVariantEditor } from "~/state/sync"; import { HeaderButtons } from "~/components/experiments/HeaderButtons/HeaderButtons"; +import Head from "next/head"; +import { appRouter } from "~/server/api/root.router"; +import { createInnerTRPCContext } from "~/server/api/trpc"; + +export const getServerSideProps = async (context: GetServerSidePropsContext<{ id: string }>) => { + const experimentId = context.params?.id as string; + + const helpers = createServerSideHelpers({ + router: appRouter, + ctx: createInnerTRPCContext({ session: null }), + transformer: superjson, // optional - adds superjson serialization + }); + + // prefetch query + await helpers.experiments.stats.prefetch({ id: experimentId }); + + return { + props: { + trpcState: helpers.dehydrate(), + }, + }; +}; export default function Experiment() { const router = useRouter(); - const experiment = useExperiment(); const utils = api.useContext(); useSyncVariantEditor(); + const experiment = useExperiment(); + const experimentStats = api.experiments.stats.useQuery( + { id: router.query.id as string }, + { + enabled: !!router.query.id, + }, + ); + const stats = experimentStats.data; + useEffect(() => { useAppStore.getState().sharedVariantEditor.loadMonaco().catch(console.error); }); @@ -62,53 +95,65 @@ export default function Experiment() { const canModify = experiment.data?.access.canModify ?? false; return ( - - - - - - - - Experiments - - - - - {canModify ? ( - setLabel(e.target.value)} - onBlur={onSaveLabel} - borderWidth={1} - borderColor="transparent" - fontSize={16} - px={0} - minW={{ base: 100, lg: 300 }} - flex={1} - _hover={{ borderColor: "gray.300" }} - _focus={{ borderColor: "blue.500", outline: "none" }} - /> - ) : ( - - {experiment.data?.label} - - )} - - - - - - - - - - + <> + {stats && ( + + + + + )} + + + + + + + + Experiments + + + + + {canModify ? ( + setLabel(e.target.value)} + onBlur={onSaveLabel} + borderWidth={1} + borderColor="transparent" + fontSize={16} + px={0} + minW={{ base: 100, lg: 300 }} + flex={1} + _hover={{ borderColor: "gray.300" }} + _focus={{ borderColor: "blue.500", outline: "none" }} + /> + ) : ( + + {experiment.data?.label} + + )} + + + + + + + + + + + ); } diff --git a/src/server/api/routers/experiments.router.ts b/src/server/api/routers/experiments.router.ts index 26f87ff..f4fa8c4 100644 --- a/src/server/api/routers/experiments.router.ts +++ b/src/server/api/routers/experiments.router.ts @@ -15,6 +15,33 @@ import userOrg from "~/server/utils/userOrg"; import generateTypes from "~/modelProviders/generateTypes"; export const experimentsRouter = createTRPCRouter({ + stats: publicProcedure.input(z.object({ id: z.string() })).query(async ({ input, ctx }) => { + await requireCanViewExperiment(input.id, ctx); + + const [experiment, promptVariantCount, testScenarioCount] = await prisma.$transaction([ + prisma.experiment.findFirstOrThrow({ + where: { id: input.id }, + }), + prisma.promptVariant.count({ + where: { + experimentId: input.id, + visible: true, + }, + }), + prisma.testScenario.count({ + where: { + experimentId: input.id, + visible: true, + }, + }), + ]); + + return { + experimentLabel: experiment.label, + promptVariantCount, + testScenarioCount, + }; + }), list: protectedProcedure.query(async ({ ctx }) => { // Anyone can list experiments requireNothing(ctx); diff --git a/src/server/api/trpc.ts b/src/server/api/trpc.ts index e795857..f9ba180 100644 --- a/src/server/api/trpc.ts +++ b/src/server/api/trpc.ts @@ -40,7 +40,7 @@ const noOp = () => {}; * * @see https://create.t3.gg/en/usage/trpc#-serverapitrpcts */ -const createInnerTRPCContext = (opts: CreateContextOptions) => { +export const createInnerTRPCContext = (opts: CreateContextOptions) => { return { session: opts.session, prisma,