tldr-node-client
tldr-node-client copied to clipboard
specify a config param to control updating cache when a page is not found
Expected behaviour
- Don't update the cache again if the last update happens within a certain period of time, or
- Just tell the user the command (page) doesn't exist and quit, since it's a very low chance that the command will be recognized after an update anyway.
Actual behaviour
Currently tldr tried to update the cache every time it doesn't recognize a command. It's a bit slow process that involves a network communication. And also it seems it's at least not necessary to do it every time, which is the case when the user tries to see if the command becomes recognized after a cache update, or when the user just check several commands in a row. The latter case happens a lot to a user without auto-completion installed.
Log, debug output
$ tldr sss
✔ Page not found. Updating cache
✔ Creating index
Page not found.
Feel free to send a pull request to: https://github.com/tldr-pages/tldr
$ tldr sss
✔ Page not found. Updating cache
✔ Creating index
Page not found.
Feel free to send a pull request to: https://github.com/tldr-pages/tldr
Environment
- OS: Ubuntu 16.04.3 LTS
- NodeJS version: v10.6.0
Hey, thanks for the issue! I suspect this behaviour should be configured via a setting (which ought to default to on). @agnivade, thoughts?
Agree. We already have a cache.lastUpdated() function. So we just need a new config value which specifies the duration. And then when a page is not found, we just check whether now() - cache.lastUpdated() is greater than the duration, if yes, then update the cache.
I am available for reviews if anyone wants to send a PR.