UNPKG

@patchworkdev/pdk

Version:

Patchwork Development Kit

41 lines (40 loc) 1.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProjectNameFromConfig = getProjectNameFromConfig; exports.getDockerContainerName = getDockerContainerName; exports.getPonderContainerName = getPonderContainerName; const promises_1 = __importDefault(require("fs/promises")); const lodash_1 = __importDefault(require("lodash")); async function getProjectNameFromConfig(configPath) { const content = await promises_1.default.readFile(configPath, 'utf8'); try { if (configPath.endsWith('.json')) { const config = JSON.parse(content); return config.name; } else { const match = content.match(/name:\s*["'](.+?)["']/); if (match && match[1]) { return match[1]; } } throw new Error('Project name not found in config file'); } catch (error) { console.error(`Error reading project name from config: ${error}`); throw error; } } function getDockerContainerName(projectName, serviceName, instanceNumber = 1) { const sanitizedName = lodash_1.default.chain(projectName) .kebabCase() .thru((name) => (/^[a-z]/.test(name) ? name : `project-${name}`)) .value(); return `${sanitizedName}-${serviceName}-${instanceNumber}`; } function getPonderContainerName(projectName, instanceNumber = 1) { return getDockerContainerName(projectName, 'ponder', instanceNumber); }