Splits appData schemas to prevent circular dependencies

This commit is contained in:
zomars
2022-10-14 12:35:44 -06:00
parent 9a4746844f
commit 550f98a636
4 changed files with 29 additions and 24 deletions
+11 -10
View File
@@ -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);
@@ -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")),
@@ -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,
};
+1 -1
View File
@@ -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";