UNPKG

node-signpdf

Version:
48 lines (36 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _SignPdfError = _interopRequireDefault(require("../SignPdfError")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const sliceLastChar = (pdf, character) => { const lastChar = pdf.slice(pdf.length - 1).toString(); if (lastChar === character) { return pdf.slice(0, pdf.length - 1); } return pdf; }; /** * Removes a trailing new line if there is such. * * Also makes sure the file ends with an EOF line as per spec. * @param {Buffer} pdf * @returns {Buffer} */ const removeTrailingNewLine = pdf => { if (!(pdf instanceof Buffer)) { throw new _SignPdfError.default('PDF expected as Buffer.', _SignPdfError.default.TYPE_INPUT); } let output = pdf; output = sliceLastChar(output, '\n'); output = sliceLastChar(output, '\r'); const lastLine = output.slice(output.length - 6).toString(); if (lastLine !== '\n%%EOF') { throw new _SignPdfError.default('A PDF file must end with an EOF line.', _SignPdfError.default.TYPE_PARSE); } return output; }; var _default = removeTrailingNewLine; exports.default = _default;