| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /* eslint-disable
- camelcase,
- handle-callback-err,
- no-useless-escape,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- let DraftModeManager
- const fs = require('fs')
- const logger = require('logger-sharelatex')
- module.exports = DraftModeManager = {
- injectDraftMode(filename, callback) {
- if (callback == null) {
- callback = function (error) {}
- }
- return fs.readFile(filename, 'utf8', function (error, content) {
- if (error != null) {
- return callback(error)
- }
- // avoid adding draft mode more than once
- if (
- (content != null
- ? content.indexOf('\\documentclass[draft')
- : undefined) >= 0
- ) {
- return callback()
- }
- const modified_content = DraftModeManager._injectDraftOption(content)
- logger.log(
- {
- content: content.slice(0, 1024), // \documentclass is normally v near the top
- modified_content: modified_content.slice(0, 1024),
- filename
- },
- 'injected draft class'
- )
- return fs.writeFile(filename, modified_content, callback)
- })
- },
- _injectDraftOption(content) {
- return (
- content
- // With existing options (must be first, otherwise both are applied)
- .replace(/\\documentclass\[/g, '\\documentclass[draft,')
- // Without existing options
- .replace(/\\documentclass\{/g, '\\documentclass[draft]{')
- )
- }
- }
|