diff --git a/src/files-ui/core/types/ExtFile.ts b/src/files-ui/core/types/ExtFile.ts index 1a69b3afee41c5898330618d08b59e58ecf2ad85..2e840ac26bc270a831cb36312d1f954b790c60c3 100644 --- a/src/files-ui/core/types/ExtFile.ts +++ b/src/files-ui/core/types/ExtFile.ts @@ -200,85 +200,33 @@ export class ExtFileInstance { } + /** + * Copies all non undefined attributes from ExtFileInstance to a new ExtFile object + * @param extFileInstance the instance of ExtFile + * @returns an ExtFile object + */ static toExtFile(extFileInstance: ExtFileInstance): ExtFile { - const - { - id, - file, - name, - size, - type, - imageUrl, - valid, - errors, - uploadMessage, - uploadStatus, - progress, - xhr, - extraData, - extraUploadData, - serverResponse, - downloadUrl - } = extFileInstance; - return { - id, - file, - name, - size, - type, - imageUrl, - valid, - errors, - uploadMessage, - uploadStatus, - progress, - xhr, - extraData, - extraUploadData, - serverResponse, - downloadUrl - }; + console.log("before toExtFile()", extFileInstance); + + let extFileClone: ExtFile = {}; // the new empty object + const extFileInstanceKeys = Object.keys(extFileInstance) as [keyof ExtFile]; + const extFileInstanceValues = Object.values(extFileInstance); + // let's copy all user properties into it + for (let i = 0; i < extFileInstanceKeys.length; i++) { + if (extFileInstanceValues[i] !== undefined) { + extFileClone[extFileInstanceKeys[i]] = extFileInstanceValues[i]; + } + } + console.log("after toExtFile()", extFileClone); + + return extFileClone; } + /** + * Copies all non undefined attributes from ExtFileInstance to a new ExtFile object. + * @returns an ExtFile object + */ toExtFile(): ExtFile { - const { - id, - file, - name, - size, - type, - imageUrl, - valid, - errors, - uploadMessage, - uploadStatus, - progress, - xhr, - extraData, - extraUploadData, - serverResponse, - downloadUrl - } = this; - - const result: ExtFile = { - id, - file, - name, - size, - type, - imageUrl, - valid, - errors, - uploadMessage, - uploadStatus, - progress, - xhr, - extraData, - extraUploadData, - serverResponse, - downloadUrl - } as ExtFile; - console.log("incomming result", { ...result }); - return { ...result }; + return ExtFileInstance.toExtFile(this); } static mock = (): ExtFileInstance => {