Ctrl K
ComunidadGuías…

src/version.js

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { execSync } from 'child_process';
import { existsSync, readFileSync } from 'fs';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';

const here = dirname(fileURLToPath(import.meta.url));
const root = join(here, '..');

export const VERSION = (() => {
  try {
    return JSON.parse(readFileSync(join(root, 'package.json'), 'utf8')).version;
  } catch { return '1.0.0'; }
})();

export const BRAND = 'WindsurfAPI bydwgx1337';

function firstEnv(names) {
  for (const name of names) {
    const value = String(process.env[name] || '').trim();
    if (value) return value;
  }
  return '';
}

function git(args) {
  if (!existsSync(join(root, '.git'))) return '';
  try {
    return execSync(`git ${args}`, { cwd: root, timeout: 2000 }).toString().trim();
  } catch {
    return '';
  }
}

function shortCommit(s) {
  const value = String(s || '').trim();
  return /^[a-f0-9]{7,40}$/i.test(value) ? value.slice(0, 12) : value;
}

export function getVersionInfo() {
  const commit = shortCommit(firstEnv([
    'WINDSURFAPI_BUILD_COMMIT',
    'BUILD_COMMIT',
    'GIT_COMMIT',
    'SOURCE_COMMIT',
    'VCS_REF',
    'COMMIT_SHA',
  ]) || git('rev-parse --short=12 HEAD'));
  const commitMessage = firstEnv([
    'WINDSURFAPI_BUILD_COMMIT_MESSAGE',
    'BUILD_COMMIT_MESSAGE',
  ]) || git('log -1 --pretty=format:%s');
  const commitDate = firstEnv([
    'WINDSURFAPI_BUILD_COMMIT_DATE',
    'BUILD_COMMIT_DATE',
  ]) || git('log -1 --pretty=format:%cI');
  const branch = firstEnv([
    'WINDSURFAPI_BUILD_BRANCH',
    'BUILD_BRANCH',
    'GIT_BRANCH',
  ]) || git('rev-parse --abbrev-ref HEAD') || 'unknown';
  const source = commit
    ? (existsSync(join(root, '.git')) ? 'git' : 'build-env')
    : 'package';
  return {
    version: firstEnv(['WINDSURFAPI_BUILD_VERSION', 'BUILD_VERSION']) || VERSION,
    commit,
    commitMessage,
    commitDate,
    branch,
    source,
  };
}