The problem is this: you need to convert an array of objects with possibly the same filename values. For example
input: {filename:'test.txt',content:'lorem ipsum dolor sit amet...'} {filename:'test.txt',content:' - fish text for devcelopers'} {filename:'test2.txt',content:'lorem ipsum dolor sit amet... FOREVER!!!!!'} {filename:'test3.txt',content:'User admin pasted lorem ipsum to his project'} Предпологаемый output: {filename:'test.txt',content:'lorem ipsum dolor sit amet... - fish text for devcelopers'} {filename:'test2.txt',content:'lorem ipsum dolor sit amet... FOREVER!!!!!'} {filename:'test3.txt',content:'User admin pasted lorem ipsum to his project'} Here is the TypeScript code:
function concat(filesdata:Array<FileData>):Promise<any>{ console.log("CONCATINATION OF FILES:",filesdata); return new Promise((resolve,reject) => { let files:Array<File> = []; filesdata.forEach(file => { files.push(file.toParent()); }); console.log("CONCATED FILES:",files); resolve(files); }); } And the types themselves
class File{ public filename:string; public content:string; constructor(filename:string,content:string){ this.filename = filename; this.content = content; } } class FileData extends File { private _hash:string; private err:Function; constructor( filename:string,content:string,hash:string,errorHander:Function ) { super(filename,content); this.err = errorHander; if(this.hash != hash)this.err("Hashes not match!!!"); this._hash = hash; } toParent():File{ return new File(super.filename,super.content); } checkHash(hash:string):boolean{ return this.hash === hash; } get content():string{ return super.content; } set content(value){ super.content = value; } get filename():string{ return super.filename; } set filename(value){ super.filename = value; } get hash():string{ return hash(super.content); } set hash(value){ throw new Error("Field hash is read-only"); } } Help