DraftModeManager.js 762 B

123456789101112131415161718192021222324
  1. import fsPromises from 'node:fs/promises'
  2. import { callbackify } from 'node:util'
  3. import logger from '@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. export default {
  20. injectDraftMode: callbackify(injectDraftMode),
  21. promises: { injectDraftMode },
  22. }