@aimee-blue/ab-service-kit
Version:
Aimee Blue Service Template
67 lines (49 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.appName = exports.appVersion = void 0;
var _fsExtra = require("fs-extra");
var _child_process = require("child_process");
var _abShared = require("@aimee-blue/ab-shared");
const packageJson = 'package.json';
let loadedPackageJson;
async function loadPackageJson() {
if (loadedPackageJson) {
return loadedPackageJson;
}
const packageJsonExists = await (0, _fsExtra.pathExists)(packageJson);
if (!packageJsonExists) {
throw new Error('Cannot find package.json, this application is meant to be run with current package.json in cwd');
}
const contents = await (0, _fsExtra.readFile)(packageJson, {
encoding: 'utf8'
});
loadedPackageJson = JSON.parse(contents);
return loadedPackageJson;
}
function determineGitVersion() {
const gitResult = (0, _child_process.spawnSync)('git', ['describe', '--long', '--dirty=+', '--abbrev=10', '--tags'], {
encoding: 'utf8'
});
if (gitResult.error || gitResult.status !== 0) {
return null;
}
const gitVersion = gitResult.stdout.trim();
const versionStr = gitVersion.startsWith('v') ? gitVersion.substring(1) : gitVersion;
return versionStr;
}
const appVersion = _abShared.Utils.onceAsync(async () => {
const loaded = await loadPackageJson();
if (loaded.version === '0.0.0-development') {
return determineGitVersion() || loaded.version;
}
return loaded.version;
});
exports.appVersion = appVersion;
const appName = _abShared.Utils.onceAsync(async () => {
const loaded = await loadPackageJson();
return loaded.name;
});
exports.appName = appName;
//# sourceMappingURL=app.js.map