diff --git a/packages/app-store-cli/src/app-store.ts b/packages/app-store-cli/src/app-store.ts index 6237f2fc88..0688857b9c 100644 --- a/packages/app-store-cli/src/app-store.ts +++ b/packages/app-store-cli/src/app-store.ts @@ -60,6 +60,7 @@ function getAppName(candidatePath) { function generateFiles() { const browserOutput = [`import dynamic from "next/dynamic"`]; + const schemasOutput = []; const serverOutput = []; const appDirs: { name: string; path: string }[] = []; @@ -174,7 +175,7 @@ function generateFiles() { }) ); - browserOutput.push( + schemasOutput.push( ...getObjectExporter("appDataSchemas", { fileToBeImported: "zod.ts", // Import path must have / even for windows and not \ @@ -209,15 +210,15 @@ function generateFiles() { Don't modify this file manually. **/ `; - fs.writeFileSync( - `${APP_STORE_PATH}/apps.server.generated.ts`, - formatOutput(`${banner}${serverOutput.join("\n")}`) - ); - fs.writeFileSync( - `${APP_STORE_PATH}/apps.browser.generated.tsx`, - formatOutput(`${banner}${browserOutput.join("\n")}`) - ); - console.log("Generated `apps.server.generated.ts` and `apps.browser.generated.tsx`"); + const filesToGenerate: [string, string[]][] = [ + ["apps.server.generated.ts", serverOutput], + ["apps.browser.generated.tsx", browserOutput], + ["apps.schemas.generated.ts", schemasOutput], + ]; + filesToGenerate.forEach(([fileName, output]) => { + fs.writeFileSync(`${APP_STORE_PATH}/${fileName}`, formatOutput(`${banner}${output.join("\n")}`)); + }); + console.log(`Generated ${filesToGenerate.map(([fileName]) => fileName).join(", ")}`); } const debouncedGenerateFiles = debounce(generateFiles); diff --git a/packages/app-store/apps.browser.generated.tsx b/packages/app-store/apps.browser.generated.tsx index b21bcea78e..07c9d99466 100644 --- a/packages/app-store/apps.browser.generated.tsx +++ b/packages/app-store/apps.browser.generated.tsx @@ -11,14 +11,11 @@ import { metadata as campfire_meta } from "./campfire/_metadata"; import { metadata as closecomothercalendar_meta } from "./closecomothercalendar/_metadata"; import { metadata as dailyvideo_meta } from "./dailyvideo/_metadata"; import { metadata as routing_forms_meta } from "./ee/routing-forms/_metadata"; -import { appDataSchema as routing_forms_schema } from "./ee/routing-forms/zod"; import { metadata as exchange2013calendar_meta } from "./exchange2013calendar/_metadata"; import { metadata as exchange2016calendar_meta } from "./exchange2016calendar/_metadata"; import { metadata as exchangecalendar_meta } from "./exchangecalendar/_metadata"; import { metadata as fathom_meta } from "./fathom/_metadata"; -import { appDataSchema as fathom_schema } from "./fathom/zod"; import { metadata as giphy_meta } from "./giphy/_metadata"; -import { appDataSchema as giphy_schema } from "./giphy/zod"; import { metadata as googlecalendar_meta } from "./googlecalendar/_metadata"; import { metadata as googlevideo_meta } from "./googlevideo/_metadata"; import { metadata as hubspotothercalendar_meta } from "./hubspotothercalendar/_metadata"; @@ -30,12 +27,10 @@ import { metadata as office365calendar_meta } from "./office365calendar/_metadat import { metadata as office365video_meta } from "./office365video/_metadata"; import { metadata as ping_meta } from "./ping/_metadata"; import { metadata as rainbow_meta } from "./rainbow/_metadata"; -import { appDataSchema as rainbow_schema } from "./rainbow/zod"; import { metadata as raycast_meta } from "./raycast/_metadata"; import { metadata as riverside_meta } from "./riverside/_metadata"; import { metadata as slackmessaging_meta } from "./slackmessaging/_metadata"; import { metadata as stripepayment_meta } from "./stripepayment/_metadata"; -import { appDataSchema as stripepayment_schema } from "./stripepayment/zod"; import { metadata as tandemvideo_meta } from "./tandemvideo/_metadata"; import { metadata as typeform_meta } from "./typeform/_metadata"; import { metadata as vital_meta } from "./vital/_metadata"; @@ -80,14 +75,6 @@ export const appStoreMetadata = { zapier: zapier_meta, zoomvideo: zoomvideo_meta, }; - -export const appDataSchemas = { - "routing-forms": routing_forms_schema, - fathom: fathom_schema, - giphy: giphy_schema, - rainbow: rainbow_schema, - stripe: stripepayment_schema, -}; export const InstallAppButtonMap = { applecalendar: dynamic(() => import("./applecalendar/components/InstallAppButton")), around: dynamic(() => import("./around/components/InstallAppButton")), diff --git a/packages/app-store/apps.schemas.generated.ts b/packages/app-store/apps.schemas.generated.ts new file mode 100644 index 0000000000..f447ee4d48 --- /dev/null +++ b/packages/app-store/apps.schemas.generated.ts @@ -0,0 +1,17 @@ +/** + This file is autogenerated using the command `yarn app-store:build --watch`. + Don't modify this file manually. +**/ +import { appDataSchema as routing_forms_schema } from "./ee/routing-forms/zod"; +import { appDataSchema as fathom_schema } from "./fathom/zod"; +import { appDataSchema as giphy_schema } from "./giphy/zod"; +import { appDataSchema as rainbow_schema } from "./rainbow/zod"; +import { appDataSchema as stripepayment_schema } from "./stripepayment/zod"; + +export const appDataSchemas = { + "routing-forms": routing_forms_schema, + fathom: fathom_schema, + giphy: giphy_schema, + rainbow: rainbow_schema, + stripe: stripepayment_schema, +}; diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts index 531fb3b7a5..114387d79a 100644 --- a/packages/prisma/zod-utils.ts +++ b/packages/prisma/zod-utils.ts @@ -10,7 +10,7 @@ import type { ZodTypeAny, } from "zod"; -import { appDataSchemas } from "@calcom/app-store/apps.browser.generated"; +import { appDataSchemas } from "@calcom/app-store/apps.schemas.generated"; import dayjs from "@calcom/dayjs"; import { slugify } from "@calcom/lib/slugify";