//////////////////////////////////////////////////////////////////////
// Copyright (C) Hiroshi SUGIMURA 2020.10.30
//////////////////////////////////////////////////////////////////////
/**
* @module mainSystem
*/
'use strict'
//////////////////////////////////////////////////////////////////////
// 基本ライブラリ
const Store = require('electron-store');
const { objectSort, getNow, getToday, isObjEmpty, mergeDeeply } = require('./mainSubmodule');
// 基礎設定
const appDir = process.env.NODE_ENV === 'development' ? __dirname : __dirname;
let sendIPCMessage = null;
const store = new Store();
/**
* @type {{
* screenMode: 'user',
* windowWidth: '165',
* windowHeight: '65',
* resultExpireDays: '40',
* ellogExpireDays: '30',
* IPver: 0,
* IPv4: '',
* IPv6: '',
* debug: false
* }}
*/
let config = { // config.system
screenMode: 'window',
windowWidth: 1024,
windowHeight: 768,
resultExpireDays: 365,
ellogExpireDays: 30,
IPver: 0,
IPv4: '',
IPv6: '',
debug: false
};
//////////////////////////////////////////////////////////////////////
// EL関連
let mainSystem = {
/**
* @async
* @function start
* @callback {sendIPCMessage} sendIPCMessage
* @return {void}
*/
start: async function (_sendIPCMessage) {
sendIPCMessage = _sendIPCMessage;
// config.system
config.screenMode = await store.get('config.system.screenMode', config.screenMode);
config.windowWidth = await store.get('config.system.windowWidth', config.windowWidth);
config.windowHeight = await store.get('config.system.windowHeight', config.windowHeight);
config.resultExpireDays = await store.get('config.system.resultExpireDays', config.resultExpireDays);
config.ellogExpireDays = await store.get('config.system.ellogExpireDays', config.ellogExpireDays);
config.IPver = await store.get('config.system.IPver', config.IPver);
config.IPv4 = await store.get('config.system.IPv4', config.IPv4);
config.IPv6 = await store.get('config.system.IPv6', config.IPv6);
config.debug = await store.get('config.system.debug', config.debug);
config.debug ? console.log(new Date().toFormat("YYYY-MM-DDTHH24:MI:SS"), '| mainSystem.start()') : 0;
},
/**
* @async
* @function stop
* @param {void}
* @return {void}
*/
stop: async function () {
config.debug ? console.log(new Date().toFormat("YYYY-MM-DDTHH24:MI:SS"), '| mainSystem.stop()') : 0;
await mainSystem.setConfig(config);
},
/**
* @async
* @function setConfig
* @param {config} [config]
* @return {config}
*/
setConfig: async function (_config) {
if (_config) {
config = mergeDeeply(config, _config);
}
await store.set('config.system', config);
sendIPCMessage("renewSystemConfigView", config);
sendIPCMessage("configSaved", 'System');
},
/**
* @function getConfig
* @param {void}
* @return {config}
*/
getConfig: function () {
return config;
}
};
module.exports = mainSystem;
//////////////////////////////////////////////////////////////////////
// EOF
//////////////////////////////////////////////////////////////////////