From 813a8bc64523569adf8e6cf05b21cb970293cfcc Mon Sep 17 00:00:00 2001
From: Michael Kriese <michael.kriese@visualon.de>
Date: Fri, 20 Jan 2023 17:22:30 +0100
Subject: [PATCH] fix: dynamically load prettier (#19948)

Co-authored-by: Rhys Arkins <rhys@arkins.net>
---
 lib/expose.cjs                                         | 10 +++++++++-
 .../config-migration/branch/migrated-data.ts           |  5 +++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/lib/expose.cjs b/lib/expose.cjs
index af566cfe44..d56215264b 100644
--- a/lib/expose.cjs
+++ b/lib/expose.cjs
@@ -14,4 +14,12 @@ function re2() {
   return require('re2');
 }
 
-module.exports = { dirname: __dirname, re2, pkg };
+/**
+ * return's prettier
+ * @returns {typeof import('prettier')}
+ */
+function prettier() {
+  return require('prettier');
+}
+
+module.exports = { dirname: __dirname, re2, pkg, prettier };
diff --git a/lib/workers/repository/config-migration/branch/migrated-data.ts b/lib/workers/repository/config-migration/branch/migrated-data.ts
index 0a06ebca7f..e0f1ec7983 100644
--- a/lib/workers/repository/config-migration/branch/migrated-data.ts
+++ b/lib/workers/repository/config-migration/branch/migrated-data.ts
@@ -1,8 +1,9 @@
 import detectIndent from 'detect-indent';
 import JSON5 from 'json5';
-import prettier, { BuiltInParserName } from 'prettier';
+import type { BuiltInParserName } from 'prettier';
 import upath from 'upath';
 import { migrateConfig } from '../../../../config/migration';
+import { prettier } from '../../../../expose.cjs';
 import { logger } from '../../../../logger';
 import { readLocalFile } from '../../../../util/fs';
 import { getFileList } from '../../../../util/git';
@@ -68,7 +69,7 @@ export async function applyPrettierFormatting(
       useTabs: indent?.type === 'tab',
     };
 
-    return prettier.format(content, options);
+    return prettier().format(content, options);
   } finally {
     logger.trace('applyPrettierFormatting - END');
   }
-- 
GitLab