From 2e21526fcaabfe92867f9f5a39752563d8121ae9 Mon Sep 17 00:00:00 2001 From: "D. Berge" Date: Thu, 2 Nov 2023 23:47:13 +0100 Subject: [PATCH] Simplify versions handling --- lib/www/server/api/index.js | 1 - lib/www/server/lib/version.js | 30 ++++-------------------------- lib/www/server/package.json | 8 ++++++-- lib/www/server/spec/openapi.yaml | 2 +- 4 files changed, 11 insertions(+), 30 deletions(-) diff --git a/lib/www/server/api/index.js b/lib/www/server/api/index.js index 4747841..2b38a3e 100644 --- a/lib/www/server/api/index.js +++ b/lib/www/server/api/index.js @@ -10,7 +10,6 @@ const mw = require('./middleware'); const { ERROR, INFO, DEBUG } = require('DOUGAL_ROOT/debug')(__filename); const verbose = process.env.NODE_ENV != 'test'; const app = express(); -app.locals.version = "0.4.0"; // API version app.map = function(a, route){ route = route || ''; diff --git a/lib/www/server/lib/version.js b/lib/www/server/lib/version.js index d10470c..d939ce2 100644 --- a/lib/www/server/lib/version.js +++ b/lib/www/server/lib/version.js @@ -3,15 +3,13 @@ const { exec } = require("child_process"); const { readFileSync } = require('fs'); const { pool } = require('./db/connection'); const { info } = require('./db'); -const api = require('../api'); const pkg = require("../package.json"); const { ALERT, ERROR, WARNING, NOTICE, INFO, DEBUG } = require('DOUGAL_ROOT/debug')(__filename); function compatible () { return Promise.all([ - compatible_schema(), - compatible_api() + compatible_schema() ]); } @@ -30,7 +28,7 @@ function compatible () { function compatible_schema () { return new Promise ( async (resolve, reject) => { const current = await schema_version(); - const wanted = pkg.config.db_schema; + const wanted = pkg.config.wanted.db_schema; const component = "schema"; if (semver.satisfies(current, wanted)) { resolve({current, wanted, component}); @@ -40,19 +38,6 @@ function compatible_schema () { }); } -function compatible_api () { - return new Promise ( async (resolve, reject) => { - const current = api_version(); - const wanted = pkg.config.api; - const component = "api"; - if (semver.satisfies(current, wanted)) { - resolve({current, wanted, component}); - } else { - reject({current, wanted, component}); - } - }); -} - async function db_version () { const client = await pool.connect(); let res; @@ -89,11 +74,6 @@ async function schema_version () { return await info.get(null, "version/db_schema"); } -function api_version () { - return api.locals.version; -} - - /** Return software name. * */ @@ -131,20 +111,18 @@ async function version () { const name = app_name(); const server = pkg.version; const tag = await describe(); - const api = await api_version(); const schema = await schema_version(); const db = await db_version(); const os = await os_version(); const compatibility = [ - await compatible_schema(), - await compatible_api() + await compatible_schema() ] return { name, server, tag, - api, + ...pkg?.config?.versions, schema, db, os, diff --git a/lib/www/server/package.json b/lib/www/server/package.json index 49e249a..74f439b 100644 --- a/lib/www/server/package.json +++ b/lib/www/server/package.json @@ -12,8 +12,12 @@ "license": "UNLICENSED", "private": true, "config": { - "db_schema": "^0.4.5", - "api": "^0.4.0" + "versions": { + "api": "0.4.0" + }, + "wanted": { + "db_schema": "^0.4.5" + } }, "engines": { "node": ">=18.0.0" diff --git a/lib/www/server/spec/openapi.yaml b/lib/www/server/spec/openapi.yaml index ec79ef6..d5fb7f7 100644 --- a/lib/www/server/spec/openapi.yaml +++ b/lib/www/server/spec/openapi.yaml @@ -1091,7 +1091,7 @@ components: component: description: The component being checked. type: string - enum: [ "api", "schema" ] + enum: [ "schema" ] current: description: Current version number for this component. type: string