Skip to content

Commit

Permalink
Running Standard; code style
Browse files Browse the repository at this point in the history
  • Loading branch information
timdp committed Sep 14, 2015
1 parent b164bed commit 7e4d40c
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 5 deletions.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
"mkdirp": "^0.5.1",
"sinon": "^1.15.4",
"sinon-chai": "^2.8.0",
"standard": "^5.2.2",
"tmp": "0.0.27"
},
"main": "dist/index.js",
Expand All @@ -54,7 +55,7 @@
"prepublish": "npm run clean && npm run build",
"clean": "gulp clean",
"build": "gulp build",
"test": "gulp test"
"test": "node node_modules/standard/bin/cmd.js && gulp test"
},
"repository": "timdp/winston-aws-cloudwatch",
"bugs": {
Expand Down
1 change: 1 addition & 0 deletions src/index.es6
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ class CloudWatchTransport extends Transport {
relay.on('error', err => console.error('CloudWatch error: %s', err))
this._queue = relay.start()
}

log (level, msg, meta, callback) {
this._queue.push(new LogItem(+new Date(), level, msg, meta))
callback(null, true)
Expand Down
10 changes: 8 additions & 2 deletions src/lib/cloudwatch-client.es6
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@ export default class CloudWatchClient {
const client = new AWS.CloudWatchLogs(this._options.awsConfig)
this._client = Promise.promisifyAll(client)
}

submit (batch) {
debug('submit', {batch})
return this._getSequenceToken()
.then(sequenceToken => this._putLogEvents(batch, sequenceToken))
.then(({nextSequenceToken}) => this._storeSequenceToken(nextSequenceToken))
}

_putLogEvents (batch, sequenceToken) {
debug('putLogEvents', {batch, sequenceToken})
const params = {
Expand All @@ -38,24 +40,28 @@ export default class CloudWatchClient {
}
return this._client.putLogEventsAsync(params)
}

_getSequenceToken () {
const now = +new Date()
const isStale = (!this._sequenceTokenInfo ||
this._sequenceTokenInfo.date + this._options.maxSequenceTokenAge < now)
return isStale ? this._fetchAndStoreSequenceToken() :
Promise.resolve(this._sequenceTokenInfo.sequenceToken)
return isStale ? this._fetchAndStoreSequenceToken()
: Promise.resolve(this._sequenceTokenInfo.sequenceToken)
}

_fetchAndStoreSequenceToken () {
debug('fetchSequenceToken')
return this._findLogStream()
.then(({uploadSequenceToken}) => this._storeSequenceToken(uploadSequenceToken))
}

_storeSequenceToken (sequenceToken) {
debug('storeSequenceToken', {sequenceToken})
const date = +new Date()
this._sequenceTokenInfo = {sequenceToken, date}
return sequenceToken
}

_findLogStream (nextToken) {
debug('findLogStream', {nextToken})
const params = {
Expand Down
5 changes: 3 additions & 2 deletions src/lib/cloudwatch-event-formatter.es6
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ export default class CloudWatchEventFormatter {
timestamp: item.date
}
}

static _logItemToCloudWatchMessage (item) {
const meta = isEmpty(item.meta) ? '' :
' ' + JSON.stringify(item.meta, null, 2)
const meta = isEmpty(item.meta) ? ''
: ' ' + JSON.stringify(item.meta, null, 2)
return `[${item.level.toUpperCase()}] ${item.message}${meta}`
}
}
4 changes: 4 additions & 0 deletions src/lib/log-item.es6
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,19 @@ export default class LogItem {
this._message = message
this._meta = meta
}

get date () {
return this._date
}

get level () {
return this._level
}

get message () {
return this._message
}

get meta () {
return this._meta
}
Expand Down
4 changes: 4 additions & 0 deletions src/lib/queue.es6
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,22 @@ export default class Queue extends EventEmitter {
super()
this._contents = []
}

get size () {
return this._contents.length
}

push (item) {
debug('push', {item})
this._contents.push(item)
this.emit('push', item)
}

head (num) {
debug('head', {num})
return this._contents.slice(0, num)
}

remove (num) {
debug('remove', {num})
this._contents.splice(0, num)
Expand Down
5 changes: 5 additions & 0 deletions src/lib/relay.es6
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export default class Relay extends EventEmitter {
this._limiter = null
this._queue = null
}

start () {
debug('start')
if (this._queue) {
Expand All @@ -32,10 +33,12 @@ export default class Relay extends EventEmitter {
this._scheduleSubmission()
return this._queue
}

_scheduleSubmission () {
debug('scheduleSubmission')
this._limiter.schedule(() => this._submit())
}

_submit () {
if (this._queue.size === 0) {
debug('submit: queue empty')
Expand All @@ -48,10 +51,12 @@ export default class Relay extends EventEmitter {
.then(() => this._onSubmitted(num), err => this._onError(err))
.then(() => this._scheduleSubmission())
}

_onSubmitted (num) {
debug('onSubmitted', {num})
this._queue.remove(num)
}

_onError (err) {
debug('onError', {error: err})
this.emit('error', err)
Expand Down

0 comments on commit 7e4d40c

Please sign in to comment.