Fix: meta info issue (#67)

Set server version at npm prepack event
This commit is contained in:
Ewout Stortenbeker 2023-01-02 22:24:08 +01:00 committed by GitHub
parent 1789953dce
commit a8e275b580
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 5 deletions

11
build-vars.js Normal file
View file

@ -0,0 +1,11 @@
// Executed by npm "prepack" script
const { readFileSync, writeFileSync } = require('fs');
const packageInfo = require('./package.json');
const files = ['./dist/cjs/routes/meta-info.js', './dist/esm/routes/meta-info.js'];
files.forEach(file => {
let content = readFileSync(file, 'utf8');
content = content.replace(/%SERVER_VERSION%/g, packageInfo.version);
writeFileSync(file, content, 'utf8');
console.log(`Replaced variable %SERVER_VERSION% with ${packageInfo.version} in ${file}`);
});

View file

@ -24,7 +24,8 @@
"build:esm": "tsc -p tsconfig.json && npx tsc-esm-fix ---target='dist/esm'",
"build:cjs": "tsc -p tsconfig-cjs.json",
"build:packages": "bash ./create-package-files",
"npmfix": "echo 'Regenerating package-lock.json...' && npm i --package-lock-only"
"build:vars": "node ./build-vars.js",
"prepack": "npm run build:vars"
},
"keywords": [
"database",

View file

@ -1,8 +1,6 @@
import { RouteInitEnvironment, RouteRequest } from '../shared/env';
import * as os from 'os';
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore path to package.json is different in builds
import meta from '../../../package.json' assert { type: 'json' };
const SERVER_VERSION = '%SERVER_VERSION%'; // Loaded from package.json by npm scripts
export type RequestQuery = null;
export type RequestBody = null;
@ -18,7 +16,7 @@ export const addRoute = (env: RouteInitEnvironment) => {
env.app.get(`/info/${env.db.name}`, (req: Request, res) => {
const info = {
version: meta.version, // Loaded from package.json
version: SERVER_VERSION,
time: Date.now(),
process: process.pid,
};