validation
validation copied to clipboard
Unable to parse accessor function when using arrow functions with a block body
I'm submitting a bug report
-
Library Version: 2.0.0
-
Operating System: Windows 10
-
Node Version: 20.11.1
- NPM Version: 10.2.4
- JSPM OR Webpack AND Version webpack 5.90.3
-
Browser: all
-
Language: TypeScript 5.4.2
Current behavior:
I'm using Webpack 5 with new AureliaPlugin({dist: "es2015}) and typescript target: "es6".
This config causes a runtime error when using arrow functions with a block body as accessor functions:
Inner Error:
Message: Unable to parse accessor function:
(model) => {
return model.name;
}
Inner Error Stack:
Error: Unable to parse accessor function:
(model) => {
return model.name;
}
at getAccessorExpression (webpack-internal:///aurelia-validation:569:15)
at PropertyAccessorParser.parse (webpack-internal:///aurelia-validation:552:30)
at FluentEnsure.ensure (webpack-internal:///aurelia-validation:1651:44)
at ValidationRules.ensure (webpack-internal:///aurelia-validation:1715:58)
Workaround: instead of using
// failing accessor function
.ensure((model) => {
return model.name;
})
it is possible to use the old fashioned style or the one-liner
// working accessor functions
.ensure(function(model) {
return model.name;
})
.ensure((model) => model.name)
Expected/desired behavior:
- What is the expected behavior? Update arrow function regex to allow arrow functions with a function body. This could be handy to support automatically formatted code. https://github.com/aurelia/validation/blob/f1628a3ccf3d526b98dadeda7ac9672f70c20e37/src/property-accessor-parser.ts#L33
Hi @masquo, thank you for the issue. Would appreciate a pull request, if you feel like contributing.
OK, i will look in to it at the end of the week