UNPKG

1.48 kBJavaScriptView Raw
1var fs = require('fs'),
2 exists = require('fs-exists-sync'),
3 path = require('path'),
4 paths = require('../configs/paths'),
5 config = require('../configs/config')
6
7
8module.exports = class {
9
10 constructor() {
11 paths = paths;
12 this.events = [];
13
14 var files = this.loadFiles();
15
16 for(var key in files){
17 this.events.push(require(files[key])());
18 }
19
20 return this;
21 }
22
23 loadFiles() {
24 var files = [];
25
26 if (exists(paths.app.events)) {
27 fs.readdirSync(paths.app.events)
28 .filter(function (file) {
29 return (file.indexOf(".") !== 0);
30 })
31 .forEach(function (file) {
32 files.push(path.join(paths.app.events, file));
33 });
34 }
35
36 return files;
37 }
38
39 exists(name){
40 for(var key in this.events){
41 if(this.events[key][name]){
42 return true
43 }
44 }
45
46 return false;
47 }
48
49 emit(eventName, options){
50 var events = (name, options, key = 0) => {
51 for(var i = key; i < this.events.length; i++){
52 if(this.events[i][name]){
53 return this.events[i][name](options, (returns) => {
54 return events(name, returns, ++i)
55 })
56 }
57 }
58
59 return options;
60 }
61
62 return events(eventName, options);
63 }
64
65}
\No newline at end of file