From 580e798e16346eb894eb899edac82d2efdf40adc Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sat, 18 Apr 2026 22:32:53 -0500 Subject: initial commit --- node_modules/@babel/template/lib/formatters.js | 61 ++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 node_modules/@babel/template/lib/formatters.js (limited to 'node_modules/@babel/template/lib/formatters.js') diff --git a/node_modules/@babel/template/lib/formatters.js b/node_modules/@babel/template/lib/formatters.js new file mode 100644 index 0000000..3e284d1 --- /dev/null +++ b/node_modules/@babel/template/lib/formatters.js @@ -0,0 +1,61 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.statements = exports.statement = exports.smart = exports.program = exports.expression = void 0; +var _t = require("@babel/types"); +const { + assertExpressionStatement +} = _t; +function makeStatementFormatter(fn) { + return { + code: str => `/* @babel/template */;\n${str}`, + validate: () => {}, + unwrap: ast => { + return fn(ast.program.body.slice(1)); + } + }; +} +const smart = exports.smart = makeStatementFormatter(body => { + if (body.length > 1) { + return body; + } else { + return body[0]; + } +}); +const statements = exports.statements = makeStatementFormatter(body => body); +const statement = exports.statement = makeStatementFormatter(body => { + if (body.length === 0) { + throw new Error("Found nothing to return."); + } + if (body.length > 1) { + throw new Error("Found multiple statements but wanted one"); + } + return body[0]; +}); +const expression = exports.expression = { + code: str => `(\n${str}\n)`, + validate: ast => { + if (ast.program.body.length > 1) { + throw new Error("Found multiple statements but wanted one"); + } + if (expression.unwrap(ast).start === 0) { + throw new Error("Parse result included parens."); + } + }, + unwrap: ({ + program + }) => { + const [stmt] = program.body; + assertExpressionStatement(stmt); + return stmt.expression; + } +}; +const program = exports.program = { + code: str => str, + validate: () => {}, + unwrap: ast => ast.program +}; + +//# sourceMappingURL=formatters.js.map -- cgit v1.2.3