J. S. Choi 6276853eb9 Add support for the "Hack" pipeline proposal (#13191)
Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
2021-08-03 23:30:16 +02:00

32 lines
833 B
JavaScript

import { declare } from "@babel/helper-plugin-utils";
import syntaxPipelineOperator from "@babel/plugin-syntax-pipeline-operator";
import minimalVisitor from "./minimalVisitor";
import hackVisitor from "./hackVisitor";
import fsharpVisitor from "./fsharpVisitor";
import smartVisitor from "./smartVisitor";
const visitorsPerProposal = {
minimal: minimalVisitor,
hack: hackVisitor,
fsharp: fsharpVisitor,
smart: smartVisitor,
};
export default declare((api, options) => {
api.assertVersion(7);
const { proposal } = options;
if (proposal === "smart") {
console.warn(
`The smart-mix pipe operator is deprecated. Use "proposal": "hack" instead.`,
);
}
return {
name: "proposal-pipeline-operator",
inherits: syntaxPipelineOperator,
visitor: visitorsPerProposal[options.proposal],
};
});