|
1 | 1 | /* eslint-disable no-bitwise */ |
2 | 2 | import { initializeMode } from 'monaco-graphql/esm/lite.js'; |
3 | | -// @ts-expect-error -- wrong types |
4 | | -import { printers } from 'prettier/plugins/graphql'; // eslint-disable-line import-x/no-duplicates |
5 | | -import { parsers } from 'prettier/parser-graphql'; // eslint-disable-line import-x/no-duplicates |
6 | | -import prettier from 'prettier/standalone'; |
7 | 3 | import type { DiagnosticSettings } from 'monaco-graphql'; |
8 | 4 | import { KeyCode, KeyMod, languages } from './monaco-editor'; |
9 | 5 | import type { EditorSlice } from './stores'; |
@@ -147,13 +143,21 @@ export const MONACO_GRAPHQL_API = initializeMode({ |
147 | 143 | diagnosticSettings: MONACO_GRAPHQL_DIAGNOSTIC_SETTINGS, |
148 | 144 | }); |
149 | 145 |
|
150 | | -export const DEFAULT_PRETTIFY_QUERY: EditorSlice['onPrettifyQuery'] = query => |
151 | | - prettier.format(query, { |
152 | | - parser: 'graphql', |
153 | | - plugins: [ |
154 | | - // Fix: Couldn't find plugin for AST format "graphql" |
155 | | - { printers }, |
156 | | - // @ts-expect-error -- Fix: Couldn't resolve parser "graphql" |
157 | | - { parsers }, |
158 | | - ], |
159 | | - }); |
| 146 | +export const DEFAULT_PRETTIFY_QUERY: EditorSlice['onPrettifyQuery'] = |
| 147 | + async query => { |
| 148 | + // We don't need to load Prettier initially; it's only used when the 'Format Query' button or shortcut is triggered |
| 149 | + // @ts-expect-error -- wrong types |
| 150 | + const { printers } = await import('prettier/plugins/graphql'); |
| 151 | + const { parsers } = await import('prettier/parser-graphql'); |
| 152 | + const prettier = await import('prettier/standalone'); |
| 153 | + |
| 154 | + return prettier.format(query, { |
| 155 | + parser: 'graphql', |
| 156 | + plugins: [ |
| 157 | + // Fix: Couldn't find plugin for AST format "graphql" |
| 158 | + { printers }, |
| 159 | + // @ts-expect-error -- Fix: Couldn't resolve parser "graphql" |
| 160 | + { parsers }, |
| 161 | + ], |
| 162 | + }); |
| 163 | + }; |
0 commit comments