nwjs-bootstrap2
Version:
Minimalistic NW.js app bootstrap 2
55 lines (50 loc) • 1.22 kB
JavaScript
import DB from "services/db";
import fs from "fs-extra";
const AppState = DB.getCollection("AppState");
/**
* Check if application is initialized
* @returns {Promise.<boolean>}
*/
async function isInitialized()
{
const AppCurrentState = await AppState.findOne({});
return AppCurrentState !== undefined && AppCurrentState.isInitialized === true;
}
/**
* Set application as initialized
* @returns {Promise.<object>}
*/
async function setInitialized()
{
return AppState.update({}, { $set: { isInitialized: true } }, { upsert: true });
}
/**
* Create required application folders
* @returns {Promise.<void>}
*/
async function createFolders()
{
const dataPath = nw.App.getDataPath();
const initFolders = [
"data",
"images",
];
await Promise.all(initFolders.map(function(folder) {
return fs.ensureDir(dataPath + "/" + folder);
}));
}
export default
{
/**
* Init application
* @returns {Promise.<void>}
*/
init: async function()
{
if (await isInitialized() === true) {
return;
}
await createFolders();
await setInitialized();
}
}