diff --git a/packages/cli/src/api/catalog/mergeCatalog.test.ts b/packages/cli/src/api/catalog/mergeCatalog.test.ts index 4915e1aaf..a83f27408 100644 --- a/packages/cli/src/api/catalog/mergeCatalog.test.ts +++ b/packages/cli/src/api/catalog/mergeCatalog.test.ts @@ -151,4 +151,37 @@ describe("mergeCatalog", () => { }), }) }) + + it("should keep message extra from the previous catalog", () => { + const prevCatalog: CatalogType = { + Hello: { + translation: "Hallo", + extra: { flags: ["myTag"] }, + }, + } + + const nextCatalog: ExtractedCatalogType = { + Hello: { + message: "Hello", + origin: [["src/app.ts", 1]], + }, + } + + const result = mergeCatalog(prevCatalog, nextCatalog, false, {}) + expect(result["Hello"]).toMatchInlineSnapshot(` + { + flags: [ + myTag, + ], + message: Hello, + origin: [ + [ + src/app.ts, + 1, + ], + ], + translation: Hallo, + } + `) + }) }) diff --git a/packages/cli/src/api/catalog/mergeCatalog.ts b/packages/cli/src/api/catalog/mergeCatalog.ts index c00881aa1..601fba4bb 100644 --- a/packages/cli/src/api/catalog/mergeCatalog.ts +++ b/packages/cli/src/api/catalog/mergeCatalog.ts @@ -38,8 +38,9 @@ export function mergeCatalog( : prevCatalog[key].translation const { obsolete, ...rest } = nextCatalog[key] + const { extra } = prevCatalog[key] - return [key, { ...rest, translation }] + return [key, { ...extra, ...rest, translation }] }) )