mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Fix case normalization for w-on migration (#1475)
This commit is contained in:
parent
2c6bcf7d6f
commit
32693baca4
@ -19,9 +19,21 @@ module.exports = function migrate(el, context) {
|
||||
context.setMigrationFlag("legacyWidgetAttrsWithoutBind");
|
||||
}
|
||||
|
||||
name = name.substring("w-on".length);
|
||||
if (name.startsWith("-")) name = name.substring("-".length);
|
||||
attr.name = `on${name.charAt(0).toUpperCase() + name.slice(1)}`;
|
||||
name = name.slice("w-on".length);
|
||||
const isNativeTag = el.tagDef && el.tagDef.html;
|
||||
const isCamelCase = name[0] !== "-";
|
||||
|
||||
if (isNativeTag) {
|
||||
name = name.toLowerCase();
|
||||
} else if (isCamelCase) {
|
||||
name = name[0].toLowerCase() + name.slice(1);
|
||||
}
|
||||
|
||||
if (isCamelCase) {
|
||||
name = "-" + name;
|
||||
}
|
||||
|
||||
attr.name = `on${name}`;
|
||||
attr.argument = printJS(attr.value, context);
|
||||
attr.value = null;
|
||||
});
|
||||
|
||||
@ -0,0 +1 @@
|
||||
<div/>
|
||||
@ -1,7 +1,21 @@
|
||||
<!-- test/migrate/fixtures/w-on/template.marko -->
|
||||
|
||||
<marko-migration-flags legacyWidgetAttrsWithoutBind/>
|
||||
<div onClick("handleClick")>
|
||||
<input onChange("handleChange")/>
|
||||
<div
|
||||
on-click("handleClick")
|
||||
on-change("handleChange")
|
||||
on-dash-case("...")
|
||||
on-dash-case("...")
|
||||
on-camelcase("...")
|
||||
on-pascalcase("...")>
|
||||
Hello World
|
||||
</div>
|
||||
<some-tag
|
||||
on-click("handleClick")
|
||||
on-change("handleChange")
|
||||
on-dash-case("...")
|
||||
on-dash-case("...")
|
||||
on-camelCase("...")
|
||||
on-PascalCase("...")>
|
||||
Hello World
|
||||
</some-tag>
|
||||
|
||||
@ -1,4 +1,19 @@
|
||||
<div w-on-click="handleClick">
|
||||
<input w-onChange="handleChange"/>
|
||||
<div
|
||||
w-on-click="handleClick"
|
||||
w-onChange="handleChange"
|
||||
w-on-dash-case="..."
|
||||
w-onDash-case="..."
|
||||
w-onCamelCase="..."
|
||||
w-on-PascalCase="...">
|
||||
Hello World
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<some-tag
|
||||
w-on-click="handleClick"
|
||||
w-onChange="handleChange"
|
||||
w-on-dash-case="..."
|
||||
w-onDash-case="..."
|
||||
w-onCamelCase="..."
|
||||
w-on-PascalCase="...">
|
||||
Hello World
|
||||
</some-tag>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user