Skip to content

Commit 97bbe67

Browse files
Merge pull request #28 from laravel/original-method-exports
Allow chaining of reserved JavaScript words from controllers
2 parents 93af826 + 7b85f2b commit 97bbe67

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

src/GenerateCommand.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,12 @@ private function writeControllerFile(Collection $routes, string $namespace): voi
138138
$defaultExport = $invokable->isNotEmpty() ? $invokable->first()->jsMethod() : last(explode('.', $namespace));
139139

140140
if ($invokable->isEmpty()) {
141+
$exportedMethods = $methods->map(fn (Route $route) => $route->jsMethod());
142+
$reservedMethods = $methods->filter(fn (Route $route) => $route->originalJsMethod() !== $route->jsMethod())->map(fn (Route $route) => $route->originalJsMethod().': '.$route->jsMethod());
143+
$exportedMethods = $exportedMethods->merge($reservedMethods);
144+
141145
$methodProps = "const {$defaultExport} = { ";
142-
$methodProps .= $methods->map(fn (Route $route) => $route->jsMethod())->unique()->implode(', ');
146+
$methodProps .= $exportedMethods->unique()->implode(', ');
143147
$methodProps .= ' }';
144148
} else {
145149
$methodProps = $methods->map(fn (Route $route) => $defaultExport.'.'.$route->jsMethod().' = '.$route->jsMethod())->unique()->implode(PHP_EOL);
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
import { expect, test } from "vitest";
2-
import {
2+
import DisallowedMethodNameController, {
33
deleteMethod,
44
method404,
55
} from "../workbench/resources/js/actions/App/Http/Controllers/DisallowedMethodNameController";
66

77
test("will append `method` to invalid methods", () => {
88
expect(method404.url()).toBe("/disallowed/404");
99
expect(deleteMethod.url()).toBe("/disallowed/delete");
10-
// expect(DisallowedMethodNameController.delete.url()).toBe(
11-
// "/disallowed/delete",
12-
// );
13-
// expect(DisallowedMethodNameController.method404.url()).toBe(
14-
// "/disallowed/404",
15-
// );
10+
expect(DisallowedMethodNameController.delete.url()).toBe(
11+
"/disallowed/delete",
12+
);
13+
expect(DisallowedMethodNameController[404].url()).toBe("/disallowed/404");
1614
});

0 commit comments

Comments
 (0)