Workspace initialization


What is the flow of execution during the workspace initialization process. Is there a documentation for this?

I have created a extension of FrontendApplication where during async start() a folder is created at a provided path:

export class FrontendApplicationExtension extends FrontendApplication{
    @inject(FileService) protected readonly fileService: FileService;
    async start(): Promise<void> {
        const folderUri = window.location.hash.substring(1);
        window.requiredFileUrl = window.location.hash;
        const myUri = new URI(folderUri);
        await this.fileService.createFolder(myUri);

This creates the folder as desired but the theia application does not open this directory; it says No Folder Opened, but when i refresh the application it manages to load the folder (even though its empty).

I extended the WorkspaceService as well to set the workspaceURI as the path to the directory; I observed the behavior during the execution, everything works well and the workspaceURI is set accordingly as well but the theia application still opens with No Folder Opened. When i observed the host body it shows this: <body class="vs light-theia theia-no-open-workspace theia-light">.

What am I missing here? Or is it simply the folder creation is too slow for it open right after?
Any help would be appreciated.


So, i made a little workaround.
After the folder is created, I simply made sure that during initialize(), window.location.hash has the correct path and after that, reloaded the page, this allowed the workspace to be initialized properly.