Simulador Cajero

Hola me pasaron un código en python de simulacion de una cajero para pasarlo a Javascript , que me podrian decir----

archivo 1 component.js

const nameUser = "nemesis";
const password = 3321;
var section = true;
export var balance = 10000;

function validateUser(us = "nouser", pw = 0) {
  if (
    typeof pw.value !== "number" ||
    Math.sign(pw.value) === -1 ||
    !pw.value ||
    isNaN(pw.value)
  )
    return false;
  if (typeof us.value !== "string" || !us.value) return false;
  if (pw.value === undefined && us.value === undefined) return false;
  if (us.value == null || us.value.length == 0 || /^\s+$/.test(us.value))
    return false;

  if (us.value === nameUser && pw.value === password)
    return alert("BIENVENIDO!!!");
  return false;
}

export function login(us, pw) {
  us = prompt("Digite Usuario");
  pw = prompt("digite su contraseña");

  validateUser(us, pw);
}

//validar retiros
function withdrawals(amount) {
  if (amount > balance)
    alert(`No se puede realizar su retiro su saldo es: ${balance}`);
  return balance - amount;
}

function deposit() {
  let amount = prompt("confirme el valor a consignar");
  amount = parseInt(amount);
  let newbalance = balance + amount;
  alert(newbalance);
}

function checkbalance() {
  alert(balance);
}

export function action(option) {
  // Consignar
  if (option === "1") {
    // let amount = prompt("Digite el valor a consignar");
    return deposit();
  }

  // Retirar
  else if (option === "2") {
    let amount = prompt("Digite el valor a retirar");
    amount = parseInt(amount);
    return withdrawals(amount);
  }

  // Saldo
  else if (option === "3") {
    return checkbalance();
  } else {
    return balance;
  }
}

Archivo 2, llamado index2.js

import { action } from "./build/module/component.js";
import { login } from "./build/module/component.js";
import { balance } from "./build/module/component.js";

function run() {
  login();

  var option = prompt("1 => Consignar, 2 => Retirar, 3 => Consultar saldo: ");

  if (option === "0" || option > "3") {
    alert(`Favor digite una opccion entre 1 y 3, ${balance}`);
  } else {
    alert(`Acción realizada correctamente, saldo:, ${balance}`);
    action(option);
  }
}

run();

Hola @pluisfer,

Se nos pasó esta pregunta, quizá ya sea tarde pero igual la voy a responder por si le sirve a alguien más.

En general yo te recomendaría dejar todo lo que tiene que ver con la consola (interfaz de usuario) en un archivo y la lógica del cajero en otra. Por ejemplo, el archivo principal index.js puede tener la interfaz de usuario y el archivo atm.js podría tener la lógica del cajero:

import atm from 'atm'

function run() {
  login()
}

funciton login() { 
  // ... 
}

function withdraw() { 
  // ... 
}

// otras funciones relacionadas con la interfaz de usuario

run()

Y en atm.js sólo la lógica del cajero, no debería tener nada de prompt o console.log:

const atm = {
  balance: 10000,
  deposit(amount) {
    this.balance += amount
  },
  widthraw(amount) {
    this.balance -= amount
  },
  // ....
}

export default atm

Fíjate que utilicé un objeto para representar el cajero en vez de dejar variables sueltas.