MCPcopy Index your code
hub / github.com/adonisjs/core / pluginEdgeDumper

Function pluginEdgeDumper

modules/dumper/plugins/edge.ts:17–88  ·  view source on GitHub ↗
(dumper: Dumper)

Source from the content-addressed store, hash-verified

15 * dumper instance
16 */
17export function pluginEdgeDumper(dumper: Dumper) {
18 Template.macro('dumper' as any, dumper)
19
20 return (edge: Edge) => {
21 edge.registerTag({
22 tagName: 'dump',
23 block: false,
24 seekable: true,
25 noNewLine: true,
26 compile(parser, buffer, token) {
27 const parsed = parser.utils.transformAst(
28 parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename),
29 token.filename,
30 parser
31 )
32
33 buffer.writeExpression(
34 `template.stacks.pushOnceTo('dumper', 'dumper_globals', template.dumper.getHeadElements(state.cspNonce))`,
35 token.filename,
36 token.loc.start.line
37 )
38
39 buffer.outputExpression(
40 `template.dumper.dumpToHtml(${parser.utils.stringify(parsed)}, { cspNonce: state.cspNonce, source: { location: $filename, line: $lineNumber } })`,
41 token.filename,
42 token.loc.start.line,
43 true
44 )
45 },
46 })
47
48 edge.registerTag({
49 tagName: 'dd',
50 block: false,
51 seekable: true,
52 noNewLine: true,
53 compile(parser, buffer, token) {
54 const parsed = parser.utils.transformAst(
55 parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename),
56 token.filename,
57 parser
58 )
59
60 /**
61 * Dump/Die statement to catch error and convert it into
62 * an Edge error
63 */
64 const ddStatement = [
65 'try {',
66 ` template.dumper.dd(${parser.utils.stringify(parsed)})`,
67 '} catch (error) {',
68 ` if (error.code === 'E_DUMP_DIE_EXCEPTION') {`,
69 ' const edgeError = template.createError(error.message, $filename, $lineNumber)',
70 ' error.fileName = $filename',
71 ' error.lineNumber = $lineNumber',
72 ' edgeError.handle = function (_, ctx) {',
73 ' return error.handle(error, ctx)',
74 ' }',

Callers 1

bootMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected