Files
lobe-chat/scripts/electronWorkflow/modifiers/index.mts
T
Innei 8188e2d9f0 ♻️ refactor: restructure electron build workflow with i18n codemod
- Remove desktop-build-electron.yml workflow
- Add verify-electron-codemod.yml workflow for i18n transformation
- Add i18nDynamicToStatic modifier for dynamic to static i18n conversion
- Update build workflows to use new i18n modifier approach
- Update README and package.json configurations
2026-02-11 12:58:42 +08:00

42 lines
1.9 KiB
TypeScript

import { Lang } from '@ast-grep/napi';
import path from 'node:path';
import { modifyAppCode } from './appCode.mjs';
import { cleanUpCode } from './cleanUp.mjs';
import { convertDynamicToStatic } from './dynamicToStatic.mjs';
import { convertI18nDynamicToStatic } from './i18nDynamicToStatic.mjs';
import { convertNextDynamicToStatic } from './nextDynamicToStatic.mjs';
import { modifyNextConfig } from './nextConfig.mjs';
import { removeSuspenseFromConversation } from './removeSuspense.mjs';
import { modifyRoutes } from './routes.mjs';
import { convertSettingsContentToStatic } from './settingsContentToStatic.mjs';
import { modifyStaticExport } from './staticExport.mjs';
import { isDirectRun, runStandalone } from './utils.mjs';
import { wrapChildrenWithClientOnly } from './wrapChildrenWithClientOnly.mjs';
export const modifySourceForElectron = async (TEMP_DIR: string) => {
await modifyNextConfig(TEMP_DIR);
await modifyAppCode(TEMP_DIR);
await wrapChildrenWithClientOnly(TEMP_DIR);
await convertDynamicToStatic(TEMP_DIR);
await convertNextDynamicToStatic(TEMP_DIR);
await convertI18nDynamicToStatic(TEMP_DIR);
await convertSettingsContentToStatic(TEMP_DIR);
await removeSuspenseFromConversation(TEMP_DIR);
await modifyRoutes(TEMP_DIR);
await modifyStaticExport(TEMP_DIR);
await cleanUpCode(TEMP_DIR);
};
if (isDirectRun(import.meta.url)) {
await runStandalone('modifySourceForElectron', modifySourceForElectron, [
{ lang: Lang.TypeScript, path: path.join(process.cwd(), 'next.config.ts') },
{ lang: Lang.Tsx, path: 'src/app/[variants]/page.tsx' },
{ lang: Lang.Tsx, path: 'src/layout/GlobalProvider/index.tsx' },
{ lang: Lang.Tsx, path: 'src/app/[variants]/router/desktopRouter.config.tsx' },
{ lang: Lang.Tsx, path: 'src/components/mdx/Image.tsx' },
{ lang: Lang.TypeScript, path: 'src/features/DevPanel/CacheViewer/getCacheEntries.ts' },
{ lang: Lang.TypeScript, path: 'src/server/translation.ts' },
]);
}