Is there a JupyterLab-compatible JS library to watch files?

61 Views Asked by At

I am currently working on a JupyterLab extension, and I have been getting through the whole official documentation for days now. I want to make an extension that watches specific files for changes in JupyterLab's scope. For example, let's say my JupyterLab scope is /home/me/lab/ which then identifies as / in JupyterLab's tree view.

I should be somehow able to watch the state of, let's say, the /lib/index.js (which on my computer should be located at /home/me/lab/lib/index.js), but I cannot find how to do it.

I tried several solutions already:

  • using fs.watch, but it does not work in browser apps such as Jupyter so that's a no.

  • using the ContentsManager from @jupyterlab/services but I can only watch for changes saved by the ContentsManager instance that I create. I also tried to get the main one but in vain. I don't even know if it exists. Anyway, I would only be able to listen for changes made by the user in JupyterLab, while I would like to watch for any change on the watched files.

  • ChatGPT also told me about ChokidarSocketEmitter but this requires to have a watching service alongside the jupyter service, which I would like to avoid.

I want to know if there is something that exists and that would probably be more efficient than me "making a watchdog based on a repeated timer with a callback to fetch the file(s) every 0.5s or so and manually check for changes".

Does anybody have any clue/guidance to give me?

0

There are 0 best solutions below