highsource / jsonix

Powerful XML<->JSON JavaScript mapping library.
BSD 2-Clause "Simplified" License
359 stars 78 forks source link

sourceIsEvt is not defined - when used with TypeScript and target ES6 #238

Open boeckMt opened 4 years ago

boeckMt commented 4 years ago

Hello,

i'm trying to use jsonix in an Angular 8 application, wenn setting the TypeScript target to ES6/ES2015 there is an ReferenceError because 'sourceIsEvt' was not declared before it is used.

jsonix.js:34 Uncaught ReferenceError: sourceIsEvt is not defined
    at Object.Jsonix.Util.extend (jsonix.js:34)
   ...

which is pointing to nodejs/scripts/jsonix.js

and i think the same in scripts/src/main/javascript/org/hisrc/jsonix/Jsonix/Util.js


I don't see any further usage of this variable in the code so is it possible to declare it with 'var' or is there any reason why this variable should by global?

And if it should be global then maybe it could be declared like this:

var windowIsDefined = typeof window !== 'undefined' && window !== null;
    if (windowIsDefined) {
        window.sourceIsEvt = typeof window.Event === "function" && source instanceof window.Event;
        if (!window.sourceIsEvt && source.hasOwnProperty && source.hasOwnProperty('toString')) {
          destination.toString = source.toString;
      }
 }
Knochenmark commented 2 years ago

@boeckMt not sure it's actually a global

a simple var infront seems to do the trick

boeckMt commented 2 years ago

@Knochenmark, yes I used the same trick.

But I think this repo is no longer actively developed. Maybe someone of the forkers is willing to fix bugs.

romdhanisam commented 2 years ago

@Knochenmark, yes I used the same trick.

But I think this repo is no longer actively developed. Maybe someone of the forkers is willing to fix bugs.

Fixed, PR: https://github.com/highsource/jsonix/pull/266 To test: https://www.npmjs.com/package/@opentempl/jsonix/v/3.0.0-issues-238