From 1b6b0abaebfee0b3349f0b0d0e9ce696b7146999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Vest=C3=B8l?= Date: Sat, 9 Jun 2018 00:00:18 +0200 Subject: [PATCH] Decreased master load time by 30%, web postJSON now returns a promise --- .gitignore | 2 ++ master.js | 8 ++++++-- package.json | 3 +++ static/main.js | 41 +++++++++++++++++++++++------------------ 4 files changed, 34 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 9752a88d..8e02f843 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,5 @@ sharedPlugins/* !sharedPlugins/remoteCommands/ !sharedPlugins/researchSync/ !sharedPlugins/globalChat/ + +\.cache-require-paths\.json diff --git a/master.js b/master.js index 013f5f3a..d7d5dcc3 100644 --- a/master.js +++ b/master.js @@ -20,6 +20,10 @@ process.on('unhandledRejection', r => console.log(r)); // configgy stuff debug = false; +// reduces loadtime from 1700 ms to 1200 ms on my i3 + SSD +// tested by logging Date.now() here and when the webserver started listening +require('cache-require-paths'); + // constants const masterModFolder = "./database/masterMods/"; const config = require('./config'); @@ -46,8 +50,8 @@ const https = require("https"); const jwt = require('jsonwebtoken'); const bcrypt = require('bcryptjs'); -var crypto = require('crypto'); -var base64url = require('base64url'); +const crypto = require('crypto'); +const base64url = require('base64url'); /** Sync */ function randomStringAsBase64Url(size) { diff --git a/package.json b/package.json index f40f7cb2..6cacc99c 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,11 @@ "as-table": "^1.0.31", "averaged-timeseries": "^1.4.0", "base64url": "^3.0.0", + "bcrypt": "^2.0.1", + "bcrypt-promise": "^2.0.0", "bcryptjs": "^2.4.3", "body-parser": "^1.18.2", + "cache-require-paths": "^0.3.0", "codecov": "^3.0.1", "compression": "^1.7.2", "deepmerge": "^1.5.2", diff --git a/static/main.js b/static/main.js index 0f3d43bd..0cdcc55c 100644 --- a/static/main.js +++ b/static/main.js @@ -94,7 +94,7 @@ function getJSON(url, callback) { resolve(xhr.response); } else { if(callback) callback(status); - resolve(status); + reject(status); } }; // triggers if connection is refused @@ -107,23 +107,28 @@ function getJSON(url, callback) { }; // callback(err, json) function postJSON(url, data, callback) { - var xhr = new XMLHttpRequest(); - xhr.open('POST', url, true); - xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); - xhr.responseType = 'json'; - xhr.onload = function() { - var status = xhr.status; - if (status == 200) { - callback(null, xhr.response); - } else { - callback(status); - } - }; - // triggers if connection is refused - xhr.onerror = function(e){ - callback(e); - }; - xhr.send(JSON.stringify(data)); + return new Promise((resolve, reject) => { + var xhr = new XMLHttpRequest(); + xhr.open('POST', url, true); + xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); + xhr.responseType = 'json'; + xhr.onload = function() { + var status = xhr.status; + if (status == 200) { + if(callback) callback(null, xhr.response); + resolve(xhr.response); + } else { + if(callback) callback(status); + reject(status); + } + }; + // triggers if connection is refused + xhr.onerror = function(e){ + if(callback) callback(e); + reject(e); + }; + xhr.send(JSON.stringify(data)); + }); }; // return Boolean function isJSON(string){