{
  "version": 3,
  "sources": ["../../../../src/packages/read-modules-dir/index.ts"],
  "sourcesContent": ["import path from 'node:path';\nimport util from 'node:util';\nimport gracefulFs from 'graceful-fs';\n\nconst readdir = util.promisify(gracefulFs.readdir);\n\nexport async function readModulesDir(\n  modulesDir: string\n): Promise<string[] | null> {\n  try {\n    return await _readModulesDir(modulesDir);\n  } catch (err: unknown) {\n    if (util.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT')\n      return null;\n    throw err;\n  }\n}\n\nasync function _readModulesDir(\n  modulesDir: string,\n  scope?: string | undefined\n): Promise<string[]> {\n  const pkgNames: string[] = [];\n\n  const parentDir =\n    typeof scope === 'string' ? path.join(modulesDir, scope) : modulesDir;\n\n  await Promise.all(\n    (await readdir(parentDir, { withFileTypes: true })).map(async (dir) => {\n      if (dir.isFile() || dir.name[0] === '.') return;\n\n      if (typeof scope === 'undefined' && dir.name[0] === '@') {\n        pkgNames.push(...(await _readModulesDir(modulesDir, dir.name)));\n        return;\n      }\n\n      const pkgName =\n        typeof scope === 'string' ? `${scope}/${dir.name as string}` : dir.name;\n      pkgNames.push(pkgName);\n    })\n  );\n  return pkgNames;\n}\n"],
  "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,OAAO,gBAAgB;AAEvB,MAAM,UAAU,KAAK,UAAU,WAAW,OAAO;AAEjD,eAAsB,eACpB,YAC0B;AAC1B,MAAI;AACF,WAAO,MAAM,gBAAgB,UAAU;AAAA,EACzC,SAAS,KAAc;AACrB,QAAI,KAAK,MAAM,cAAc,GAAG,KAAK,UAAU,OAAO,IAAI,SAAS;AACjE,aAAO;AACT,UAAM;AAAA,EACR;AACF;AAEA,eAAe,gBACb,YACA,OACmB;AACnB,QAAM,WAAqB,CAAC;AAE5B,QAAM,YACJ,OAAO,UAAU,WAAW,KAAK,KAAK,YAAY,KAAK,IAAI;AAE7D,QAAM,QAAQ;AAAA,KACX,MAAM,QAAQ,WAAW,EAAE,eAAe,KAAK,CAAC,GAAG,IAAI,OAAO,QAAQ;AACrE,UAAI,IAAI,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,IAAK;AAEzC,UAAI,OAAO,UAAU,eAAe,IAAI,KAAK,CAAC,MAAM,KAAK;AACvD,iBAAS,KAAK,GAAI,MAAM,gBAAgB,YAAY,IAAI,IAAI,CAAE;AAC9D;AAAA,MACF;AAEA,YAAM,UACJ,OAAO,UAAU,WAAW,GAAG,KAAK,IAAI,IAAI,IAAc,KAAK,IAAI;AACrE,eAAS,KAAK,OAAO;AAAA,IACvB,CAAC;AAAA,EACH;AACA,SAAO;AACT;",
  "names": []
}
