UNPKG

create-t3-app-fork

Version:

Create web application with the t3 stack

61 lines (52 loc) 1.71 kB
import type { Installer } from "./index"; import path from "path"; import fs from "fs-extra"; import { PKG_ROOT } from "../consts"; import { runPkgManagerInstall } from "../utils/runPkgManagerInstall"; export const trpcInstaller: Installer = async ( projectDir, packageManager, packages, ) => { await runPkgManagerInstall({ packageManager, projectDir, packages: [ "react-query", "superjson", "@trpc/server", "@trpc/client", "@trpc/next", "@trpc/react", "zod", ], devMode: false, }); const trpcAssetDir = path.join(PKG_ROOT, "template/addons/trpc"); const apiHandlerSrc = path.join(trpcAssetDir, "api-handler.ts"); const apiHandlerDest = path.join(projectDir, "src/pages/api/trpc/[trpc].ts"); const utilsSrc = path.join(trpcAssetDir, "utils.ts"); const utilsDest = path.join(projectDir, "src/utils/trpc.ts"); const contextSrc = path.join( trpcAssetDir, packages.prisma.inUse ? "prisma-context.ts" : "base-context.ts", ); const contextDest = path.join(projectDir, "src/server/router/context.ts"); const routerSrc = path.join(trpcAssetDir, "index-router.ts"); const routerDest = path.join(projectDir, "src/server/router/index.ts"); const exampleRouterSrc = path.join( trpcAssetDir, packages.prisma.inUse ? "example-prisma-router.ts" : "example-router.ts", ); const exampleRouterDest = path.join( projectDir, "src/server/router/example.ts", ); await Promise.all([ fs.copy(apiHandlerSrc, apiHandlerDest), fs.copy(utilsSrc, utilsDest), fs.copy(contextSrc, contextDest), fs.copy(routerSrc, routerDest), fs.copy(exampleRouterSrc, exampleRouterDest), ]); };