var fs = require('fs'); const SerAny = require('serialize-anything'); import { Socket } from 'socket.io'; function savesess(args:Array, sessions:any, filesystem:any, curdir:any, buffer:{ [id: string]: string }, socket:Socket):string { var buf = ""; //get password from environment variable or use kryptic let pwd = process.env.PWD || "kryptic"; if (args.length == 2) { if (args[0] == pwd) { sessions[args[1]] = []; //sessions[args[1]]["buffer"] = buffer[socket.id]; //replace all occurences of passord with [REDACTED] sessions[args[1]]["buffer"] = buffer[socket.id].replace(new RegExp(pwd, 'g'), "[REDACTED]"); sessions[args[1]]["filesystem"] = JSON.parse(JSON.stringify(filesystem[socket.id])); sessions[args[1]]["curdir"] = JSON.parse(JSON.stringify(curdir[socket.id])); var data = SerAny.serialize(sessions); //write all sessions to a single file called sessions.json fs.writeFileSync("./sessions.json", data); buf += "Session saved.\n"; } else { buf += "Wrong password."; } } else { buf += "Wrong number of arguments."; } return buf; } export { savesess };