tldr-node-client icon indicating copy to clipboard operation
tldr-node-client copied to clipboard

specify a config param to control updating cache when a page is not found

Open gpenghe opened this issue 7 years ago • 2 comments

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

gpenghe avatar Jul 11 '18 20:07 gpenghe

Hey, thanks for the issue! I suspect this behaviour should be configured via a setting (which ought to default to on). @agnivade, thoughts?

sbrl avatar Jul 11 '18 21:07 sbrl

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.

agnivade avatar Jul 12 '18 03:07 agnivade