Tracer un Electron
CSV exporter.

Suivez un clic de bouton depuis l'API de la page, via Electron IPC, vers le graveur de fichiers CSV.

Où va “Exporter les notes"?

Ce guide utilise une petite application Electron. En cliquant Exporter des notes appelle une API dans la page, traverse le processus principal et écrit un CSV . Le comportement est réparti sur plusieurs fichiers.

L'exportation de CSV à travers les processus Electron

  1. Moteur de rendu → préchargementnotes.exportCsv()renderer.js appelle l'API exposée par preload.js.
  2. Entre les processusnotes:exportLa précharge appelle un canal IPC: un message nommé au processus principal.
  3. Processus principalUn gestionnaire d'exportationmain.js gère ce canal et appelle l'écrivain CSV.

csv.js formate les notes → main.js écrit downloads/notes.csv.

REA fait correspondre l'appel IPC littéral à son gestionnaire et identifie l'API exposée. Le chemin est déduit du code; une capture d'exécution peut vérifier ce qui s'exécute.

Renseignez - vous sur l'exportation CSV

Connectez votre agent à REA et donnez-lui le répertoire de l'application ou le fichier ASAR:

Votre agent de codage

Utilisez REA pour savoir ce qui se passe lorsque j'exporte des notes dans cette application. Où est créé le CSV?

Exemple d'invite. Inclure le chemin absolu vers le dossier de l'application ou app.asar.

REA lit les fichiers d'application et construit une carte des points d'entrée, des modules et des limites de processus. Votre agent utilise cette carte pour restreindre l'enquête à la fonction d'exportation.

Tracer le code d'exportation

La page appelle une petite API

renderer.js * exemple de source
document.querySelector("#export").addEventListener("click", async () => {
  const destination = await window.notes.exportCsv();
  document.querySelector("#status").textContent = `Saved to ${destination}`;
});

La page connaît le nom de la méthode. L'implémentation vit dans la précharge, ce qui l'expose au moteur de rendu.

preload.js * exemple de source
contextBridge.exposeInMainWorld("notes", {
  exportCsv: () => ipcRenderer.invoke("notes:export"),
});

Enregistrements REA notes.exportCsv et le canal littéral notes:export. Il associe cette invocation au seul gestionnaire correspondant dans le processus principal.

main.js * exemple de source
ipcMain.handle("notes:export", () => {
  const destination = path.join(app.getPath("downloads"), "notes.csv");
  writeFileSync(destination, toCsv(notes), "utf8");
  return destination;
});

La lecture du gestionnaire répond à la question initiale: csv.js formate les notes et le processus principal écrit notes.csv dans le dossier Téléchargements de l'utilisateur.

Résultat de REA * résumé.extrait de la CIB
{
  "literal_channels": 1,
  "renderer_transmissions": 1,
  "main_handlers": 1,
  "paired_renderer_transmissions": 1,
  "ambiguous_renderer_transmissions": 0
}

Enregistré par REA 4.1.0 sur l'exemple téléchargeable ci-dessous. Les emplacements sources accompagnent les résultats de l'API, du canal et du gestionnaire.

Analysez l'exemple vous-même

Téléchargez l'exemple et décompressez-le. L'archive contient l'intégralité notes-example dossier. Analysez-le avec Node.js et npm; Electron n'est pas nécessaire pour cet exemple.

Télécharger un exemple de ZIP

Parcourez les six fichiers sources
Analyse statique des applications
npx -y rea-agents@latest analyze-javascript-application \
  /absolute/path/to/notes-example --json

Remplacez le chemin par le dossier que vous avez décompressé. Vous devriez trouver un canal IPC et un gestionnaire correspondant dans normalized_result.summary.ipc. Les emplacements sources sont en normalized_result.graph.

Pour votre propre application, utilisez la même commande avec son répertoire ou son chemin ASAR. Un agent peut suivre une chaîne littérale, un nom d'API ou un canal IPC avec les outils de traçage des fonctionnalités de REA.

Inspectez le graveur CSV

Suivre notes:export à son gestionnaire. Quelles entrées atteignent le graveur CSV et que se passe-t-il si l'écriture du fichier échoue?

Utilisez les emplacements sources pour inspecter ces détails. Les noms de canaux calculés et les gestionnaires ambigus peuvent rester non résolus; les observations d'exécution vous donnent un autre moyen de les étudier.

Haut