UNPKG

@patchworkdev/pdk

Version:

Patchwork Development Kit

42 lines (41 loc) 1.68 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")); const path_1 = __importDefault(require("path")); 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(directory, serviceName, instanceNumber = 1) { const sanitizedName = lodash_1.default.chain(path_1.default.basename(directory)) .kebabCase() .thru((name) => (/^[a-z]/.test(name) ? name : `project-${name}`)) .value(); return `${sanitizedName}-${serviceName}-${instanceNumber}`; } function getPonderContainerName(directory, instanceNumber = 1) { return getDockerContainerName(directory, 'ponder', instanceNumber); }