From ff01da540dd394cdeed6cad35290ef2e62476a70 Mon Sep 17 00:00:00 2001 From: zomars Date: Fri, 14 Oct 2022 12:51:15 -0600 Subject: [PATCH] Avoids mixing metadata and tsx Prevents circular dependencies --- packages/app-store-cli/src/app-store.ts | 4 +- packages/app-store/apps.browser.generated.tsx | 71 ------------------ packages/app-store/apps.metadata.generated.ts | 75 +++++++++++++++++++ packages/app-store/locations.ts | 2 +- packages/app-store/utils.ts | 2 +- 5 files changed, 80 insertions(+), 74 deletions(-) create mode 100644 packages/app-store/apps.metadata.generated.ts diff --git a/packages/app-store-cli/src/app-store.ts b/packages/app-store-cli/src/app-store.ts index 0688857b9c..9700027206 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 metadataOutput = []; const schemasOutput = []; const serverOutput = []; const appDirs: { name: string; path: string }[] = []; @@ -162,7 +163,7 @@ function generateFiles() { }) ); - browserOutput.push( + metadataOutput.push( ...getObjectExporter("appStoreMetadata", { fileToBeImported: "_metadata.ts", // Import path must have / even for windows and not \ @@ -211,6 +212,7 @@ function generateFiles() { **/ `; const filesToGenerate: [string, string[]][] = [ + ["apps.metadata.generated.ts", metadataOutput], ["apps.server.generated.ts", serverOutput], ["apps.browser.generated.tsx", browserOutput], ["apps.schemas.generated.ts", schemasOutput], diff --git a/packages/app-store/apps.browser.generated.tsx b/packages/app-store/apps.browser.generated.tsx index 07c9d99466..7cf37a61ab 100644 --- a/packages/app-store/apps.browser.generated.tsx +++ b/packages/app-store/apps.browser.generated.tsx @@ -4,77 +4,6 @@ **/ import dynamic from "next/dynamic"; -import { metadata as applecalendar_meta } from "./applecalendar/_metadata"; -import { metadata as around_meta } from "./around/_metadata"; -import { metadata as caldavcalendar_meta } from "./caldavcalendar/_metadata"; -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 { 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 { metadata as giphy_meta } from "./giphy/_metadata"; -import { metadata as googlecalendar_meta } from "./googlecalendar/_metadata"; -import { metadata as googlevideo_meta } from "./googlevideo/_metadata"; -import { metadata as hubspotothercalendar_meta } from "./hubspotothercalendar/_metadata"; -import { metadata as huddle01video_meta } from "./huddle01video/_metadata"; -import { metadata as jitsivideo_meta } from "./jitsivideo/_metadata"; -import { metadata as larkcalendar_meta } from "./larkcalendar/_metadata"; -import { metadata as n8n_meta } from "./n8n/_metadata"; -import { metadata as office365calendar_meta } from "./office365calendar/_metadata"; -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 { 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 { metadata as tandemvideo_meta } from "./tandemvideo/_metadata"; -import { metadata as typeform_meta } from "./typeform/_metadata"; -import { metadata as vital_meta } from "./vital/_metadata"; -import { metadata as whereby_meta } from "./whereby/_metadata"; -import { metadata as wipemycalother_meta } from "./wipemycalother/_metadata"; -import { metadata as zapier_meta } from "./zapier/_metadata"; -import { metadata as zoomvideo_meta } from "./zoomvideo/_metadata"; - -export const appStoreMetadata = { - applecalendar: applecalendar_meta, - around: around_meta, - caldavcalendar: caldavcalendar_meta, - campfire: campfire_meta, - closecomothercalendar: closecomothercalendar_meta, - dailyvideo: dailyvideo_meta, - "routing-forms": routing_forms_meta, - exchange2013calendar: exchange2013calendar_meta, - exchange2016calendar: exchange2016calendar_meta, - exchangecalendar: exchangecalendar_meta, - fathom: fathom_meta, - giphy: giphy_meta, - googlecalendar: googlecalendar_meta, - googlevideo: googlevideo_meta, - hubspotothercalendar: hubspotothercalendar_meta, - huddle01video: huddle01video_meta, - jitsivideo: jitsivideo_meta, - larkcalendar: larkcalendar_meta, - n8n: n8n_meta, - office365calendar: office365calendar_meta, - office365video: office365video_meta, - ping: ping_meta, - rainbow: rainbow_meta, - raycast: raycast_meta, - riverside: riverside_meta, - slackmessaging: slackmessaging_meta, - stripepayment: stripepayment_meta, - tandemvideo: tandemvideo_meta, - typeform: typeform_meta, - vital: vital_meta, - whereby: whereby_meta, - wipemycalother: wipemycalother_meta, - zapier: zapier_meta, - zoomvideo: zoomvideo_meta, -}; export const InstallAppButtonMap = { applecalendar: dynamic(() => import("./applecalendar/components/InstallAppButton")), around: dynamic(() => import("./around/components/InstallAppButton")), diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts new file mode 100644 index 0000000000..41f055d2af --- /dev/null +++ b/packages/app-store/apps.metadata.generated.ts @@ -0,0 +1,75 @@ +/** + This file is autogenerated using the command `yarn app-store:build --watch`. + Don't modify this file manually. +**/ +import { metadata as applecalendar_meta } from "./applecalendar/_metadata"; +import { metadata as around_meta } from "./around/_metadata"; +import { metadata as caldavcalendar_meta } from "./caldavcalendar/_metadata"; +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 { 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 { metadata as giphy_meta } from "./giphy/_metadata"; +import { metadata as googlecalendar_meta } from "./googlecalendar/_metadata"; +import { metadata as googlevideo_meta } from "./googlevideo/_metadata"; +import { metadata as hubspotothercalendar_meta } from "./hubspotothercalendar/_metadata"; +import { metadata as huddle01video_meta } from "./huddle01video/_metadata"; +import { metadata as jitsivideo_meta } from "./jitsivideo/_metadata"; +import { metadata as larkcalendar_meta } from "./larkcalendar/_metadata"; +import { metadata as n8n_meta } from "./n8n/_metadata"; +import { metadata as office365calendar_meta } from "./office365calendar/_metadata"; +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 { 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 { metadata as tandemvideo_meta } from "./tandemvideo/_metadata"; +import { metadata as typeform_meta } from "./typeform/_metadata"; +import { metadata as vital_meta } from "./vital/_metadata"; +import { metadata as whereby_meta } from "./whereby/_metadata"; +import { metadata as wipemycalother_meta } from "./wipemycalother/_metadata"; +import { metadata as zapier_meta } from "./zapier/_metadata"; +import { metadata as zoomvideo_meta } from "./zoomvideo/_metadata"; + +export const appStoreMetadata = { + applecalendar: applecalendar_meta, + around: around_meta, + caldavcalendar: caldavcalendar_meta, + campfire: campfire_meta, + closecomothercalendar: closecomothercalendar_meta, + dailyvideo: dailyvideo_meta, + "routing-forms": routing_forms_meta, + exchange2013calendar: exchange2013calendar_meta, + exchange2016calendar: exchange2016calendar_meta, + exchangecalendar: exchangecalendar_meta, + fathom: fathom_meta, + giphy: giphy_meta, + googlecalendar: googlecalendar_meta, + googlevideo: googlevideo_meta, + hubspotothercalendar: hubspotothercalendar_meta, + huddle01video: huddle01video_meta, + jitsivideo: jitsivideo_meta, + larkcalendar: larkcalendar_meta, + n8n: n8n_meta, + office365calendar: office365calendar_meta, + office365video: office365video_meta, + ping: ping_meta, + rainbow: rainbow_meta, + raycast: raycast_meta, + riverside: riverside_meta, + slackmessaging: slackmessaging_meta, + stripepayment: stripepayment_meta, + tandemvideo: tandemvideo_meta, + typeform: typeform_meta, + vital: vital_meta, + whereby: whereby_meta, + wipemycalother: wipemycalother_meta, + zapier: zapier_meta, + zoomvideo: zoomvideo_meta, +}; diff --git a/packages/app-store/locations.ts b/packages/app-store/locations.ts index f6a349c59e..5d90ea20ee 100644 --- a/packages/app-store/locations.ts +++ b/packages/app-store/locations.ts @@ -5,7 +5,7 @@ import logger from "@calcom/lib/logger"; import { Ensure, Optional } from "@calcom/types/utils"; import type { EventLocationTypeFromAppMeta } from "../types/App"; -import { appStoreMetadata } from "./apps.browser.generated"; +import { appStoreMetadata } from "./apps.metadata.generated"; export type DefaultEventLocationType = { default: true; diff --git a/packages/app-store/utils.ts b/packages/app-store/utils.ts index 218a9c83d7..e82a378f9b 100644 --- a/packages/app-store/utils.ts +++ b/packages/app-store/utils.ts @@ -9,7 +9,7 @@ import type { App, AppMeta } from "@calcom/types/App"; // If you import this file on any app it should produce circular dependency // import appStore from "./index"; -import { appStoreMetadata } from "./apps.browser.generated"; +import { appStoreMetadata } from "./apps.metadata.generated"; export type EventTypeApps = NonNullable>["apps"]>; export type EventTypeAppsList = keyof EventTypeApps;