@pubgcorp/pk-template
Version:
p template engine for kubernetes
44 lines • 2.93 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PathResolver = void 0;
const url_1 = __importDefault(require("url"));
const path_1 = require("path");
const projectConf_1 = require("../pk-conf/projectConf");
const module_1 = require("../pk-conf/module");
class PathResolver {
constructor(uri) {
if (uri) {
this.uri = uri;
}
else {
this.uri = process.cwd();
}
}
resolve(rpath) {
if (!rpath) {
throw new Error(`invalid path (${rpath})`);
}
if (typeof rpath !== 'string') {
throw new Error(`path should be string (${rpath})`);
}
if (rpath.startsWith('~/')) {
const { projectRoot } = projectConf_1.PkProjectConf.find(this.uri);
if (projectRoot) {
return (0, path_1.join)(projectRoot, module_1.MODULE_DIR, rpath.substr(1));
}
throw new Error(`cannot resolve path ${rpath}, not in module`);
}
const isAbs = (0, path_1.isAbsolute)(rpath);
if (isAbs) {
return rpath;
}
// relative path
const resolved = url_1.default.resolve(this.uri, rpath);
return resolved;
}
}
exports.PathResolver = PathResolver;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aFJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BrLXRlbXBsYXRlL3BhdGhSZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsK0JBQXdDO0FBQ3hDLHdEQUF1RDtBQUN2RCw4Q0FBK0M7QUFFL0MsTUFBYSxZQUFZO0lBRXZCLFlBQVksR0FBdUI7UUFDakMsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztTQUNoQjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLEtBQUssR0FBRyxDQUFDLENBQUE7U0FDM0M7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRywyQkFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckQsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsT0FBTyxJQUFBLFdBQUksRUFBQyxXQUFXLEVBQUUsbUJBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkQ7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixLQUFLLGlCQUFpQixDQUFDLENBQUM7U0FDaEU7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFBLGlCQUFVLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsZ0JBQWdCO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLGFBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUFwQ0Qsb0NBb0NDIn0=