@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
34 lines (33 loc) • 1.22 kB
JavaScript
import { localTime } from '@naturalcycles/js-lib/datetime/localTime.js';
import { _filterUndefinedValues } from '@naturalcycles/js-lib/object/object.util.js';
import { fs2 } from '../fs/fs2.js';
import { git2 } from './git2.js';
export function generateBuildInfo(opt = {}) {
const now = localTime.orNow(opt.overrideTimestamp);
const ts = now.unix;
const rev = git2.getCurrentCommitSha();
const branchName = opt.overrideBranchName || git2.getCurrentBranchName();
const repoName = git2.getCurrentRepoName();
const tsCommit = git2.getCurrentCommitTimestamp();
const ver = [now.toStringCompact(), repoName, branchName, rev].join('_');
let { APP_ENV: env } = process.env;
if (!env) {
// Attempt to read `envByBranch` from package.json root
try {
if (fs2.pathExists('package.json')) {
const packageJson = fs2.readJson('package.json');
env = packageJson?.['envByBranch']?.[branchName] || packageJson?.['envByBranch']?.['*'];
}
}
catch { }
}
return _filterUndefinedValues({
ts,
tsCommit,
repoName,
branchName,
rev,
ver,
env,
});
}