pk-template
Version:
p template engine for kubernetes
43 lines • 2.87 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
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 path_1.join(projectRoot, module_1.MODULE_DIR, rpath.substr(1));
}
throw new Error(`cannot resolve path ${rpath}, not in module`);
}
const isAbs = 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aFJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BrLXRlbXBsYXRlL3BhdGhSZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUFzQjtBQUN0QiwrQkFBd0M7QUFDeEMsd0RBQXVEO0FBQ3ZELDhDQUErQztBQUUvQyxNQUFhLFlBQVk7SUFFdkIsWUFBWSxHQUF1QjtRQUNqQyxJQUFJLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1NBQ2hCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsS0FBYTtRQUNuQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxHQUFHLENBQUMsQ0FBQTtTQUMzQztRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDckQ7UUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLDJCQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyRCxJQUFJLFdBQVcsRUFBRTtnQkFDZixPQUFPLFdBQUksQ0FBQyxXQUFXLEVBQUUsbUJBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkQ7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixLQUFLLGlCQUFpQixDQUFDLENBQUM7U0FDaEU7UUFFRCxNQUFNLEtBQUssR0FBRyxpQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELGdCQUFnQjtRQUNoQixNQUFNLFFBQVEsR0FBRyxhQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBcENELG9DQW9DQyJ9