s2s
Version:
Source To Source
37 lines (27 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.selectHandler = selectHandler;
var _micromatch = _interopRequireDefault(require("micromatch"));
var _s2sHandlerBabelNext = _interopRequireDefault(require("s2s-handler-babel-next"));
var _s2sHandlerTypescript = _interopRequireDefault(require("s2s-handler-typescript"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const DEFAULT_HANDLE_MAPPER = {
'*.(js|jsx)': _s2sHandlerBabelNext.default,
'*.(ts|tsx)': _s2sHandlerTypescript.default
};
function selectHandler(handlerMapper, handler, filepath) {
if (handler) {
return handler;
}
const finalHandlerMapper = Object.keys(handlerMapper).length > 0 ? handlerMapper : DEFAULT_HANDLE_MAPPER;
for (const key of Object.keys(finalHandlerMapper)) {
if (_micromatch.default.isMatch(filepath, key, {
matchBase: true
})) {
return finalHandlerMapper[key];
}
}
throw new Error('any handlers not match');
}