diff --git a/packages/cli-kit/src/public/node/themes/types.ts b/packages/cli-kit/src/public/node/themes/types.ts index c28d06fa4e..3f416769b8 100644 --- a/packages/cli-kit/src/public/node/themes/types.ts +++ b/packages/cli-kit/src/public/node/themes/types.ts @@ -26,6 +26,7 @@ export type ThemeFSEventPayload = (ThemeFSEv export interface ThemeFileSystemOptions { filters?: {ignore?: string[]; only?: string[]} notify?: string + noDelete?: boolean } /** diff --git a/packages/theme/src/cli/services/dev.ts b/packages/theme/src/cli/services/dev.ts index 8599478d8b..2d82b465f4 100644 --- a/packages/theme/src/cli/services/dev.ts +++ b/packages/theme/src/cli/services/dev.ts @@ -71,6 +71,7 @@ export async function dev(options: DevOptions) { const localThemeFileSystem = mountThemeFileSystem(options.directory, { filters: options, notify: options.notify, + noDelete: options.noDelete, }) const host = options.host || DEFAULT_HOST diff --git a/packages/theme/src/cli/utilities/theme-fs.ts b/packages/theme/src/cli/utilities/theme-fs.ts index bf125bbe6e..bd9dd3df04 100644 --- a/packages/theme/src/cli/utilities/theme-fs.ts +++ b/packages/theme/src/cli/utilities/theme-fs.ts @@ -187,7 +187,7 @@ export function mountThemeFileSystem(root: string, options?: ThemeFileSystemOpti } const handleFileDelete = (themeId: string, adminSession: AdminSession, fileKey: string) => { - if (isFileIgnored(fileKey)) return + if (isFileIgnored(fileKey) || options?.noDelete) return // Optimistically delete the file from the local file system. files.delete(fileKey)