version.js 867 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import express from "express";
  2. import internalRemoteVersion from "../internal/remote-version.js";
  3. import { debug, express as logger } from "../logger.js";
  4. const router = express.Router({
  5. caseSensitive: true,
  6. strict: true,
  7. mergeParams: true,
  8. });
  9. /**
  10. * /api/version/check
  11. */
  12. router
  13. .route("/check")
  14. .options((_, res) => {
  15. res.sendStatus(204);
  16. })
  17. /**
  18. * GET /api/version/check
  19. *
  20. * Check for available updates
  21. */
  22. .get(async (req, res, _next) => {
  23. try {
  24. const data = await internalRemoteVersion.get();
  25. res.status(200).send(data);
  26. } catch (error) {
  27. debug(logger, `${req.method.toUpperCase()} ${req.path}: ${error}`);
  28. // Send 200 even though there's an error to avoid triggering update checks repeatedly
  29. res.status(200).send({
  30. current: null,
  31. latest: null,
  32. update_available: false,
  33. });
  34. }
  35. });
  36. export default router;