2
0
Эх сурвалжийг харах

Renamed global module to globals, since NodeJS already defines a variable named "global" (similar to window in a web browser)

Cameron Kline 8 жил өмнө
parent
commit
01202dc194

+ 0 - 117
backend/logic/global.js

@@ -1,117 +0,0 @@
-'use strict';
-
-const moment = require('moment');
-
-class Timer {
-	constructor(callback, delay, paused) {
-		this.callback = callback;
-		this.timerId = undefined;
-		this.start = undefined;
-		this.paused = paused;
-		this.remaining = moment.duration(delay, "hh:mm:ss").asSeconds() * 1000;
-		this.timeWhenPaused = 0;
-		this.timePaused = Date.now();
-
-		if (!paused) {
-			this.resume();
-		}
-	}
-
-	pause() {
-		clearTimeout(this.timerId);
-		this.remaining -= Date.now() - this.start;
-		this.timePaused = Date.now();
-		this.paused = true;
-	}
-
-	ifNotPaused() {
-		if (!this.paused) {
-			this.resume();
-		}
-	}
-
-	resume() {
-		this.start = Date.now();
-		clearTimeout(this.timerId);
-		this.timerId = setTimeout(this.callback, this.remaining);
-		this.timeWhenPaused = Date.now() - this.timePaused;
-		this.paused = false;
-	}
-
-	resetTimeWhenPaused() {
-		this.timeWhenPaused = 0;
-	}
-
-	getTimePaused() {
-		if (!this.paused) {
-			return this.timeWhenPaused;
-		} else {
-			return Date.now() - this.timePaused;
-		}
-	}
-}
-
-function getRandomNumber(min, max) {
-	return Math.floor(Math.random() * (max - min + 1)) + min;
-}
-
-
-function convertTime(duration) {
-	let a = duration.match(/\d+/g);
-
-    if (duration.indexOf('M') >= 0 && duration.indexOf('H') == -1 && duration.indexOf('S') == -1) {
-        a = [0, a[0], 0];
-    }
-
-    if (duration.indexOf('H') >= 0 && duration.indexOf('M') == -1) {
-        a = [a[0], 0, a[1]];
-    }
-    if (duration.indexOf('H') >= 0 && duration.indexOf('M') == -1 && duration.indexOf('S') == -1) {
-        a = [a[0], 0, 0];
-    }
-
-    duration = 0;
-
-    if (a.length == 3) {
-        duration = duration + parseInt(a[0]) * 3600;
-        duration = duration + parseInt(a[1]) * 60;
-        duration = duration + parseInt(a[2]);
-    }
-
-    if (a.length == 2) {
-        duration = duration + parseInt(a[0]) * 60;
-        duration = duration + parseInt(a[1]);
-    }
-
-    if (a.length == 1) {
-        duration = duration + parseInt(a[0]);
-    }
-
-    let hours = Math.floor(duration / 3600);
-    let minutes = Math.floor(duration % 3600 / 60);
-    let seconds = Math.floor(duration % 3600 % 60);
-
-	return (hours < 10 ? ("0" + hours + ":") : (hours + ":")) + (minutes < 10 ? ("0" + minutes + ":") : (minutes + ":")) + (seconds < 10 ? ("0" + seconds) : seconds);
-}
-
-module.exports = {
-	io: null, // Socket.io
-	db: null, // Database
-	htmlEntities: str => {
-		return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
-	},
-	getRandomNumber,
-	convertTime,
-	generateRandomString: len => {
-		let chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split("");
-		let result = [];
-		for (let i = 0; i < len; i++) {
-			result.push(chars[getRandomNumber(0, chars.length - 1)]);
-		}
-		return result.join("");
-	},
-	getSocketFromId: function(socketId) {
-		return this.io.sockets.sockets[socketId];
-	},
-	Timer
-};

+ 125 - 0
backend/logic/globals.js

@@ -0,0 +1,125 @@
+'use strict';
+
+const moment = require('moment');
+
+class Timer {
+	constructor(callback, delay, paused) {
+		this.callback = callback;
+		this.timerId = undefined;
+		this.start = undefined;
+		this.paused = paused;
+		this.remaining = moment.duration(delay, "hh:mm:ss").asSeconds() * 1000;
+		this.timeWhenPaused = 0;
+		this.timePaused = Date.now();
+
+		if (!paused) {
+			this.resume();
+		}
+	}
+
+	pause() {
+		clearTimeout(this.timerId);
+		this.remaining -= Date.now() - this.start;
+		this.timePaused = Date.now();
+		this.paused = true;
+	}
+
+	ifNotPaused() {
+		if (!this.paused) {
+			this.resume();
+		}
+	}
+
+	resume() {
+		this.start = Date.now();
+		clearTimeout(this.timerId);
+		this.timerId = setTimeout(this.callback, this.remaining);
+		this.timeWhenPaused = Date.now() - this.timePaused;
+		this.paused = false;
+	}
+
+	resetTimeWhenPaused() {
+		this.timeWhenPaused = 0;
+	}
+
+	getTimePaused() {
+		if (!this.paused) {
+			return this.timeWhenPaused;
+		} else {
+			return Date.now() - this.timePaused;
+		}
+	}
+}
+
+function convertTime (duration) {
+
+	let a = duration.match(/\d+/g);
+
+	if (duration.indexOf('M') >= 0 && duration.indexOf('H') == -1 && duration.indexOf('S') == -1) {
+		a = [0, a[0], 0];
+	}
+
+	if (duration.indexOf('H') >= 0 && duration.indexOf('M') == -1) {
+		a = [a[0], 0, a[1]];
+	}
+	if (duration.indexOf('H') >= 0 && duration.indexOf('M') == -1 && duration.indexOf('S') == -1) {
+		a = [a[0], 0, 0];
+	}
+
+	duration = 0;
+
+	if (a.length == 3) {
+		duration = duration + parseInt(a[0]) * 3600;
+		duration = duration + parseInt(a[1]) * 60;
+		duration = duration + parseInt(a[2]);
+	}
+
+	if (a.length == 2) {
+		duration = duration + parseInt(a[0]) * 60;
+		duration = duration + parseInt(a[1]);
+	}
+
+	if (a.length == 1) {
+		duration = duration + parseInt(a[0]);
+	}
+
+	let hours = Math.floor(duration / 3600);
+	let minutes = Math.floor(duration % 3600 / 60);
+	let seconds = Math.floor(duration % 3600 % 60);
+
+	return (hours < 10 ? ("0" + hours + ":") : (hours + ":")) + (minutes < 10 ? ("0" + minutes + ":") : (minutes + ":")) + (seconds < 10 ? ("0" + seconds) : seconds);
+}
+
+const globals  = {
+	// stores the socket.io server
+	io: null,
+	// stores stuff related to the Mongo Database
+	db: {
+		// our connection to the database
+		connection: null,
+		// the models we've defined in the database
+		models: null,
+		// the store express / socket.io uses to store sessions in the database
+		store: null
+	},
+	// various utilities used through out the code base
+	utils: {
+		htmlEntities: str => String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;'),
+		generateRandomString: len => {
+			let chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split("");
+			let result = [];
+			for (let i = 0; i < len; i++) {
+				result.push(chars[globals.utils.getRandomNumber(0, chars.length - 1)]);
+			}
+			return result.join("");
+		},
+		getSocketFromId: function(socketId) {
+			return globals.io.sockets.sockets[socketId];
+		},
+		getRandomNumber: (min, max) => Math.floor(Math.random() * (max - min + 1)) + min,
+		convertTime,
+		Timer
+	}
+};
+
+module.exports = globals;