UNPKG

@pubgcorp/pk-template

Version:
44 lines 2.93 kB
"use strict"; 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=