diff --git a/lib/ServerlessFunction.js b/lib/ServerlessFunction.js index 7078198a3..87da210b4 100644 --- a/lib/ServerlessFunction.js +++ b/lib/ServerlessFunction.js @@ -150,36 +150,50 @@ class ServerlessFunction { functionJson = SUtils.readAndParseJsonSync(path.join(_this._config.fullPath, 's-function.json')); - return functionJson.endpoints ? functionJson.endpoints : []; + // loop through endpoints + return functionJson.endpoints; }) - .each(function(e, i) { + .then(function(endpoints){ + for (let i = 0; i < endpoints.length; i++) { + functionJson.endpoints[i] = new _this._S.classes.Endpoint(_this._S, { + component: _this._config.component, + module: _this._config.module, + function: functionJson.name, + endpointPath: endpoints[i].path, + endpointMethod: endpoints[i].method + }); - functionJson.endpoints[i] = new _this._S.classes.Endpoint(_this._S, { - component: _this._config.component, - module: _this._config.module, - function: functionJson.name, - endpointPath: functionJson.endpoints[i].path, - endpointMethod: functionJson.endpoints[i].method - }); + functionJson.endpoints[i].load() + .then(function(instance) { + functionJson.endpoints[i] = instance; - return functionJson.endpoints[i].load(); + // loop through events + return functionJson.endpoints[i]; + }); + } + + return functionJson.events; }) - .then(function() { - return functionJson.events ? functionJson.events : []; - }) - .each(function(e, i) { + .then(function(events) { - functionJson.events[i] = new _this._S.classes.Event(_this._S, { - component: _this._config.component, - module: _this._config.module, - function: functionJson.name, - name: functionJson.events[i].name, - type: functionJson.events[i].type, - config: functionJson.events[i].config - }); - - return functionJson.events[i].load(); + // Add Event Class Instances + for (let i = 0; i < events.length; i++) { + functionJson.events[i] = new _this._S.classes.Event(_this._S, { + component: _this._config.component, + module: _this._config.module, + function: functionJson.name, + name: events[i].name, + type: events[i].type, + config: events[i].config + }); + functionJson.events[i].load() + .then(function (instance) { + functionJson.events[i] = instance; + return functionJson.events[i]; + }); + } + return functionJson; }) .then(function() { diff --git a/tests/all.js b/tests/all.js index f8c1649fa..67fea0118 100644 --- a/tests/all.js +++ b/tests/all.js @@ -16,20 +16,20 @@ describe('All Tests', function() { require('./tests/classes/ServerlessComponentTest'); require('./tests/classes/ServerlessProjectTest'); require('./tests/classes/ServerlessStateTest'); - //require('./tests/actions/TestPluginCustom'); - //require('./tests/actions/TestDefaultActionHook'); - //require('./tests/actions/StageCreate'); - //require('./tests/actions/RegionCreate'); - //require('./tests/actions/ComponentCreate'); - //require('./tests/actions/ModuleCreate'); - //require('./tests/actions/FunctionCreate'); - //require('./tests/actions/EnvList'); - //require('./tests/actions/EnvGet'); - //require('./tests/actions/EnvSetUnset'); - //require('./tests/actions/ResourcesDeploy'); - //require('./tests/actions/FunctionRun'); - //require('./tests/actions/FunctionDeploy'); - //require('./tests/actions/EndpointDeploy'); - //require('./tests/actions/ProjectCreate'); - //require('./tests/actions/ProjectInstall'); + require('./tests/actions/TestPluginCustom'); + require('./tests/actions/TestDefaultActionHook'); + require('./tests/actions/StageCreate'); + require('./tests/actions/RegionCreate'); + require('./tests/actions/ComponentCreate'); + require('./tests/actions/ModuleCreate'); + require('./tests/actions/FunctionCreate'); + require('./tests/actions/EnvList'); + require('./tests/actions/EnvGet'); + require('./tests/actions/EnvSetUnset'); + require('./tests/actions/ResourcesDeploy'); + require('./tests/actions/FunctionRun'); + require('./tests/actions/FunctionDeploy'); + require('./tests/actions/EndpointDeploy'); + require('./tests/actions/ProjectCreate'); + require('./tests/actions/ProjectInstall'); }); \ No newline at end of file