Method Middlewares/Hooks

Thanks to Iron Router’s syntax, anyone interested in this? Same goe with Meteor.methods

Meteor.publish('some-pub', {
  onBeforePub: runBeforePubFunctionLikeRecordingTimeAndCheckingArguments,
  onAfterPub: runAfterPubFunctionLikeCleaningPreviousCachedSub,
  pub: pubFunctionAddedChangedRemovedOrReturnCursor
}

I’ve been thinking, it’d be a lot easier to organize my code if stuff like argument checking, rate limiting, timestamp recording, metadata collection, etc. could be done in a function which runs directly before the actual method/publication is called. I could clean any cached subs after the pub function is called, assuming the new pub successfully ran.

A lot of my publications need to have the same generic logic run in them - record time, check arguments, determine if publication should continue or call this.stop(). I accomplished this by:

Meteor.publish('some-pub', throttleAndCheck(pubFunction))

But it seems pretty hacky, and it isn’t very pretty.