Error when trying to log project module with the SDK: cannot serialize property: [object Object]

0
Hi, I am trying to log a module from my app. I am using the following script: function loadAndLogModule(workingCopy:OnlineWorkingCopy){ const domainModule = workingCopy.model().allModules()[0]; console.log(utils.serializeToJs(domainModule)); } When I run this I get the following error: Error: cannot serialize property: [object Object]     at structure.allProperties.forEach.property ($PATH_TO_MY_APP\node_modules\mendixmodelsdk\dist\sdk\extras\as-model-sdk-code-serializer.js:237:19)     at Array.forEach (<anonymous>)     at JavaScriptSerializer._asCreation ($PATH_TO_MY_APP\node_modules\mendixmodelsdk\dist\sdk\extras\as-model-sdk-code-serializer.js:148:35)     at JavaScriptSerializer.schedule ($PATH_TO_MY_APP\node_modules\mendixmodelsdk\dist\sdk\extras\as-model-sdk-code-serializer.js:46:35)     at Function.serializeToJs ($PATH_TO_MY_APP\node_modules\mendixmodelsdk\dist\sdk\extras\as-model-sdk-code-serializer.js:38:20)     at Object.serializeToJs ($PATH_TO_MY_APP\node_modules\mendixmodelsdk\dist\sdk\utils.js:51:68)     at loadAndLogModule ($PATH_TO_MY_APP\dist\script.js:127:40)     at $PATH_TO_MY_APP\dist\script.js:52:17     at Generator.next (<anonymous>)     at fulfilled ($PATH_TO_MY_APP\dist\script.js:4:58)   Any ideas on what I'm doing wrong?   
asked
1 answers
1

Hi Daniel

I don't think you can serialise the module directly like that. 

You can, however, serialise ModuleDocuments and ModuleSecurities which may be sufficient for your needs:

async function exportModuleSecurities(wc : OnlineWorkingCopy){
    const securities = wc.model().allModuleSecurities();

    for(const security of securities){
        const loadedSecurity = await loadAsPromise(security);        
        console.log(utils.serializeToJs(loadedSecurity));
    }
}

async function exportModuleDocuments(wc : OnlineWorkingCopy){
    const documents = wc.model().allModuleDocuments();

    for(const document of documents){
        const loadedDocument = await loadAsPromise(document);        
        console.log(utils.serializeToJs(loadedDocument));
    }
}

(although you probably don't want to log all of those objects to the console!)

Cheers

iain

answered