async function fixupImportFileExtensions()

in scripts/fixup.cjs [36:59]


async function fixupImportFileExtensions() {
  const mjsFilePaths = [];

  const replaceExtension = source =>
    source.replace(/(^import.*from '\.\/.*)(';)$/gm, '$1.js$2');

  const recursiveReadDir = async path => {
    const dirResults = await readdir(mjsDistFolder, {withFileTypes: true});
    for (const entry of dirResults) {
      const path = resolve(mjsDistFolder, entry.name);
      if (entry.isDirectory()) {
        recursiveReadDir(path);
      } else if (path.endsWith('.js') || path.endsWith('.d.ts')) {
        mjsFilePaths.push(path);
      }
    }
  };
  await recursiveReadDir(mjsDistFolder);

  for (const filepath of mjsFilePaths) {
    const contents = await readFile(filepath, { encoding: 'utf8' });
    await writeFile(filepath, replaceExtension(contents));
  }
}