in src/cmd/build.js [29:67]
export async function getDefaultLocalizedName({ messageFile, manifestData }) {
let messageData;
let messageContents;
let extensionName = manifestData.name;
try {
messageContents = await fs.readFile(messageFile, { encoding: 'utf-8' });
} catch (error) {
throw new UsageError(
`Error reading messages.json file at ${messageFile}: ${error}`,
);
}
messageContents = stripBom(messageContents);
const { default: stripJsonComments } = await import('strip-json-comments');
try {
messageData = parseJSON(stripJsonComments(messageContents));
} catch (error) {
throw new UsageError(
`Error parsing messages.json file at ${messageFile}: ${error}`,
);
}
extensionName = manifestData.name.replace(
/__MSG_([A-Za-z0-9@_]+?)__/g,
(match, messageName) => {
if (!(messageData[messageName] && messageData[messageName].message)) {
const error = new UsageError(
`The locale file ${messageFile} ` + `is missing key: ${messageName}`,
);
throw error;
} else {
return messageData[messageName].message;
}
},
);
return Promise.resolve(extensionName);
}