count_files_in_projects.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const readline = require('readline')
  2. const ProjectEntityHandler = require('../app/src/Features/Project/ProjectEntityHandler')
  3. const ProjectGetter = require('../app/src/Features/Project/ProjectGetter')
  4. const Errors = require('../app/src/Features/Errors/Errors')
  5. async function countFiles() {
  6. const rl = readline.createInterface({
  7. input: process.stdin
  8. })
  9. for await (const projectId of rl) {
  10. try {
  11. const project = await ProjectGetter.promises.getProject(projectId)
  12. if (!project) {
  13. throw new Errors.NotFoundError('project not found')
  14. }
  15. const {
  16. files,
  17. docs
  18. } = await ProjectEntityHandler.promises.getAllEntitiesFromProject(project)
  19. console.error(
  20. projectId,
  21. files.length,
  22. (project.deletedFiles && project.deletedFiles.length) || 0,
  23. docs.length,
  24. (project.deletedDocs && project.deletedDocs.length) || 0
  25. )
  26. } catch (err) {
  27. if (err instanceof Errors.NotFoundError) {
  28. console.error(projectId, 'NOTFOUND')
  29. } else {
  30. throw err
  31. }
  32. }
  33. }
  34. }
  35. countFiles().then(() => process.exit(0))