Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
176 changes: 76 additions & 100 deletions lib/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -464,49 +464,51 @@ Lambda.prototype._setRunTimeEnvironmentVars = function (program) {
}
}

Lambda.prototype._uploadExisting = (lambda, params, cb) => {
const request = lambda.updateFunctionCode({
'FunctionName': params.FunctionName,
'ZipFile': params.Code.ZipFile,
'Publish': params.Publish
}, (err, data) => {
if (err) {
return cb(err, data)
}

return lambda.updateFunctionConfiguration({
Lambda.prototype._uploadExisting = (lambda, params) => {
return new Promise((resolve, reject) => {
const request = lambda.updateFunctionCode({
'FunctionName': params.FunctionName,
'Description': params.Description,
'Handler': params.Handler,
'MemorySize': params.MemorySize,
'Role': params.Role,
'Timeout': params.Timeout,
'Runtime': params.Runtime,
'VpcConfig': params.VpcConfig,
'Environment': params.Environment,
'DeadLetterConfig': params.DeadLetterConfig,
'TracingConfig': params.TracingConfig
}, (err, data) => {
return cb(err, data)
'ZipFile': params.Code.ZipFile,
'Publish': params.Publish
}, (err) => {
if (err) return reject(err)

lambda.updateFunctionConfiguration({
'FunctionName': params.FunctionName,
'Description': params.Description,
'Handler': params.Handler,
'MemorySize': params.MemorySize,
'Role': params.Role,
'Timeout': params.Timeout,
'Runtime': params.Runtime,
'VpcConfig': params.VpcConfig,
'Environment': params.Environment,
'DeadLetterConfig': params.DeadLetterConfig,
'TracingConfig': params.TracingConfig
}, (err, data) => {
if (err) return reject(err)
resolve(data)
})
})
})

request.on('retry', (response) => {
console.log(response.error.message)
console.log('=> Retrying')
request.on('retry', (response) => {
console.log(response.error.message)
console.log('=> Retrying')
})
})

return request
}

Lambda.prototype._uploadNew = (lambda, params, cb) => {
const request = lambda.createFunction(params, (err, data) => cb(err, data))
request.on('retry', (response) => {
console.log(response.error.message)
console.log('=> Retrying')
Lambda.prototype._uploadNew = (lambda, params) => {
return new Promise((resolve, reject) => {
const request = lambda.createFunction(params, (err, data) => {
if (err) return reject(err)
resolve(data)
})
request.on('retry', (response) => {
console.log(response.error.message)
console.log('=> Retrying')
})
})

return request
}

Lambda.prototype._readArchive = function (program, archiveCallback) {
Expand Down Expand Up @@ -614,9 +616,9 @@ Lambda.prototype._listEventSourceMappings = function (lambda, params, cb) {
})
}

Lambda.prototype._updateEventSources = (lambda, functionName, existingEventSourceList, eventSourceList, cb) => {
Lambda.prototype._updateEventSources = (lambda, functionName, existingEventSourceList, eventSourceList) => {
if (eventSourceList == null) {
return new Promise(resolve => cb(null, []))
return Promise.resolve([])
}
const updateEventSourceList = []
// Checking new and update event sources
Expand Down Expand Up @@ -697,15 +699,15 @@ Lambda.prototype._updateEventSources = (lambda, functionName, existingEventSourc
}
return Promise.resolve()
})).then((data) => {
cb(null, data)
return Promise.resolve(data)
}).catch((err) => {
cb(err)
return Promise.reject(err)
})
}

Lambda.prototype._updateScheduleEvents = (scheduleEvents, functionArn, scheduleList, cb) => {
Lambda.prototype._updateScheduleEvents = (scheduleEvents, functionArn, scheduleList) => {
if (scheduleList == null) {
return new Promise(resolve => cb(null, []))
return Promise.resolve([])
}

const paramsList = scheduleList.map((schedule) =>
Expand All @@ -720,9 +722,9 @@ Lambda.prototype._updateScheduleEvents = (scheduleEvents, functionArn, scheduleL
// Since `scheduleEvents.add(params)` returns only `{}` if it succeeds
// it is not very meaningful.
// Therefore, return the params used for execution
cb(null, paramsList)
return Promise.resolve(paramsList)
}).catch((err) => {
cb(err)
return Promise.reject(err)
})
}

Expand Down Expand Up @@ -815,44 +817,31 @@ Lambda.prototype.deploy = function (program) {
}, (err) => {
if (err) {
// Function does not exist
return _this._uploadNew(lambda, params, function (err, results) {
if (err) {
throw err
}
return _this._uploadNew(lambda, params).then((results) => {
console.log('=> Zip file(s) done uploading. Results follow: ')
console.log(results)

// This code is on its way to Promise.
// From now on, callback will not be used.
return Promise.all([
new Promise((resolve, reject) => {
_this._updateEventSources(
lambda,
params.FunctionName,
[],
eventSourceList.EventSourceMappings,
(err, results) => {
if (err) return reject(err)
resolve(results)
}
)
}),
new Promise((resolve, reject) => {
_this._updateScheduleEvents(
scheduleEvents,
results.FunctionArn,
eventSourceList.ScheduleEvents,
(err, results) => {
if (err) return reject(err)
resolve(results)
}
)
})
_this._updateEventSources(
lambda,
params.FunctionName,
[],
eventSourceList.EventSourceMappings
),
_this._updateScheduleEvents(
scheduleEvents,
results.FunctionArn,
eventSourceList.ScheduleEvents
)
]).then((results) => {
cb(null, results)
}).catch((err) => {
cb(err)
})
}).catch((err) => {
return Promise.reject(err)
})
}

Expand All @@ -867,36 +856,23 @@ Lambda.prototype.deploy = function (program) {
// This code is on its way to Promise.
// From now on, callback will not be used.
return Promise.all([
new Promise((resolve, reject) => {
_this._uploadExisting(lambda, params, (err, results) => {
if (err) {
throw err
}
console.log('=> Zip file(s) done uploading. Results follow: ')
console.log(results)
_this._updateScheduleEvents(
scheduleEvents,
results.FunctionArn,
eventSourceList.ScheduleEvents,
(err, results) => {
if (err) return reject(err)
resolve(results)
}
)
})
}),
new Promise((resolve, reject) => {
_this._updateEventSources(
lambda,
params.FunctionName,
existingEventSourceList,
eventSourceList.EventSourceMappings,
(err, results) => {
if (err) return reject(err)
resolve(results)
}
_this._uploadExisting(lambda, params).then((results) => {
console.log('=> Zip file(s) done uploading. Results follow: ')
console.log(results)
return _this._updateScheduleEvents(
scheduleEvents,
results.FunctionArn,
eventSourceList.ScheduleEvents
)
})
}).catch((err) => {
return Promise.reject(err)
}),
_this._updateEventSources(
lambda,
params.FunctionName,
existingEventSourceList,
eventSourceList.EventSourceMappings
)
]).then((results) => {
cb(null, results)
}).catch((err) => {
Expand Down
Loading