Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"TypeError: URLBrowserResolver is not a constructor" error in nodejs since V0.1.66 #2037

Closed
Steve-Mcl opened this issue Jul 30, 2020 · 4 comments
Labels

Comments

@Steve-Mcl
Copy link

Steve-Mcl commented Jul 30, 2020

Hi, prior to v0.1.66, calls to getBuffer() and getBase64() worked perfectly well in NODE (v12) but since the addition of URLBrowserResolver.js in V0.1.66 the following code fails...

const pdfDocGenerator = pdfMake.createPdf(docDefinition, options);
pdfDocGenerator.getBuffer((buffer) => {
                    msg.payload = new Buffer(buffer);
                    this.send(msg);
                });

First run, this error occurs...

ReferenceError: window is not defined
    at Object.<anonymous> (c:\Users\Stephen\.node-red\node_modules\node-red-contrib-pdfmake\node_modules\pdfmake\build\webpack:\src\browser-extensions\URLBrowserResolver.js:4:1)
    at __webpack_require__ (c:\Users\Stephen\.node-red\node_modules\node-red-contrib-pdfmake\node_modules\pdfmake\build\webpack:\webpack\bootstrap:19:1)
    at Document._createDoc (c:\Users\Stephen\.node-red\node_modules\node-red-contrib-pdfmake\node_modules\pdfmake\build\webpack:\src\browser-extensions\pdfMake.js:50:27)
    at Document.getBuffer (c:\Users\Stephen\.node-red\node_modules\node-red-contrib-pdfmake\node_modules\pdfmake\build\webpack:\src\browser-extensions\pdfMake.js:252:1)
    at pdfmake._inputCallback (c:\Users\Stephen\.node-red\node_modules\node-red-contrib-pdfmake\pdfmake\pdfmake.js:27:33)
    at pdfmake.Node._emitInput (c:\programdata\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\Node.js:200:18)
    at Immediate._onImmediate (c:\programdata\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\Node.js:179:33)
    at processImmediate (internal/timers.js:456:21) {stack: 'ReferenceError: window is not defined
    at … processImmediate (internal/timers.js:456:21)', message: 'window is not defined'}

subsequent runs, this error occurs...

TypeError: URLBrowserResolver is not a constructor
    at Document._createDoc (c:\Users\Stephen\.node-red\node_modules\node-red-contrib-pdfmake\node_modules\pdfmake\build\webpack:\src\browser-extensions\pdfMake.js:51:1)
    at Document.getBuffer (c:\Users\Stephen\.node-red\node_modules\node-red-contrib-pdfmake\node_modules\pdfmake\build\webpack:\src\browser-extensions\pdfMake.js:252:1)
    at pdfmake._inputCallback (c:\Users\Stephen\.node-red\node_modules\node-red-contrib-pdfmake\pdfmake\pdfmake.js:27:33)
    at pdfmake.Node._emitInput (c:\programdata\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\Node.js:200:18)
    at Immediate._onImmediate (c:\programdata\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\Node.js:179:33)
    at processImmediate (internal/timers.js:456:21) {stack: 'TypeError: URLBrowserResolver is not a constr… processImmediate (internal/timers.js:456:21)', message: 'URLBrowserResolver is not a constructor'}

image

@Steve-Mcl
Copy link
Author

Steve-Mcl commented Jul 30, 2020

As a (very) dirty hack, to get things working in node (when calling getBuffer() etc) I have temporarily hacked a few lines of code into the built pdfmake,js as followings...

  var isNode=new Function("try {return this===global;}catch(e){return false;}");
  if(isNode()){
    var doc = printer.createPdfKitDocument(this.docDefinition, options);
    cb(doc);
    return doc;
  }

like this....
image

liborm85 added a commit that referenced this issue Jul 30, 2020
@liborm85
Copy link
Collaborator

window fixed by commit 74ccc88.

@Steve-Mcl
Copy link
Author

I have tested this on a local copy. Seems to do the trick.

@liborm85
Copy link
Collaborator

New version released.

moshensky pushed a commit to moshensky/pdfmake that referenced this issue Nov 16, 2020
* 0.1: (60 commits)
  fix auto page height for table bpampuch#2005
  0.1.68
  update dependencies
  fixed check window exists bpampuch#2037
  0.1.67
  refresh pdf examples
  fix for overrides window.Promise EP bpampuch#2026
  reformat
  bug-2021-bad-svg-parsing * switch to using xmldoc
  backport to 0.1: loading images via URL in browser
  bug-2021-bad-svg-parsing * fix for writeDimensions()
  bug-2021-bad-svg-parsing * failing test for writeDimensions()
  bug-2021-bad-svg-parsing * fix to ignore comments when identifying <svg> tag
  bug-2021-bad-svg-parsing * add failing tests
  0.1.66
  fonts available in cdn
  backport to 0.1: support for loading raw font files by url address via http(s) protocol for browser usage
  define node version in package.json
  fix for babel bpampuch#1846
  travis - run first on linux
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants