If you add any methods on Array/Object prototype then the for in loop from getBody() method will try to export it.
https://github.com/alhazmy13/angular-csv-ext/blob/master/Angular-csv.ts#L136
As a fix I would suggest using the hasOwnProperty method to avoid iterate over inherited properties, or maybe use Object.keys() and iterate over them to fully avoid for in loop
How to reproduce:
Array.prototype.myFunct = function () { return this; }
const data = [1, 2, 3];
new AngularCsv(data, 'My Report');
// the output will be a CSV file with
// 1, 2, 3, function () { return this; }
For moment, as a hack workaround I override the toString() method for prototype functions:
Array.prototype.myFunct = myFunct;
function myFunct() { return this; }
myFunct.toString = () => '';
If you add any methods on Array/Object prototype then the
for inloop fromgetBody()method will try to export it.https://github.com/alhazmy13/angular-csv-ext/blob/master/Angular-csv.ts#L136
As a fix I would suggest using the
hasOwnPropertymethod to avoid iterate over inherited properties, or maybe useObject.keys()and iterate over them to fully avoid for in loopHow to reproduce:
For moment, as a hack workaround I override the
toString()method for prototype functions: