Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

eslint doesnt detect deconstruct variables

I have the following code:

    for ([uri, { socket, settings }] of map) {

        // parse websocket urls
        let url1 = new url.URL(ws.url);
        let url2 = new url.URL(uri);

        // override http(s) with ws(s)
        url2.protocol = url1.protocol;

        console.log(`Bridge "%s" <-> ${socket}://${host}:${port}`, url2);

        bridge(url2, settings, socket);

    }

which deconstruct variables, but eslint does not detect the variables:

/home/.../handler.js
  81:11  error  'uri' is not defined       no-undef
  81:18  error  'socket' is not defined    no-undef
  81:26  error  'settings' is not defined  no-undef
  85:32  error  'uri' is not defined       no-undef
  90:40  error  'socket' is not defined    no-undef
  90:52  error  'host' is not defined      no-undef
  90:60  error  'port' is not defined      no-undef
  92:22  error  'settings' is not defined  no-undef
  92:32  error  'socket' is not defined    no-undef

✖ 9 problems (9 errors, 0 warnings)

How can i tell the linter that its fine and the variables are detect properly?

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

.eslintrc.json

{
    "env": {
        "node": true,
        "commonjs": true,
        "es2021": true
    },
    "parserOptions": {
        "ecmaVersion": 12
    },
    "ignorePatterns": [
        "node_modules"
    ],
    "extends": [
        "eslint:recommended"
    ],
    "rules": {
        "semi": [
            "error",
            "always"
        ],
        "quotes": [
            "error",
            "double",
            {
                "avoidEscape": true, // Does not work https://eslint.org/docs/rules/quotes#avoidescape
                "allowTemplateLiterals": true
            }
        ]
    }
}

>Solution :

for of loop requires const, for(const

const map = [
  [
    "uri",
    {
      socket: "",
      settings: ''
    },
  ],
];

for (const [uri, { socket, settings }] of map) {
    console.log(uri, socket, settings);
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading