"use strict";const t=require("../../../../../../../_virtual/formatters.js"),o=require("../../../../../@babel_types@7.18.7/node_modules/@babel/types/lib/index.js");Object.defineProperty(t.__exports,"__esModule",{value:!0});t.__exports.statements=t.__exports.statement=t.__exports.smart=t.__exports.program=t.__exports.expression=void 0;var a=o.__require();const{assertExpressionStatement:p}=a;function s(e){return{code:r=>`/* @babel/template */;
${r}`,validate:()=>{},unwrap:r=>e(r.program.body.slice(1))}}const _=s(e=>e.length>1?e:e[0]);t.__exports.smart=_;const u=s(e=>e);t.__exports.statements=u;const i=s(e=>{if(e.length===0)throw new Error("Found nothing to return.");if(e.length>1)throw new Error("Found multiple statements but wanted one");return e[0]});t.__exports.statement=i;const n={code:e=>`(
${e}
)`,validate:e=>{if(e.program.body.length>1)throw new Error("Found multiple statements but wanted one");if(n.unwrap(e).start===0)throw new Error("Parse result included parens.")},unwrap:({program:e})=>{const[r]=e.body;return p(r),r.expression}};t.__exports.expression=n;const m={code:e=>e,validate:()=>{},unwrap:e=>e.program};t.__exports.program=m;module.exports=t.__exports;
//# sourceMappingURL=formatters.js.map
