UNPKG

socketio-class-controllers

Version:

Use class-based controllers to handle websocket events

37 lines (35 loc) 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = require("path"); /** * Loads all exported classes from the given directory. */ function importClassesFromDirectories(directories, formats) { if (formats === void 0) { formats = [".js", ".ts"]; } var loadFileClasses = function (exported, allLoaded) { if (exported instanceof Function) { allLoaded.push(exported); } else if (exported instanceof Object) { Object.keys(exported).forEach(function (key) { return loadFileClasses(exported[key], allLoaded); }); } else if (exported instanceof Array) { exported.forEach(function (i) { return loadFileClasses(i, allLoaded); }); } return allLoaded; }; var allFiles = directories.reduce(function (allDirs, dir) { return allDirs.concat(require("glob").sync(path.normalize(dir))); }, []); var dirs = allFiles .filter(function (file) { var dtsExtension = file.substring(file.length - 5, file.length); return formats.indexOf(path.extname(file)) !== -1 && dtsExtension !== ".d.ts"; }) .map(function (file) { return require(file); }); return loadFileClasses(dirs, []); } exports.importClassesFromDirectories = importClassesFromDirectories; //# sourceMappingURL=DirectoryExportedClassesLoader.js.map