UNPKG

pk-template

Version:
43 lines 2.87 kB
"use strict"; 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