reference Rule options

arrow_is_function

Value
true or false
Default
true
See also
flddef_assign

Two function forms match each other while this option is on:

With arrow_is_function: false, each pattern matches only its own form.

Examples

Callbacks

The rule route-handler turns the option off.

handlers.yaml
rules:  - id: route-handler-default    pattern: app.get($PATH, function (...) { ... })    message: route handler    languages: [javascript]    severity: WARNING  - id: route-handler    pattern: app.get($PATH, function (...) { ... })    message: route handler    languages: [javascript]    severity: WARNING    options:      arrow_is_function: false
handlers.js
// ruleid: route-handler-default, route-handlerapp.get("/", function (req, res) { res.send("hi"); });// ruleid: route-handler-defaultapp.get("/a", (req, res) => { res.send("hi"); });// ruleid: route-handler-defaultapp.get("/b", (req, res) => res.send("hi"));
Command and result
$ opengrep test .
2/2: ✓ All tests passed
No tests for fixes found.

Functions held in variables

declared.yaml
rules:  - id: request-handler-default    pattern: function $F(req) { ... }    message: request handler    languages: [javascript]    severity: WARNING  - id: request-handler    pattern: function $F(req) { ... }    message: request handler    languages: [javascript]    severity: WARNING    options:      arrow_is_function: false
declared.js
// ruleid: request-handler-default, request-handlerfunction a(req) { return 1; }// ruleid: request-handler-defaultconst b = (req) => { return 1; };// ruleid: request-handler-defaultconst c = function (req) { return 1; };
Command and result
$ opengrep test .
2/2: ✓ All tests passed
No tests for fixes found.