Files
suaveplan/scripts/lib/config.ts
2026-05-27 23:47:53 +01:00

73 lines
1.6 KiB
TypeScript

/**
* Centralized configuration for scripts
*
* All registry URLs, paths, and validation thresholds are defined here
* to avoid hardcoding values across multiple scripts.
*/
export const CONFIG = {
/**
* Registry configurations
*/
registry: {
verdaccio: {
url: process.env.VERDACCIO_URL || "https://npmjs.fq.io/",
webUrl: "https://npmjs.fq.io/-/web/detail",
},
gitlab: {
url:
process.env.GITLAB_REGISTRY ||
"https://gitlab.fq.io/api/v4/projects/2/packages/npm/",
apiKey: process.env.GITLAB_API_KEY,
},
},
/**
* Monorepo paths
*/
paths: {
root: process.env.MONOREPO_ROOT || process.cwd(),
/**
* Single root for all genesis workspace packages.
* Layout is `packages/<category>/<plugin>/<pkg>/` — see
* `discoverPackageDirs` in `./discover-packages.ts` for the 3-level
* walk (with 2-level and flat fallbacks).
*/
packagesRoot: "packages",
},
/**
* Quality and validation thresholds
*/
validation: {
minCoverage: 95,
minDocsCoverage: 90,
maxComplexity: 10,
maxMethodLines: 20,
maxClassLines: 200,
},
/**
* Build and test settings
*/
build: {
cacheDir: "node_modules/.vite",
distDir: "dist",
},
/**
* Exit codes for consistent error handling
*/
exitCodes: {
success: 0,
failure: 1,
partialSuccess: 2,
},
} as const;
/**
* Type-safe access to config values
*/
export type Config = typeof CONFIG;