exhibit-plugin-serve
Version:
No-op transform that serves your filemap over HTTP as a side-effect.
33 lines (22 loc) • 2.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _pathToRegexp = require('path-to-regexp');
var _pathToRegexp2 = _interopRequireDefault(_pathToRegexp);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = (from, to) => {
const re = (0, _pathToRegexp2.default)(from);
const numKeys = re.keys.length;
const toPath = _pathToRegexp2.default.compile(to);
return requestedPath => {
const result = re.exec(requestedPath);
if (!result) return false;
const params = {};
for (let i = 0; i < numKeys; i += 1) {
params[re.keys[i].name] = result[i + 1];
}
return toPath(params);
};
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4aGliaXQtcGx1Z2luLXNlcnZlL2NvbXBpbGVSZWRpcmVjdC5qcyJdLCJuYW1lcyI6WyJmcm9tIiwidG8iLCJyZSIsIm51bUtleXMiLCJrZXlzIiwibGVuZ3RoIiwidG9QYXRoIiwiY29tcGlsZSIsInJlcXVlc3RlZFBhdGgiLCJyZXN1bHQiLCJleGVjIiwicGFyYW1zIiwiaSIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBOzs7Ozs7a0JBRWUsQ0FBQ0EsSUFBRCxFQUFlQyxFQUFmLEtBQThCO0FBQzNDLFFBQU1DLEtBQUssNEJBQWFGLElBQWIsQ0FBWDtBQUNBLFFBQU1HLFVBQVVELEdBQUdFLElBQUgsQ0FBUUMsTUFBeEI7O0FBRUEsUUFBTUMsU0FBMkMsdUJBQWFDLE9BQWIsQ0FBcUJOLEVBQXJCLENBQWpEOztBQUVBLFNBQVFPLGFBQUQsSUFBMkM7QUFDaEQsVUFBTUMsU0FBU1AsR0FBR1EsSUFBSCxDQUFRRixhQUFSLENBQWY7O0FBRUEsUUFBSSxDQUFDQyxNQUFMLEVBQWEsT0FBTyxLQUFQOztBQUViLFVBQU1FLFNBQVMsRUFBZjs7QUFFQSxTQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSVQsT0FBcEIsRUFBNkJTLEtBQUssQ0FBbEMsRUFBcUM7QUFDbkNELGFBQU9ULEdBQUdFLElBQUgsQ0FBUVEsQ0FBUixFQUFXQyxJQUFsQixJQUEwQkosT0FBT0csSUFBSSxDQUFYLENBQTFCO0FBQ0Q7O0FBRUQsV0FBT04sT0FBT0ssTUFBUCxDQUFQO0FBQ0QsR0FaRDtBQWFELEMiLCJmaWxlIjoiY29tcGlsZVJlZGlyZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcblxuaW1wb3J0IHBhdGhUb1JlZ2V4cCBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmV4cG9ydCBkZWZhdWx0IChmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgcmUgPSBwYXRoVG9SZWdleHAoZnJvbSk7XG4gIGNvbnN0IG51bUtleXMgPSByZS5rZXlzLmxlbmd0aDtcblxuICBjb25zdCB0b1BhdGg6ICh7IFtzdHJpbmddOiBzdHJpbmcgfSkgPT4gc3RyaW5nID0gcGF0aFRvUmVnZXhwLmNvbXBpbGUodG8pO1xuXG4gIHJldHVybiAocmVxdWVzdGVkUGF0aDogc3RyaW5nKTogc3RyaW5nIHwgZmFsc2UgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHJlLmV4ZWMocmVxdWVzdGVkUGF0aCk7XG5cbiAgICBpZiAoIXJlc3VsdCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgcGFyYW1zID0ge307XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUtleXM7IGkgKz0gMSkge1xuICAgICAgcGFyYW1zW3JlLmtleXNbaV0ubmFtZV0gPSByZXN1bHRbaSArIDFdO1xuICAgIH1cblxuICAgIHJldHVybiB0b1BhdGgocGFyYW1zKTtcbiAgfTtcbn07XG4iXX0=