@soubhikchatterjee/tunnel-agent
Version:
Expose your local server to the outside world!
53 lines (43 loc) • 1.2 kB
JavaScript
;
const os = require("os");
const fs = require("fs");
const path = require("path");
function initConfig() {
const configDir = path.resolve(os.homedir(), ".tunnel-agent");
let configFilePath = path.join(configDir, "profile.json");
if (!fs.existsSync(configDir)) {
fs.mkdirSync(configDir);
fs.writeFileSync(configFilePath, "");
}
return configFilePath;
}
function getConfig() {
const configFilePath = initConfig();
let config = {};
// const configFilePath = path.resolve(configDir, `${options.profile}.json`);
if (fs.existsSync(configFilePath)) {
try {
config = JSON.parse(fs.readFileSync(configFilePath, "utf8"));
} catch (error) {}
}
// if (!config.server) {
// throw new Error("Remote tunnel server not set!");
// }
// if (!config.jwtToken) {
// throw new Error(`Please set jwt token for ${config.server}`);
// }
return config;
}
function setConfig(options = {}) {
const configFilePath = initConfig();
const config = {
...getConfig(),
...options,
};
fs.writeFileSync(configFilePath, JSON.stringify(config, null, 2));
return config;
}
module.exports = {
getConfig,
setConfig,
};