yakbak icon indicating copy to clipboard operation
yakbak copied to clipboard

Re-record tape if deleted

Open cs31415 opened this issue 7 years ago • 0 comments

If any tapes are deleted while the yakbak server is running with the intention of refreshing them, subsequent requests for that tape will result in retrieving the cached tape module instead of re-recording. This is because require.resolve does not throw an error even if the tape file doesn't exist and the tape module was cleared from the require.cache. It successfully resolves the tape file and doesn't throw any error. This, however, causes the require to be called which then throws a file not found error.

A simple fix is to check if the file exists post-request.resolve and to throw a MODULE_NOT_FOUND exception if it doesn't which causes control to pass into the catch(ModuleNotFoundError, ...) block, and the request to be re-recorded.

cs31415 avatar Nov 22 '17 05:11 cs31415