count_files_in_projects.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. /* eslint-disable no-console */
  6. async function countFiles() {
  7. const rl = readline.createInterface({
  8. input: process.stdin
  9. })
  10. for await (const projectId of rl) {
  11. try {
  12. const project = await ProjectGetter.promises.getProject(projectId)
  13. if (!project) {
  14. throw new Errors.NotFoundError('project not found')
  15. }
  16. const {
  17. files,
  18. docs
  19. } = await ProjectEntityHandler.promises.getAllEntitiesFromProject(project)
  20. console.error(
  21. projectId,
  22. files.length,
  23. (project.deletedFiles && project.deletedFiles.length) || 0,
  24. docs.length,
  25. (project.deletedDocs && project.deletedDocs.length) || 0
  26. )
  27. } catch (err) {
  28. if (err instanceof Errors.NotFoundError) {
  29. console.error(projectId, 'NOTFOUND')
  30. } else {
  31. console.log(projectId, 'ERROR', err.name, err.message)
  32. }
  33. }
  34. }
  35. }
  36. countFiles()
  37. .then(() => {
  38. process.exit(0)
  39. })
  40. .catch(err => {
  41. console.log('Aiee, something went wrong!', err)
  42. process.exit(1)
  43. })