//////////////////////////////////////////////////////////////////////
// Copyright (C) Hiroshi SUGIMURA 2020.10.30
//////////////////////////////////////////////////////////////////////
/**
* @module mainUser
*/
'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 {{
* nickname: 'user',
* height: '165',
* weight: '65',
* age: '40',
* ampere: '30',
* debug: false
* }}
*/
let config = { // config.user
nickname: 'user',
height: '165',
weight: '65',
age: '40',
ampere: '30',
debug: false
};
//////////////////////////////////////////////////////////////////////
// ユーザー設定関連
/**
* @classdesc mainUser
*/
let mainUser = {
/**
* @async
* @function start
* @param _sendIPCMessage {Object} - sendIPCMessage Object
* @return {Promise<void>}
*/
start: async function ( _sendIPCMessage ) {
sendIPCMessage = _sendIPCMessage;
// config.user
config.nickname = await store.get('config.user.nickname', config.nickname);
config.height = await store.get('config.user.height', config.height);
config.weight = await store.get('config.user.weight', config.weight);
config.age = await store.get('config.user.age', config.age);
config.ampere = await store.get('config.user.ampere', config.ampere);
config.debug = await store.get('config.user.debug', config.debug);
config.debug?console.log( new Date().toFormat("YYYY-MM-DDTHH24:MI:SS"), '| mainUser.start()'):0;
},
/**
* @async
* @function stop
* @param {void}
* @return {Promise<void>}
*/
stop: async function () {
config.debug?console.log( new Date().toFormat("YYYY-MM-DDTHH24:MI:SS"), '| mainUser.stop()'):0;
await mainUser.setConfig( config );
},
/**
* @async
* @function setConfig
* @param {Object} _config
* @return {Promise<void>}
*/
setConfig: async function ( _config ) {
if( _config ) {
config = mergeDeeply( config, _config );
}
await store.set('config.user', config);
sendIPCMessage( "renewUserConfigView", config );
sendIPCMessage( "configSaved", "User" );
},
/**
* @async
* @function getConfig
* @param {void}
* @return {config}
*/
getConfig: function () {
return config;
}
};
module.exports = mainUser;
//////////////////////////////////////////////////////////////////////
// EOF
//////////////////////////////////////////////////////////////////////