Skip to content

Commit bd8b67b

Browse files
committed
Added object type validation for parameters in method createPdf and createPdfKitDocument
1 parent a972f65 commit bd8b67b

4 files changed

Lines changed: 19 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## Unreleased
4+
5+
- Added object type validation for parameters in method `createPdf` and `createPdfKitDocument`
6+
37
## 0.2.21 - 2025-12-22
48

59
- Added `wordBreak` property for `text` node, supported values: `'normal'` (default), `'break-all'`

src/browser-extensions/pdfMake.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
var isFunction = require('../helpers').isFunction;
4+
var isObject = require('../helpers').isObject;
45
var isUndefined = require('../helpers').isUndefined;
56
//var isNull = require('../helpers').isNull;
67
var pack = require('../helpers').pack;
@@ -321,6 +322,10 @@ Document.prototype.getStream = function (options, cb) {
321322

322323
module.exports = {
323324
createPdf: function (docDefinition, tableLayouts, fonts, vfs) {
325+
if (!isObject(docDefinition)) {
326+
throw new Error("Parameter 'docDefinition' has an invalid type. Object expected.");
327+
}
328+
324329
if (!canCreatePdf()) {
325330
throw 'Your browser does not provide the level of support needed';
326331
}

src/printer.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var isNumber = require('./helpers').isNumber;
1515
var isBoolean = require('./helpers').isBoolean;
1616
var isArray = require('./helpers').isArray;
1717
var isUndefined = require('./helpers').isUndefined;
18+
var isObject = require('./helpers').isObject;
1819
var isPattern = require('./helpers').isPattern;
1920
var getPattern = require('./helpers').getPattern;
2021
var SVGtoPDF = require('./3rd-party/svg-to-pdfkit');
@@ -111,6 +112,14 @@ function PdfPrinter(fontDescriptors) {
111112
PdfPrinter.prototype.createPdfKitDocument = function (docDefinition, options) {
112113
options = options || {};
113114

115+
if (!isObject(docDefinition)) {
116+
throw new Error("Parameter 'docDefinition' has an invalid type. Object expected.");
117+
}
118+
119+
if (!isObject(options)) {
120+
throw new Error("Parameter 'options' has an invalid type. Object expected.");
121+
}
122+
114123
docDefinition.version = docDefinition.version || '1.3';
115124
docDefinition.subset = docDefinition.subset || undefined;
116125
docDefinition.tagged = typeof docDefinition.tagged === 'boolean' ? docDefinition.tagged : false;

tests/browser/polyfills.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ describe('core-js polyfill', function () {
1212
};
1313

1414
var pdf = pdfmake.createPdf(docDefinition);
15-
pdf.getStream(() => {
15+
pdf.getStream({}, () => {
1616
// noop
1717
});
1818

0 commit comments

Comments
 (0)