astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
35 lines (28 loc) • 1 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = compileSpreadElementMatcher;
var _Placeholder = _interopRequireDefault(require("./Placeholder"));
function compileSpreadElementMatcher(path, compileOptions) {
var n = compileOptions.backend.t.namedTypes;
var argument = path.value.argument;
if (n.Identifier.check(argument)) {
var capture = (0, _Placeholder["default"])(path, argument.name, compileOptions, {
nodeType: 'ObjectMember'
});
if (capture) {
var restPlaceholder = capture.arrayPlaceholder || capture.restPlaceholder;
if (restPlaceholder) {
return {
pattern: path,
restPlaceholder: restPlaceholder,
match: function match() {
throw new Error("rest capture placeholder ".concat(restPlaceholder, " is in an invalid position"));
}
};
}
}
}
}