DraftModeManager.js 789 B

1234567891011121314151617181920212223242526
  1. import fsPromises from 'node:fs/promises'
  2. import { callbackify } from 'node:util'
  3. import logger from '@overleaf/logger'
  4. const PREFIX =
  5. '\\PassOptionsToPackage{draft}{graphicx}\\PassOptionsToPackage{draft}{graphics}'
  6. async function injectDraftMode(filename) {
  7. const content = await fsPromises.readFile(filename, { encoding: 'utf8' })
  8. const modifiedContent = PREFIX + 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. PREFIX,
  21. injectDraftMode: callbackify(injectDraftMode),
  22. promises: { injectDraftMode },
  23. }