DraftModeManager.js 779 B

123456789101112131415161718192021222324
  1. const fsPromises = require('node:fs/promises')
  2. const { callbackify } = require('node:util')
  3. const logger = require('@overleaf/logger')
  4. async function injectDraftMode(filename) {
  5. const content = await fsPromises.readFile(filename, { encoding: 'utf8' })
  6. const modifiedContent =
  7. '\\PassOptionsToPackage{draft}{graphicx}\\PassOptionsToPackage{draft}{graphics}' +
  8. content
  9. logger.debug(
  10. {
  11. content: content.slice(0, 1024), // \documentclass is normally v near the top
  12. modifiedContent: modifiedContent.slice(0, 1024),
  13. filename,
  14. },
  15. 'injected draft class'
  16. )
  17. await fsPromises.writeFile(filename, modifiedContent, { encoding: 'utf8' })
  18. }
  19. module.exports = {
  20. injectDraftMode: callbackify(injectDraftMode),
  21. promises: { injectDraftMode },
  22. }