UNPKG

gitversionjs

Version:

Auto-generates SemVer versions from Git tags and branches, GitFlow-style.

39 lines (38 loc) 1.19 kB
// src/config.ts import fs from "fs/promises"; import path from "path"; import { pathToFileURL } from "url"; const defaultConfig = { tagPrefix: "v", branchPrefixes: { main: "main", develop: "develop", feature: "feature/", release: "release/", hotfix: "hotfix/", }, }; export async function loadConfig(configFilePath) { const configPath = configFilePath ?? path.resolve(process.cwd(), ".gitversion.config.js"); try { await fs.access(configPath); const configModule = await import(pathToFileURL(configPath).href); const rawConfig = configModule.default; const validatedConfig = {}; if (typeof rawConfig.tagPrefix === "string") { validatedConfig.tagPrefix = rawConfig.tagPrefix; } if (typeof rawConfig.branchPrefixes === "object" && rawConfig.branchPrefixes !== null && !Array.isArray(rawConfig.branchPrefixes)) { validatedConfig.branchPrefixes = rawConfig.branchPrefixes; } return { ...defaultConfig, ...validatedConfig, }; } catch { return defaultConfig; } }