freebox icon indicating copy to clipboard operation
freebox copied to clipboard

Problème d'import avec la v2.0.0

Open pierrbt opened this issue 1 year ago • 0 comments

Salut, je viens d'essayer d'installer la librairie pour un projet personnel, et j'ai remarqué dans les commits que tu as remplacé la manière d'importer les paquets par la méthode CommonJS, mais cette méthode ne fonctionne pas pour les paquets externes, j'utilise Typescript, et j'ai essayé dans un contexte NextJS et avec TS-Node mais aucun ne marche. J'ai essayé de mettre la 1.3.4 et ça marche parfaitment avec la Freebox Delta, mais la 2.0.0 ne marche pas :

C:\Users\pierr\Downloads\node-typescript-template-master\node_modules\.pnpm\[email protected]\node_modules\freebox\index.js:1
import https from 'node:https';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at internalCompileFunction (node:internal/vm:73:18)
    at wrapSafe (node:internal/modules/cjs/loader:1149:20)
    at Module._compile (node:internal/modules/cjs/loader:1190:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
    at Object.require.extensions.<computed> [as .js] (C:\Users\pierr\Downloads\node-typescript-template-master\node_modules\.pnpm\[email protected]_@[email protected][email protected]\node_modules\ts-node\src\index.ts:1608:43)
    at Module.load (node:internal/modules/cjs/loader:1089:32)
    at Function.Module._load (node:internal/modules/cjs/loader:930:12)
    at Module.require (node:internal/modules/cjs/loader:1113:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (C:\Users\pierr\Downloads\node-typescript-template-master\src\index.ts:1:1)
[nodemon] app crashed - waiting for file changes before starting...

Avec la 1.3.4 :

Please check your Freebox Server LCD screen and authorize application access to register your app.
Your app has been granted access !
Save safely those following informations secret to connect to your Freebox API:
{
  app_token: '*****************************',
  app_id: 'fbx.delta',
  api_domain: '*****************************',
  https_port: 701,
  api_base_url: '/api/',
  api_version: '10.2'
}

Ca vient donc forcément des imports, mais voici tout de même mon code :

import { Freebox, FreeboxRegister } from "freebox";
import { readFile, writeFile } from "fs/promises";
import {existsSync} from "fs";
import { join } from "path";

async function main() {
  const file = join(__dirname, "../freebox.json");
  let preferences: any;

  if (!existsSync(file)) {
    const freeboxRegister = new FreeboxRegister({
      app_id: "fbx.delta",
      app_name: "YggDownloaderApp",
      app_version: "1.0.0",
      device_name: "YggServer",
    });

    preferences = await freeboxRegister.register();
    await writeFile(file, JSON.stringify(preferences));
  } else {
    preferences = JSON.parse((await readFile(file)).toString());
  }

  const freebox = new Freebox({
    ...preferences,
  });

  await freebox.login();

  const response = await freebox.request({
    method: "GET",
    url: "wifi/config",
  });

  console.log(response);
  await freebox.logout();
}

main();

pierrbt avatar Sep 02 '23 12:09 pierrbt