const Fs = require('fs');
const Path = require('path');
-// Module containing utility functions.
+/**
+ * Module containing utility functions
+ *
+ * @name Util
+ * @type Object
+ */
const Util = {
- // Parses a 16 bit number buffer.
- parse16BitBuffer: function (buffer) {
- return buffer[0] * 256 + buffer[1];
- },
-
- // Picks a random element from an array.
- pickRandom: function (array) {
- return array[Math.floor(Math.random() * array.length)];
- },
-
- // For a given path, requires all of the files and returns an array
- // with the results. If the directory contains any non-requireable file,
- // it will fail.
- loadFiles: function (path) {
- return new Promise(function (resolve, reject) {
- Fs.readdir(path, function (err, files) {
- if (err) {
- return reject(err);
- }
-
- let loadedFiles = [];
-
- for (let file of files) {
- let filePath = Path.join(path, file);
- let loadedFile;
-
- try {
- loadedFile = require(filePath);
- } catch (err) {
- return reject(err);
- }
-
- loadedFiles.push(loadedFile);
- }
-
- resolve(loadedFiles);
- });
- });
- }
+ /**
+ * Parses a 16 bit number buffer
+ *
+ * @function parse16BitBuffer
+ * @memberof Util
+ * @param {Array<String>} buffer the buffer to parse
+ * @return {Number} the parsed value
+ */
+ parse16BitBuffer(buffer) {
+
+ return buffer[0] * 256 + buffer[1];
+ },
+
+ /**
+ * Picks a random element from an array
+ *
+ * @function pickRandom
+ * @memberof Util
+ * @param {Array} array the array to use
+ * @return {Any} the picked element
+ */
+ pickRandom(array) {
+
+ return array[Math.floor(Math.random() * array.length)];
+ },
+
+ /**
+ * For a gi ven path, requires all of the files and returns an array
+ * with the results. If the directory contains any non-requireable
+ * files, it will fail.
+ *
+ * @function loadFiles
+ * @memberof Util
+ * @param {String} path the path where the files are located
+ * @return {Array} the array of all the loaded modules
+ */
+ loadFiles(path) {
+
+ return new Promise((resolve, reject) => {
+
+ Fs.readdir(path, (err, files) => {
+
+ if (err) {
+ return reject(err);
+ }
+
+ const loadedFiles = [];
+
+ for (const file of files) {
+ const filePath = Path.join(path, file);
+ let loadedFile;
+
+ try {
+ loadedFile = require(filePath);
+ }
+ catch (err) {
+ return reject(err);
+ }
+
+ loadedFiles.push(loadedFile);
+ }
+
+ resolve(loadedFiles);
+ });
+ });
+ }
};
module.exports = Util;