MCPcopy Index your code
hub / github.com/angular/angular / checkDuplicateMessages

Function checkDuplicateMessages

packages/localize/tools/src/extract/duplicates.ts:19–48  ·  view source on GitHub ↗
(
  fs: PathManipulation,
  messages: ɵParsedMessage[],
  duplicateMessageHandling: DiagnosticHandlingStrategy,
  basePath: AbsoluteFsPath,
)

Source from the content-addressed store, hash-verified

17 * object (as necessary).
18 */
19export function checkDuplicateMessages(
20 fs: PathManipulation,
21 messages: ɵParsedMessage[],
22 duplicateMessageHandling: DiagnosticHandlingStrategy,
23 basePath: AbsoluteFsPath,
24): Diagnostics {
25 const diagnostics = new Diagnostics();
26 if (duplicateMessageHandling === 'ignore') return diagnostics;
27
28 const messageMap = new Map<MessageId, ɵParsedMessage[]>();
29 for (const message of messages) {
30 if (messageMap.has(message.id)) {
31 messageMap.get(message.id)!.push(message);
32 } else {
33 messageMap.set(message.id, [message]);
34 }
35 }
36
37 for (const duplicates of messageMap.values()) {
38 if (duplicates.length <= 1) continue;
39 if (duplicates.every((message) => message.text === duplicates[0].text)) continue;
40
41 const diagnosticMessage =
42 `Duplicate messages with id "${duplicates[0].id}":\n` +
43 duplicates.map((message) => serializeMessage(fs, basePath, message)).join('\n');
44 diagnostics.add(duplicateMessageHandling, diagnosticMessage);
45 }
46
47 return diagnostics;
48}
49
50/**
51 * Serialize the given `message` object into a string.

Callers 1

extractTranslationsFunction · 0.90

Calls 9

addMethod · 0.95
valuesMethod · 0.80
mapMethod · 0.80
serializeMessageFunction · 0.70
hasMethod · 0.65
getMethod · 0.65
setMethod · 0.65
joinMethod · 0.65
pushMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…