elasticio-sailor-nodejs 2.7.1-dev3 → 2.7.1-dev5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,109 +1,109 @@
1
- var log = require('./logging.js');
2
- var Q = require('q');
3
- var _ = require('lodash');
4
- var path = require('path');
5
- var fs = require('fs');
6
- var util = require('util');
7
-
8
- exports.ComponentReader = ComponentReader;
9
-
10
- function ComponentReader() {
11
- this.componentPath = null;
12
- this.componentJson = null;
13
- }
14
-
15
- ComponentReader.prototype.init = function init(componentPath) {
16
- this.componentPath = path.join(process.cwd(), componentPath || '');
17
- log.debug('Component path is: %s', this.componentPath);
18
-
19
- log.trace('Root files: %j', fs.readdirSync(this.componentPath));
20
-
21
- var componentJsonPath = path.join(this.componentPath, 'component.json');
22
- return this.promiseLoadJson(componentJsonPath);
23
- };
24
-
25
- ComponentReader.prototype.promiseLoadJson = function promiseLoadJson(jsonFilePath) {
26
- try {
27
- this.componentJson = require(jsonFilePath);
28
- log.debug('Successfully loaded %s', jsonFilePath);
29
- log.debug('Triggers: %j', _.keys(this.componentJson.triggers));
30
- log.debug('Actions: %j', _.keys(this.componentJson.actions));
31
- return Q.resolve();
32
- } catch (err) {
33
- return Q.reject(new Error('Failed to load component.json from ' + this.componentPath));
34
- }
35
- };
36
-
37
- ComponentReader.prototype.findTriggerOrActionDefinition = function findTriggerOrActionDefinition(name) {
38
- if (this.componentJson === null) {
39
- throw new Error('Component.json was not loaded');
40
- }
41
-
42
- let def;
43
- if (this.componentJson.triggers && this.componentJson.triggers[name]) {
44
- def = this.componentJson.triggers[name];
45
- } else if (this.componentJson.actions && this.componentJson.actions[name]) {
46
- def = this.componentJson.actions[name];
47
- } else {
48
- throw new Error('Trigger or action "' + name + '" is not found in component.json!');
49
- }
50
-
51
- return {
52
- autoResolveObjectReferences: true,
53
- ...def
54
- };
55
- };
56
-
57
- ComponentReader.prototype.findTriggerOrAction = function findTriggerOrAction(name) {
58
- return this.findTriggerOrActionDefinition(name).main;
59
- };
60
-
61
- ComponentReader.prototype.loadTriggerOrAction = async function loadTriggerOrAction(name) {
62
- var filename;
63
- var modulePath;
64
- var result;
65
-
66
- try {
67
- filename = this.findTriggerOrAction(name);
68
- modulePath = path.join(this.componentPath, filename);
69
- } catch (err) {
70
- log.trace(err);
71
- return Q.reject(err);
72
- }
73
-
74
- try {
75
- log.trace('Trying to find module at: %s', modulePath);
76
- result = require(modulePath);
77
- return Q.resolve(result);
78
- } catch (err) {
79
- var message;
80
-
81
- if (err.code === 'MODULE_NOT_FOUND') {
82
- message = 'Failed to load file \'%s\': %s';
83
- err.message = util.format(message, filename, err.message);
84
- } else {
85
- message = 'Trigger or action \'%s\' is found, but can not be loaded. '
86
- + 'Please check if the file \'%s\' is correct.';
87
- err.message = util.format(message, name, filename);
88
- }
89
-
90
- log.trace(err);
91
- return Q.reject(err);
92
- }
93
- };
94
-
95
- ComponentReader.prototype.loadVerifyCredentials = function loadVerifyCredentials() {
96
- function verifyStub(cfg, cb) {
97
- return cb(null, { verified: true });
98
- }
99
-
100
- try {
101
- var modulePath = path.join(this.componentPath, 'verifyCredentials');
102
- log.trace('Trying to find verifyCredentials.js at: %s', modulePath);
103
- var verifyFunc = require(modulePath);
104
- return Q.resolve(verifyFunc);
105
- } catch (err) {
106
- log.trace(err);
107
- return Q.resolve(verifyStub);
108
- }
109
- };
1
+ var log = require('./logging.js');
2
+ var Q = require('q');
3
+ var _ = require('lodash');
4
+ var path = require('path');
5
+ var fs = require('fs');
6
+ var util = require('util');
7
+
8
+ exports.ComponentReader = ComponentReader;
9
+
10
+ function ComponentReader() {
11
+ this.componentPath = null;
12
+ this.componentJson = null;
13
+ }
14
+
15
+ ComponentReader.prototype.init = function init(componentPath) {
16
+ this.componentPath = path.join(process.cwd(), componentPath || '');
17
+ log.debug('Component path is: %s', this.componentPath);
18
+
19
+ log.trace('Root files: %j', fs.readdirSync(this.componentPath));
20
+
21
+ var componentJsonPath = path.join(this.componentPath, 'component.json');
22
+ return this.promiseLoadJson(componentJsonPath);
23
+ };
24
+
25
+ ComponentReader.prototype.promiseLoadJson = function promiseLoadJson(jsonFilePath) {
26
+ try {
27
+ this.componentJson = require(jsonFilePath);
28
+ log.debug('Successfully loaded %s', jsonFilePath);
29
+ log.debug('Triggers: %j', _.keys(this.componentJson.triggers));
30
+ log.debug('Actions: %j', _.keys(this.componentJson.actions));
31
+ return Q.resolve();
32
+ } catch (err) {
33
+ return Q.reject(new Error('Failed to load component.json from ' + this.componentPath));
34
+ }
35
+ };
36
+
37
+ ComponentReader.prototype.findTriggerOrActionDefinition = function findTriggerOrActionDefinition(name) {
38
+ if (this.componentJson === null) {
39
+ throw new Error('Component.json was not loaded');
40
+ }
41
+
42
+ let def;
43
+ if (this.componentJson.triggers && this.componentJson.triggers[name]) {
44
+ def = this.componentJson.triggers[name];
45
+ } else if (this.componentJson.actions && this.componentJson.actions[name]) {
46
+ def = this.componentJson.actions[name];
47
+ } else {
48
+ throw new Error('Trigger or action "' + name + '" is not found in component.json!');
49
+ }
50
+
51
+ return {
52
+ autoResolveObjectReferences: true,
53
+ ...def
54
+ };
55
+ };
56
+
57
+ ComponentReader.prototype.findTriggerOrAction = function findTriggerOrAction(name) {
58
+ return this.findTriggerOrActionDefinition(name).main;
59
+ };
60
+
61
+ ComponentReader.prototype.loadTriggerOrAction = async function loadTriggerOrAction(name) {
62
+ var filename;
63
+ var modulePath;
64
+ var result;
65
+
66
+ try {
67
+ filename = this.findTriggerOrAction(name);
68
+ modulePath = path.join(this.componentPath, filename);
69
+ } catch (err) {
70
+ log.trace(err);
71
+ return Q.reject(err);
72
+ }
73
+
74
+ try {
75
+ log.trace('Trying to find module at: %s', modulePath);
76
+ result = require(modulePath);
77
+ return Q.resolve(result);
78
+ } catch (err) {
79
+ var message;
80
+
81
+ if (err.code === 'MODULE_NOT_FOUND') {
82
+ message = 'Failed to load file \'%s\': %s';
83
+ err.message = util.format(message, filename, err.message);
84
+ } else {
85
+ message = 'Trigger or action \'%s\' is found, but can not be loaded. '
86
+ + 'Please check if the file \'%s\' is correct.';
87
+ err.message = util.format(message, name, filename);
88
+ }
89
+
90
+ log.trace(err);
91
+ return Q.reject(err);
92
+ }
93
+ };
94
+
95
+ ComponentReader.prototype.loadVerifyCredentials = function loadVerifyCredentials() {
96
+ function verifyStub(cfg, cb) {
97
+ return cb(null, { verified: true });
98
+ }
99
+
100
+ try {
101
+ var modulePath = path.join(this.componentPath, 'verifyCredentials');
102
+ log.trace('Trying to find verifyCredentials.js at: %s', modulePath);
103
+ var verifyFunc = require(modulePath);
104
+ return Q.resolve(verifyFunc);
105
+ } catch (err) {
106
+ log.trace(err);
107
+ return Q.resolve(verifyStub);
108
+ }
109
+ };
package/lib/emitter.js CHANGED
@@ -1,198 +1,198 @@
1
- 'use strict';
2
-
3
-
4
- /**
5
- * Object#toString reference.
6
- */
7
- const objToString = Object.prototype.toString;
8
-
9
- /**
10
- * Check if a value is an array.
11
- *
12
- * @api private
13
- * @param {*} val The value to test.
14
- * @return {boolean} true if the value is an array, otherwise false.
15
- */
16
- function isArray(val) {
17
- return objToString.call(val) === '[object Array]';
18
- }
19
-
20
- /**
21
- * Event emitter constructor.
22
- *
23
- * @api public
24
- */
25
- function EventEmitter() {
26
- // Empty constructor
27
- }
28
-
29
- /**
30
- * Add a listener.
31
- *
32
- * @api public
33
- * @param {string} name Event name.
34
- * @param {Function} fn Event handler.
35
- * @return {EventEmitter} Emitter instance.
36
- */
37
- EventEmitter.prototype.on = function on(name, fn) {
38
- if (!this.$events) {
39
- this.$events = {};
40
- }
41
-
42
- if (!this.$events[name]) {
43
- this.$events[name] = fn;
44
- } else if (isArray(this.$events[name])) {
45
- this.$events[name].push(fn);
46
- } else {
47
- this.$events[name] = [this.$events[name], fn];
48
- }
49
-
50
- return this;
51
- };
52
-
53
- EventEmitter.prototype.addListener = EventEmitter.prototype.on;
54
-
55
- /**
56
- * Adds a volatile listener.
57
- *
58
- * @api public
59
- * @param {string} name Event name.
60
- * @param {Function} fn Event handler.
61
- * @return {EventEmitter} Emitter instance.
62
- */
63
- EventEmitter.prototype.once = function once(name, fn) {
64
- const that = this;
65
-
66
- function on() {
67
- that.removeListener(name, on);
68
- //eslint-disable-next-line no-invalid-this
69
- fn.apply(this, arguments);
70
- }
71
-
72
- on.listener = fn;
73
- this.on(name, on);
74
-
75
- return this;
76
- };
77
-
78
- /**
79
- * Remove a listener.
80
- *
81
- * @api public
82
- * @param {string} name Event name.
83
- * @param {Function} fn Event handler.
84
- * @return {EventEmitter} Emitter instance.
85
- */
86
- EventEmitter.prototype.removeListener = function removeListener(name, fn) {
87
- if (this.$events && this.$events[name]) {
88
- const list = this.$events[name];
89
-
90
- if (isArray(list)) {
91
- let pos = -1;
92
-
93
- for (let i = 0, l = list.length; i < l; i++) {
94
- if (list[i] === fn || (list[i].listener && list[i].listener === fn)) {
95
- pos = i;
96
- break;
97
- }
98
- }
99
-
100
- if (pos < 0) {
101
- return this;
102
- }
103
-
104
- list.splice(pos, 1);
105
-
106
- if (!list.length) {
107
- delete this.$events[name];
108
- }
109
- } else if (list === fn || (list.listener && list.listener === fn)) {
110
- delete this.$events[name];
111
- }
112
- }
113
-
114
- return this;
115
- };
116
-
117
- /**
118
- * Remove all listeners for an event.
119
- *
120
- * @api public
121
- * @param {string} name Event name.
122
- * @return {EventEmitter} Emitter instance.
123
- */
124
- EventEmitter.prototype.removeAllListeners = function removeAllListeners(name) {
125
- if (name === undefined) {
126
- this.$events = {};
127
- return this;
128
- }
129
-
130
- if (this.$events && this.$events[name]) {
131
- this.$events[name] = null;
132
- }
133
-
134
- return this;
135
- };
136
-
137
- /**
138
- * Get all listeners for a given event.
139
- *
140
- * @api public
141
- * @param {string} name Event name.
142
- * @return {EventEmitter} Emitter instance.
143
- */
144
- EventEmitter.prototype.listeners = function listeners(name) {
145
- if (!this.$events) {
146
- this.$events = {};
147
- }
148
-
149
- if (!this.$events[name]) {
150
- this.$events[name] = [];
151
- }
152
-
153
- if (!isArray(this.$events[name])) {
154
- this.$events[name] = [this.$events[name]];
155
- }
156
-
157
- return this.$events[name];
158
- };
159
-
160
- /**
161
- * Emit an event.
162
- *
163
- * @api public
164
- * @param {string} name Event name.
165
- * @return {boolean} true if at least one handler was invoked, else false.
166
- */
167
- EventEmitter.prototype.emit = async function emit(name) {
168
- if (!this.$events) {
169
- return false;
170
- }
171
-
172
- const handler = this.$events[name];
173
-
174
- if (!handler) {
175
- return false;
176
- }
177
-
178
- const args = Array.prototype.slice.call(arguments, 1);
179
-
180
- if (typeof handler === 'function') {
181
- await handler.apply(this, args);
182
- } else if (isArray(handler)) {
183
- const listeners = handler.slice();
184
-
185
- for (let i = 0, l = listeners.length; i < l; i++) {
186
- await listeners[i].apply(this, args);
187
- }
188
- } else {
189
- return false;
190
- }
191
-
192
- return true;
193
- };
194
-
195
- /**
196
- * Module exports.
197
- */
198
- exports.EventEmitter = EventEmitter;
1
+ 'use strict';
2
+
3
+
4
+ /**
5
+ * Object#toString reference.
6
+ */
7
+ const objToString = Object.prototype.toString;
8
+
9
+ /**
10
+ * Check if a value is an array.
11
+ *
12
+ * @api private
13
+ * @param {*} val The value to test.
14
+ * @return {boolean} true if the value is an array, otherwise false.
15
+ */
16
+ function isArray(val) {
17
+ return objToString.call(val) === '[object Array]';
18
+ }
19
+
20
+ /**
21
+ * Event emitter constructor.
22
+ *
23
+ * @api public
24
+ */
25
+ function EventEmitter() {
26
+ // Empty constructor
27
+ }
28
+
29
+ /**
30
+ * Add a listener.
31
+ *
32
+ * @api public
33
+ * @param {string} name Event name.
34
+ * @param {Function} fn Event handler.
35
+ * @return {EventEmitter} Emitter instance.
36
+ */
37
+ EventEmitter.prototype.on = function on(name, fn) {
38
+ if (!this.$events) {
39
+ this.$events = {};
40
+ }
41
+
42
+ if (!this.$events[name]) {
43
+ this.$events[name] = fn;
44
+ } else if (isArray(this.$events[name])) {
45
+ this.$events[name].push(fn);
46
+ } else {
47
+ this.$events[name] = [this.$events[name], fn];
48
+ }
49
+
50
+ return this;
51
+ };
52
+
53
+ EventEmitter.prototype.addListener = EventEmitter.prototype.on;
54
+
55
+ /**
56
+ * Adds a volatile listener.
57
+ *
58
+ * @api public
59
+ * @param {string} name Event name.
60
+ * @param {Function} fn Event handler.
61
+ * @return {EventEmitter} Emitter instance.
62
+ */
63
+ EventEmitter.prototype.once = function once(name, fn) {
64
+ const that = this;
65
+
66
+ function on() {
67
+ that.removeListener(name, on);
68
+ //eslint-disable-next-line no-invalid-this
69
+ fn.apply(this, arguments);
70
+ }
71
+
72
+ on.listener = fn;
73
+ this.on(name, on);
74
+
75
+ return this;
76
+ };
77
+
78
+ /**
79
+ * Remove a listener.
80
+ *
81
+ * @api public
82
+ * @param {string} name Event name.
83
+ * @param {Function} fn Event handler.
84
+ * @return {EventEmitter} Emitter instance.
85
+ */
86
+ EventEmitter.prototype.removeListener = function removeListener(name, fn) {
87
+ if (this.$events && this.$events[name]) {
88
+ const list = this.$events[name];
89
+
90
+ if (isArray(list)) {
91
+ let pos = -1;
92
+
93
+ for (let i = 0, l = list.length; i < l; i++) {
94
+ if (list[i] === fn || (list[i].listener && list[i].listener === fn)) {
95
+ pos = i;
96
+ break;
97
+ }
98
+ }
99
+
100
+ if (pos < 0) {
101
+ return this;
102
+ }
103
+
104
+ list.splice(pos, 1);
105
+
106
+ if (!list.length) {
107
+ delete this.$events[name];
108
+ }
109
+ } else if (list === fn || (list.listener && list.listener === fn)) {
110
+ delete this.$events[name];
111
+ }
112
+ }
113
+
114
+ return this;
115
+ };
116
+
117
+ /**
118
+ * Remove all listeners for an event.
119
+ *
120
+ * @api public
121
+ * @param {string} name Event name.
122
+ * @return {EventEmitter} Emitter instance.
123
+ */
124
+ EventEmitter.prototype.removeAllListeners = function removeAllListeners(name) {
125
+ if (name === undefined) {
126
+ this.$events = {};
127
+ return this;
128
+ }
129
+
130
+ if (this.$events && this.$events[name]) {
131
+ this.$events[name] = null;
132
+ }
133
+
134
+ return this;
135
+ };
136
+
137
+ /**
138
+ * Get all listeners for a given event.
139
+ *
140
+ * @api public
141
+ * @param {string} name Event name.
142
+ * @return {EventEmitter} Emitter instance.
143
+ */
144
+ EventEmitter.prototype.listeners = function listeners(name) {
145
+ if (!this.$events) {
146
+ this.$events = {};
147
+ }
148
+
149
+ if (!this.$events[name]) {
150
+ this.$events[name] = [];
151
+ }
152
+
153
+ if (!isArray(this.$events[name])) {
154
+ this.$events[name] = [this.$events[name]];
155
+ }
156
+
157
+ return this.$events[name];
158
+ };
159
+
160
+ /**
161
+ * Emit an event.
162
+ *
163
+ * @api public
164
+ * @param {string} name Event name.
165
+ * @return {boolean} true if at least one handler was invoked, else false.
166
+ */
167
+ EventEmitter.prototype.emit = async function emit(name) {
168
+ if (!this.$events) {
169
+ return false;
170
+ }
171
+
172
+ const handler = this.$events[name];
173
+
174
+ if (!handler) {
175
+ return false;
176
+ }
177
+
178
+ const args = Array.prototype.slice.call(arguments, 1);
179
+
180
+ if (typeof handler === 'function') {
181
+ await handler.apply(this, args);
182
+ } else if (isArray(handler)) {
183
+ const listeners = handler.slice();
184
+
185
+ for (let i = 0, l = listeners.length; i < l; i++) {
186
+ await listeners[i].apply(this, args);
187
+ }
188
+ } else {
189
+ return false;
190
+ }
191
+
192
+ return true;
193
+ };
194
+
195
+ /**
196
+ * Module exports.
197
+ */
198
+ exports.EventEmitter = EventEmitter;