async function getAllFiles()

in packages/metro/src/DeltaBundler/Serializers/getAllFiles.js [23:59]


async function getAllFiles(
  pre: $ReadOnlyArray<Module<>>,
  graph: Graph<>,
  options: Options,
): Promise<$ReadOnlyArray<string>> {
  const modules = graph.dependencies;
  const {processModuleFilter} = options;

  const promises = [];

  for (const module of pre) {
    if (processModuleFilter(module)) {
      promises.push([module.path]);
    }
  }

  for (const module of modules.values()) {
    if (!isJsModule(module) || !processModuleFilter(module)) {
      continue;
    }

    if (getJsOutput(module).type === 'js/module/asset') {
      promises.push(getAssetFiles(module.path, options.platform));
    } else {
      promises.push([module.path]);
    }
  }

  const dependencies = await Promise.all(promises);
  const output = [];

  for (const dependencyArray of dependencies) {
    output.push(...dependencyArray);
  }

  return output;
}