( code: string, parserOpts: ParserOpts, syntacticPlaceholders?: boolean, )
| 190 | }; |
| 191 | |
| 192 | function parseWithCodeFrame( |
| 193 | code: string, |
| 194 | parserOpts: ParserOpts, |
| 195 | syntacticPlaceholders?: boolean, |
| 196 | ): t.File { |
| 197 | const plugins = (parserOpts.plugins || []).slice(); |
| 198 | if (syntacticPlaceholders !== false) { |
| 199 | plugins.push("placeholders"); |
| 200 | } |
| 201 | |
| 202 | parserOpts = { |
| 203 | allowAwaitOutsideFunction: true, |
| 204 | allowReturnOutsideFunction: true, |
| 205 | allowNewTargetOutsideFunction: true, |
| 206 | allowSuperOutsideMethod: true, |
| 207 | allowYieldOutsideFunction: true, |
| 208 | sourceType: "module", |
| 209 | ...parserOpts, |
| 210 | plugins, |
| 211 | }; |
| 212 | |
| 213 | try { |
| 214 | return parse(code, parserOpts); |
| 215 | } catch (err) { |
| 216 | const loc = err.loc; |
| 217 | if (loc) { |
| 218 | err.message += "\n" + codeFrameColumns(code, { start: loc }); |
| 219 | err.code = "BABEL_TEMPLATE_PARSE_ERROR"; |
| 220 | } |
| 221 | throw err; |
| 222 | } |
| 223 | } |
no test coverage detected