refatored aws plugins structure

This commit is contained in:
Eslam A. Hefnawy 2016-06-16 21:24:09 +02:00
parent a57126f38a
commit ef2fffe130
50 changed files with 82 additions and 158 deletions

View File

@ -4,13 +4,13 @@
"./deploy/deploy.js",
"./invoke/invoke.js",
"./remove/remove.js",
"./awsCompileFunctions/awsCompileFunctions.js",
"./awsCompileS3Events/awsCompileS3Events.js",
"./awsCompileScheduledEvents/awsCompileScheduledEvents.js",
"./awsCompileApigEvents/awsCompileApigEvents.js",
"./awsDeploy/awsDeploy.js",
"./awsInvoke/awsInvoke.js",
"./awsRemove/awsRemove.js",
"./aws/deploy/index.js",
"./aws/invoke/index.js",
"./aws/remove/index.js",
"./aws/deploy/compile/functions/index.js",
"./aws/deploy/compile/events/schedule/index.js",
"./aws/deploy/compile/events/s3/index.js",
"./aws/deploy/compile/events/apiGateway/index.js",
"./helloWorld/helloWorld.js"
]
}

View File

@ -3,11 +3,11 @@
const BbPromise = require('bluebird');
const forEach = require('lodash').forEach;
const compileRestApi = require('./lib/compileRestApi');
const compileResources = require('./lib/compileResources');
const compileMethods = require('./lib/compileMethods');
const compileDeployment = require('./lib/compileDeployment');
const compilePermissions = require('./lib/compilePermissions');
const compileRestApi = require('./lib/restApi');
const compileResources = require('./lib/resources');
const compileMethods = require('./lib/methods');
const compileDeployment = require('./lib/deployment');
const compilePermissions = require('./lib/permissions');
class AwsCompileApigEvents {
constructor(serverless, options) {

View File

@ -0,0 +1,8 @@
'use strict';
require('./index');
require('./permissions');
require('./restApi');
require('./deployment');
require('./resources');
require('./methods');

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsCompileApigEvents = require('../awsCompileApigEvents');
const Serverless = require('../../../Serverless');
const AwsCompileApigEvents = require('../index');
const Serverless = require('../../../../../../../Serverless');
describe('#compileDeployment()', () => {
let serverless;

View File

@ -3,8 +3,8 @@
const expect = require('chai').expect;
const sinon = require('sinon');
const BbPromise = require('bluebird');
const AwsCompileApigEvents = require('../awsCompileApigEvents');
const Serverless = require('../../../Serverless');
const AwsCompileApigEvents = require('../index');
const Serverless = require('../../../../../../../Serverless');
describe('AwsCompileApigEvents', () => {
const serverless = new Serverless();

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsCompileApigEvents = require('../awsCompileApigEvents');
const Serverless = require('../../../Serverless');
const AwsCompileApigEvents = require('../index');
const Serverless = require('../../../../../../../Serverless');
describe('#compileMethods()', () => {
let serverless;

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsCompileApigEvents = require('../awsCompileApigEvents');
const Serverless = require('../../../Serverless');
const AwsCompileApigEvents = require('../index');
const Serverless = require('../../../../../../../Serverless');
describe('#awsCompilePermissions()', () => {
let serverless;

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsCompileApigEvents = require('../awsCompileApigEvents');
const Serverless = require('../../../Serverless');
const AwsCompileApigEvents = require('../index');
const Serverless = require('../../../../../../../Serverless');
describe('#compileResources()', () => {
let serverless;

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsCompileApigEvents = require('../awsCompileApigEvents');
const Serverless = require('../../../Serverless');
const AwsCompileApigEvents = require('../index');
const Serverless = require('../../../../../../../Serverless');
describe('#compileRestApi()', () => {
let serverless;

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsCompileS3Events = require('../awsCompileS3Events');
const Serverless = require('../../../Serverless');
const AwsCompileS3Events = require('../index');
const Serverless = require('../../../../../../../Serverless');
describe('awsCompileS3Events', () => {
let serverless;

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsCompileScheduledEvents = require('../awsCompileScheduledEvents');
const Serverless = require('../../../Serverless');
const AwsCompileScheduledEvents = require('../index');
const Serverless = require('../../../../../../../Serverless');
describe('awsCompileScheduledEvents', () => {
let serverless;

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsCompileFunctions = require('../awsCompileFunctions');
const Serverless = require('../../../Serverless');
const AwsCompileFunctions = require('../index');
const Serverless = require('../../../../../../Serverless');
describe('awsCompileFunctions', () => {
let serverless;

View File

@ -1,7 +1,7 @@
'use strict';
const BbPromise = require('bluebird');
const validateInput = require('./lib/validateInput');
const validateInput = require('./lib/validate');
const initializeResources = require('./lib/initializeResources');
const createStack = require('./lib/createStack');
const deployFunctions = require('./lib/deployFunctions');

View File

@ -1,8 +1,8 @@
'use strict';
require('./validateInput');
require('./validate');
require('./initializeResources');
require('./createStack');
require('./deployFunctions');
require('./updateStack');
require('./awsDeploy');
require('./index');

View File

@ -6,8 +6,8 @@ const os = require('os');
const path = require('path');
const AWS = require('aws-sdk');
const BbPromise = require('bluebird');
const AwsDeploy = require('../awsDeploy');
const Serverless = require('../../../Serverless');
const AwsDeploy = require('../index');
const Serverless = require('../../../../Serverless');
describe('createStack', () => {
let serverless;

View File

@ -4,7 +4,7 @@ const expect = require('chai').expect;
const path = require('path');
const os = require('os');
const deployFunctions = require('../lib/deployFunctions');
const Serverless = require('../../../Serverless');
const Serverless = require('../../../../Serverless');
const Zip = require('node-zip');
const sinon = require('sinon');
const AWS = require('aws-sdk');

View File

@ -1,7 +1,7 @@
'use strict';
const AwsDeploy = require('../awsDeploy');
const Serverless = require('../../../Serverless');
const AwsDeploy = require('../index');
const Serverless = require('../../../../Serverless');
const expect = require('chai').expect;
const BbPromise = require('bluebird');
const sinon = require('sinon');

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsDeploy = require('../awsDeploy');
const Serverless = require('../../../Serverless');
const AwsDeploy = require('../index');
const Serverless = require('../../../../Serverless');
describe('#initializeResources()', () => {
const serverless = new Serverless();

View File

@ -6,8 +6,8 @@ const os = require('os');
const path = require('path');
const AWS = require('aws-sdk');
const BbPromise = require('bluebird');
const AwsDeploy = require('../awsDeploy');
const Serverless = require('../../../Serverless');
const AwsDeploy = require('../index');
const Serverless = require('../../../../Serverless');
describe('updateStack', () => {
let serverless;

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsDeploy = require('../awsDeploy');
const Serverless = require('../../../Serverless');
const AwsDeploy = require('../index');
const Serverless = require('../../../../Serverless');
describe('#validateInput()', () => {
let serverless;

View File

@ -4,8 +4,8 @@ const expect = require('chai').expect;
const sinon = require('sinon');
const path = require('path');
const os = require('os');
const AwsInvoke = require('../awsInvoke');
const Serverless = require('../../../Serverless');
const AwsInvoke = require('../');
const Serverless = require('../../../../Serverless');
const BbPromise = require('bluebird');
const AWS = require('aws-sdk');

View File

@ -1,9 +1,9 @@
'use strict';
const BbPromise = require('bluebird');
const validateInput = require('./lib/validateInput');
const emptyS3Bucket = require('./lib/emptyS3Bucket');
const removeStack = require('./lib/removeStack');
const validateInput = require('./lib/validate');
const emptyS3Bucket = require('./lib/bucket');
const removeStack = require('./lib/stack');
const AWS = require('aws-sdk');

View File

@ -0,0 +1,6 @@
'use strict';
require('./');
require('./stack');
require('./bucket');
require('./validate');

View File

@ -2,8 +2,8 @@
const expect = require('chai').expect;
const sinon = require('sinon');
const AwsRemove = require('../awsRemove');
const Serverless = require('../../../Serverless');
const AwsRemove = require('../');
const Serverless = require('../../../../Serverless');
const BbPromise = require('bluebird');
const AWS = require('aws-sdk');

View File

@ -3,8 +3,8 @@
const expect = require('chai').expect;
const BbPromise = require('bluebird');
const sinon = require('sinon');
const AwsRemove = require('../awsRemove');
const Serverless = require('../../../Serverless');
const AwsRemove = require('../');
const Serverless = require('../../../../Serverless');
describe('AwsRemove', () => {
const serverless = new Serverless();

View File

@ -2,8 +2,8 @@
const expect = require('chai').expect;
const sinon = require('sinon');
const AwsRemove = require('../awsRemove');
const Serverless = require('../../../Serverless');
const AwsRemove = require('../');
const Serverless = require('../../../../Serverless');
const BbPromise = require('bluebird');
const AWS = require('aws-sdk');

View File

@ -1,8 +1,8 @@
'use strict';
const expect = require('chai').expect;
const AwsRemove = require('../awsRemove');
const Serverless = require('../../../Serverless');
const AwsRemove = require('../');
const Serverless = require('../../../../Serverless');
describe('#validateInput()', () => {
const serverless = new Serverless();

View File

@ -1,29 +0,0 @@
'use strict';
const merge = require('lodash').merge;
const BbPromise = require('bluebird');
module.exports = {
compileStage() {
this.serverless.service.getAllFunctions().forEach(() => {
const stageTemplate = `
{
"Type" : "AWS::ApiGateway::Stage",
"Properties" : {
"DeploymentId": { "Ref": "DeploymentApigEvent" },
"RestApiId" : { "Ref": "RestApiApigEvent" },
"StageName" : "${this.options.stage}"
}
}
`;
const newStageObject = {
StageApigEvent: JSON.parse(stageTemplate),
};
merge(this.serverless.service.resources.aws.Resources, newStageObject);
});
return BbPromise.resolve();
},
};

View File

@ -1,8 +0,0 @@
'use strict';
require('./awsCompileApigEvents');
require('./compilePermissions');
require('./compileRestApi');
require('./compileDeployment');
require('./compileResources');
require('./compileMethods');

View File

@ -1,50 +0,0 @@
'use strict';
const expect = require('chai').expect;
const AwsCompileApigEvents = require('../awsCompileApigEvents');
const Serverless = require('../../../Serverless');
describe('#compileStage()', () => {
let serverless;
let awsCompileApigEvents;
const serviceResourcesAwsResourcesObjectMock = {
Resources: {
Type: 'AWS::ApiGateway::Stage',
Properties: {
DeploymentId: { Ref: 'helloDeploymentApigEvent' },
RestApiId: { Ref: 'RestApiApigEvent' },
StageName: 'dev',
},
},
};
beforeEach(() => {
serverless = new Serverless();
serverless.init();
serverless.service.resources = { aws: { Resources: {} } };
const options = {
stage: 'dev',
region: 'us-east-1',
};
awsCompileApigEvents = new AwsCompileApigEvents(serverless, options);
awsCompileApigEvents.serverless.service.functions = {
hello: {
events: {
aws: {
http_endpoints: {
post: 'foo/bar',
},
},
},
},
};
});
it('should create a stage resource', () => {
awsCompileApigEvents.compileStage().then(() => {
expect(JSON.stringify(awsCompileApigEvents.serverless.service.resources.aws.Resources))
.to.equal(JSON.stringify(serviceResourcesAwsResourcesObjectMock.Resources));
});
});
});

View File

@ -1,6 +0,0 @@
'use strict';
require('./awsRemove');
require('./removeStack');
require('./emptyS3Bucket');
require('./validateInput');

View File

@ -29,4 +29,4 @@ class Deploy {
}
}
module.exports = Deploy;
module.exports = Deploy;

View File

@ -17,10 +17,13 @@ require('../lib/plugins/create/tests/create');
require('../lib/plugins/deploy/tests/deploy');
require('../lib/plugins/invoke/tests/invoke');
require('../lib/plugins/remove/tests/remove');
require('../lib/plugins/awsDeploy/tests/all');
require('../lib/plugins/awsRemove/tests/all');
require('../lib/plugins/awsInvoke/tests/awsInvoke');
require('../lib/plugins/awsCompileFunctions/tests/awsCompileFunctions');
require('../lib/plugins/awsCompileS3Events/tests/awsCompileS3Events');
require('../lib/plugins/awsCompileScheduledEvents/tests/awsCompileScheduledEvents');
require('../lib/plugins/awsCompileApigEvents/tests/all');
// AWS Plugins Tests
require('../lib/plugins/aws/deploy/tests/all');
require('../lib/plugins/aws/deploy/compile/functions/tests');
require('../lib/plugins/aws/deploy/compile/events/s3/tests');
require('../lib/plugins/aws/deploy/compile/events/schedule/tests');
require('../lib/plugins/aws/deploy/compile/events/apiGateway/tests');
require('../lib/plugins/aws/invoke/tests');
require('../lib/plugins/aws/remove/tests/all');