'Serverless ewelink api

I've been trying to make ewelink-api to work on a web browser directl and not as "node script" I've followed the directions stated here: https://ewelink-api.vercel.app/docs/demos/serverless So i made the following html file:

<!DOCTYPE html>

<html>
  <head>
    <title>
        Test
    </title>
  </head>

  <body>
    <div id="demo"><div>
    
    <script>
      document.getElementById("demo").innerHTML = "Hello JavaScript!";
      //const ewelink = require('ewelink-api');
      
      /* first request: get access token and api key */
      (async () => {
        const connection = new ewelink({
          email: '[email protected]',
          password: 'mypassword',
          region: 'eu',
        });
        const login = await connection.getCredentials();
        const accessToken = login.at;
        const apiKey = login.user.apikey
        const region = login.region;
      })();
      
      /* second request: use access token to request devices */
      (async () => {
        const newConnection = new ewelink({
          at: accessToken,
          region: region
        });
        const devices = await newConnection.getDevices();
        console.log(devices);
      })();
    </script>
  </body>
</html>

And i was expecting to see some devices logged to console, but instead i get this error:

Uncaught (in promise) ReferenceError: ewelink is not defined

I've tried to add this line of code at the beggining:

const ewelink = require('ewelink-api'); but then i get this error:

Uncaught ReferenceError: require is not defined

Can anyone help me? Thanks.



Solution 1:[1]

require is for Node.JS (as phuzi states) , import is a Javascript/ECMAScript (for browsers) standard.

see https://fjolt.com/article/javascript-export-import-node-js

but 'ewelink-api' and ev. dependents may also uses require,
so you had to replace all, maybe RequireJS helps

see also Client on Node.js: Uncaught ReferenceError: require is not defined

btw: the two async-calls should (must) be nested to be executed in sequence, here they are executed concurrently, so accessToken ... will be undefined in newConnection

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Edgar Pilger