Project Files
dist / pathUtils.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isAbsolutePathLike = isAbsolutePathLike;
exports.normalizeTargetDir = normalizeTargetDir;
exports.resolveForgeTarget = resolveForgeTarget;
const path_1 = __importDefault(require("path"));
function isAbsolutePathLike(input) {
if (!input)
return false;
if (path_1.default.isAbsolute(input))
return true;
// Windows drive-letter or UNC style, even when running on a non-Windows host.
return /^[a-zA-Z]:[\\/]/.test(input) || /^\\\\/.test(input);
}
function normalizeTargetDir(input, fallback) {
const value = (input ?? "").trim();
return value.length ? value : fallback;
}
function resolveForgeTarget(workspaceRoot, targetDir) {
const trimmed = targetDir.trim();
if (!trimmed) {
throw new Error("target_dir is required");
}
if (isAbsolutePathLike(trimmed)) {
return path_1.default.resolve(trimmed);
}
const slug = trimmed
.toLowerCase()
.replace(/[^a-z0-9]+/g, "-")
.replace(/^-+|-+$/g, "")
.slice(0, 64) || "plugin";
return path_1.default.resolve(workspaceRoot, ".forge-generated", slug);
}