|
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