export async function getDefaultLocalizedName()

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);
}