diff --git a/packages/twenty-front/package.json b/packages/twenty-front/package.json index 807084f771..e5cfc1db80 100644 --- a/packages/twenty-front/package.json +++ b/packages/twenty-front/package.json @@ -186,8 +186,9 @@ "jest": "29.7.0", "jest-environment-jsdom": "30.0.0-beta.3", "jest-fetch-mock": "^3.0.3", - "monaco-editor": "^0.51.0", + "monaco-editor": "0.52.2", "monaco-editor-auto-typings": "^0.4.5", + "monaco-graphql": "1.8.0", "msw": "^2.12.7", "msw-storybook-addon": "^2.0.6", "optionator": "^0.9.1", diff --git a/packages/twenty-front/src/modules/settings/playground/components/GraphQLPlayground.tsx b/packages/twenty-front/src/modules/settings/playground/components/GraphQLPlayground.tsx index a674650e23..e6432f728d 100644 --- a/packages/twenty-front/src/modules/settings/playground/components/GraphQLPlayground.tsx +++ b/packages/twenty-front/src/modules/settings/playground/components/GraphQLPlayground.tsx @@ -1,3 +1,4 @@ +import '@/settings/playground/utils/setupGraphiqlMonacoWorkers'; import { isPlaygroundApiKeyFresh, playgroundApiKeyState, diff --git a/packages/twenty-front/src/modules/settings/playground/utils/setupGraphiqlMonacoWorkers.ts b/packages/twenty-front/src/modules/settings/playground/utils/setupGraphiqlMonacoWorkers.ts new file mode 100644 index 0000000000..b3c9c3700d --- /dev/null +++ b/packages/twenty-front/src/modules/settings/playground/utils/setupGraphiqlMonacoWorkers.ts @@ -0,0 +1,22 @@ +import { type Environment } from 'monaco-editor'; +import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker.js?worker'; +import JsonWorker from 'monaco-editor/esm/vs/language/json/json.worker.js?worker'; +import GraphqlWorker from 'monaco-graphql/esm/graphql.worker.js?worker'; + +// GraphiQL 5's Monaco editors need a worker factory; without it Monaco throws "Cannot read properties of undefined (reading 'toUrl')". +const monacoEnvironment: Environment = { + getWorker: (_workerId, label) => { + switch (label) { + case 'json': + return new JsonWorker(); + case 'graphql': + return new GraphqlWorker(); + default: + return new EditorWorker(); + } + }, +}; + +( + globalThis as unknown as { MonacoEnvironment?: Environment } +).MonacoEnvironment = monacoEnvironment; diff --git a/yarn.lock b/yarn.lock index fceaed3ebc..8263e6b8e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42629,14 +42629,7 @@ __metadata: languageName: node linkType: hard -"monaco-editor@npm:^0.51.0": - version: 0.51.0 - resolution: "monaco-editor@npm:0.51.0" - checksum: 10c0/7fde310c747e46cd7293e1a0f5e1fa85c389df9a1f8db03b9ccd58fd45356ab021a591b46198d19345566ad54556158f6489e2da4ad428a7a6ca3ea7b504afcb - languageName: node - linkType: hard - -"monaco-graphql@npm:^1.8.0": +"monaco-graphql@npm:1.8.0, monaco-graphql@npm:^1.8.0": version: 1.8.0 resolution: "monaco-graphql@npm:1.8.0" dependencies: @@ -53537,8 +53530,9 @@ __metadata: lodash.uniqby: "npm:^4.7.0" marked: "npm:^17.0.1" microdiff: "npm:^1.3.2" - monaco-editor: "npm:^0.51.0" + monaco-editor: "npm:0.52.2" monaco-editor-auto-typings: "npm:^0.4.5" + monaco-graphql: "npm:1.8.0" msw: "npm:^2.12.7" msw-storybook-addon: "npm:^2.0.6" optionator: "npm:^0.9.1"