src/vs/platform/files/browser/indexedDBFileSystemProvider.ts/IndexedDBFileSystemProvider/getFiletree
class IndexedDBFileSystemProvider:	private getFiletree(): Promise<IndexedDBFileSystemNode> {
		if (!this.cachedFiletree) {
			this.cachedFiletree = new Promise((c, e) => {
				const transaction = this.database.transaction([this.store]);
				transaction.oncomplete = () => {
					const rootNode = new IndexedDBFileSystemNode({
						children: new Map(),
						path: '',
						type: FileType.Directory
					});
					const keys = request.result.map(key => key.toString());
					keys.forEach(key => rootNode.add(key, { type: 'file' }));
					c(rootNode);
				};
				transaction.onerror = () => e(transaction.error);

				const objectStore = transaction.objectStore(this.store);
				const request = objectStore.getAllKeys();
			});
		}
		return this.cachedFiletree;
	}