validation icon indicating copy to clipboard operation
validation copied to clipboard

Unable to parse accessor function when using arrow functions with a block body

Open masquo opened this issue 1 year ago • 2 comments

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

masquo avatar Apr 15 '24 12:04 masquo

Hi @masquo, thank you for the issue. Would appreciate a pull request, if you feel like contributing.

Sayan751 avatar Apr 15 '24 19:04 Sayan751

OK, i will look in to it at the end of the week

masquo avatar Apr 16 '24 14:04 masquo