mirror of
https://github.com/jeffvli/feishin.git
synced 2024-11-20 06:27:09 +01:00
25 lines
797 B
JavaScript
25 lines
797 B
JavaScript
import {readFileSync} from 'node:fs';
|
|
import {resolve} from 'node:path';
|
|
|
|
/**
|
|
* Cache app version. Just to prevent multiple reading from fs
|
|
* @type {null|string}
|
|
*/
|
|
let CACHED_VERSION = null;
|
|
|
|
/**
|
|
* Entry function for get app version.
|
|
* By default, it returns `version` from `package.json`, but you can implement any logic here.
|
|
* Runs several times for each vite configs and electron-builder config.
|
|
* @param {string} [root=process.cwd()] Project root path. Needed for current implementation. Indicate where to find `package.json`
|
|
* @return {string}
|
|
*/
|
|
export function getVersion(root = process.cwd()) {
|
|
if (CACHED_VERSION === null) {
|
|
CACHED_VERSION = JSON.parse(
|
|
readFileSync(resolve(root, 'package.json'), {encoding: 'utf8'}),
|
|
).version;
|
|
}
|
|
return CACHED_VERSION;
|
|
}
|