Skip to content

Commit 880b5b7

Browse files
committed
feat: display route closure listArgs when listing routes
1 parent ddf0c5c commit 880b5b7

File tree

4 files changed

+23
-7
lines changed

4 files changed

+23
-7
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
"@adonisjs/fold": "^10.1.3",
134134
"@adonisjs/hash": "^9.0.5",
135135
"@adonisjs/health": "^2.0.0",
136-
"@adonisjs/http-server": "^7.3.0",
136+
"@adonisjs/http-server": "^7.4.0",
137137
"@adonisjs/logger": "^6.0.5",
138138
"@adonisjs/repl": "^4.0.1",
139139
"@antfu/install-pkg": "^0.5.0",

providers/edge_provider.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,11 @@ export default class EdgeServiceProvider {
9494
* explicit handler
9595
*/
9696
BriskRoute.macro('render', function (this: BriskRoute, template, data) {
97-
return this.setHandler(({ view }) => {
97+
function rendersTemplate({ view }: HttpContext) {
9898
return view.render(template, data)
99-
})
99+
}
100+
Object.defineProperty(rendersTemplate, 'listArgs', { value: template, writable: false })
101+
return this.setHandler(rendersTemplate)
100102
})
101103

102104
edge.use(pluginEdgeDumper(dumper))

src/cli_formatters/routes_list.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ type SerializedRoute = {
2323
methods: string[]
2424
middleware: string[]
2525
handler:
26-
| { type: 'closure'; name: string }
26+
| { type: 'closure'; name: string; args?: string }
2727
| { type: 'controller'; moduleNameOrPath: string; method: string }
2828
}
2929

@@ -186,6 +186,7 @@ export class RoutesListFormatter {
186186
return {
187187
type: 'closure' as const,
188188
name: handler.name || 'closure',
189+
args: 'listArgs' in handler ? String(handler.listArgs) : undefined,
189190
}
190191
}
191192

@@ -253,9 +254,16 @@ export class RoutesListFormatter {
253254
* Formats action name for the ansi list and table
254255
*/
255256
#formatAction(route: SerializedRoute) {
256-
return route.handler.type === 'controller'
257-
? `${this.#colors.cyan(route.handler.method)}`
258-
: ` ${this.#colors.cyan(route.handler.name)}`
257+
if (route.handler.type === 'controller') {
258+
return `${this.#colors.cyan(route.handler.method)}`
259+
}
260+
261+
const functionName = ` ${this.#colors.cyan(route.handler.name)}`
262+
if (route.handler.args) {
263+
return ` ${functionName}(${route.handler.args})`
264+
}
265+
266+
return functionName
259267
}
260268

261269
/**

tests/cli_formatters/routes_list.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ test.group('Formatters | List routes | toJSON', () => {
126126
handler: {
127127
type: 'closure',
128128
name: 'closure',
129+
args: undefined,
129130
},
130131
middleware: [],
131132
},
@@ -136,6 +137,7 @@ test.group('Formatters | List routes | toJSON', () => {
136137
handler: {
137138
type: 'closure',
138139
name: 'closure',
140+
args: undefined,
139141
},
140142
middleware: [],
141143
},
@@ -270,6 +272,7 @@ test.group('Formatters | List routes | toJSON', () => {
270272
handler: {
271273
type: 'closure',
272274
name: 'closure',
275+
args: undefined,
273276
},
274277
middleware: [],
275278
},
@@ -280,6 +283,7 @@ test.group('Formatters | List routes | toJSON', () => {
280283
handler: {
281284
type: 'closure',
282285
name: 'closure',
286+
args: undefined,
283287
},
284288
middleware: [],
285289
},
@@ -616,6 +620,7 @@ test.group('Formatters | List routes | filters', () => {
616620
handler: {
617621
type: 'closure',
618622
name: 'closure',
623+
args: undefined,
619624
},
620625
middleware: [],
621626
},
@@ -626,6 +631,7 @@ test.group('Formatters | List routes | filters', () => {
626631
handler: {
627632
type: 'closure',
628633
name: 'closure',
634+
args: undefined,
629635
},
630636
middleware: [],
631637
},

0 commit comments

Comments
 (0)