From ffcc6387ef44aeb5f84556574680a86bbca73df4 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Fri, 28 Feb 2025 16:30:45 -0600 Subject: [PATCH] chore: add ability to load types from the studio bundle (#31153) * chore: set up sharing of react via module federation in studio * chore: add ability to load types from the studio bundle * fix build * fix build * fix build * PR comments * Update guides/studio-development.md Co-authored-by: Matt Schile * fix test --------- Co-authored-by: Matt Schile --- guides/studio-development.md | 14 ++++ packages/app/src/studio/StudioPanel.vue | 9 ++- packages/app/src/studio/index.d.ts | 7 -- packages/app/src/studio/studio-app-types.ts | 7 ++ ...s => get_and_initialize_studio_manager.ts} | 74 +++++++++++-------- packages/server/lib/cloud/api/index.ts | 5 +- packages/server/lib/cloud/constants.ts | 1 + packages/server/lib/cloud/protocol.ts | 2 +- packages/server/lib/cloud/require_script.ts | 4 +- packages/server/lib/cloud/studio.ts | 40 +++++----- packages/server/lib/project-base.ts | 8 +- .../fixtures/cloud/studio/test-studio.ts | 12 ++- ...get_and_initialize_studio_manager_spec.ts} | 20 ++--- .../test/unit/cloud/require_script_spec.ts | 6 +- .../server/test/unit/cloud/studio_spec.ts | 6 +- packages/server/test/unit/project_spec.js | 22 +++--- packages/types/src/index.ts | 2 +- .../src/{appStudio.ts => studio/index.ts} | 10 +-- .../types/src/studio/studio-server-types.ts | 13 ++++ scripts/after-pack-hook.js | 8 +- scripts/gulp/gulpfile.ts | 3 + scripts/gulp/tasks/gulpCloudDeliveredTypes.ts | 19 +++++ 22 files changed, 180 insertions(+), 112 deletions(-) delete mode 100644 packages/app/src/studio/index.d.ts create mode 100644 packages/app/src/studio/studio-app-types.ts rename packages/server/lib/cloud/api/{get_app_studio.ts => get_and_initialize_studio_manager.ts} (61%) create mode 100644 packages/server/lib/cloud/constants.ts rename packages/server/test/unit/cloud/api/{get_app_studio_spec.ts => get_and_initialize_studio_manager_spec.ts} (92%) rename packages/types/src/{appStudio.ts => studio/index.ts} (59%) create mode 100644 packages/types/src/studio/studio-server-types.ts create mode 100644 scripts/gulp/tasks/gulpCloudDeliveredTypes.ts diff --git a/guides/studio-development.md b/guides/studio-development.md index 7dcf0ac3d7..f13bf10318 100644 --- a/guides/studio-development.md +++ b/guides/studio-development.md @@ -9,3 +9,17 @@ In production, the code used to facilitate Studio functionality will be retrieve - Clone the `cypress` repo - Run `yarn` - Run `yarn cypress:open` + +## Types + +The studio bundle provides the types for the `app` and `server` interfaces that are used within the Cypress code. To incorporate the types into the code base, run: + +```sh +yarn gulp downloadStudioTypes +``` + +or to reference a local `cypress_services` repo: + +```sh +CYPRESS_LOCAL_STUDIO_PATH= yarn gulp downloadStudioTypes +``` diff --git a/packages/app/src/studio/StudioPanel.vue b/packages/app/src/studio/StudioPanel.vue index 0b6ee1d24f..537ad3c493 100644 --- a/packages/app/src/studio/StudioPanel.vue +++ b/packages/app/src/studio/StudioPanel.vue @@ -12,10 +12,13 @@