/* 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]{"); } });