nl_tokens: Build up a hash of plugin instance execution order overrides . This hash will only container an entry for instances that should run in a particular order . All other instances will be ordered by their natural ordering .
pl_tokens: function ( config , aliasMap , pluginInstances ) { var self = this ; pluginInstances . forEach ( function ( instance ) { if ( instance . runBefore ) { var befores = <mask> . _castArray ( instance . runBefore ) ; config = self . _mergeAuthorProvidedOrderWithConfigOrder ( 'before' , instance . name , befores , config , aliasMap ) ; } if ( instance . runAfter ) { var afters = self . _castArray ( instance . runAfter ) ; config = self . _mergeAuthorProvidedOrderWithConfigOrder ( 'after' , instance . name , afters , config , aliasMap ) ; } } ) ; var aliases = this . _flattenAliasMap ( aliasMap ) ; var configNames = Object . keys ( config ) . reduce ( function ( arr , key ) { arr . push ( key ) ; var befores = self . _castArray ( config [ key ] . before ) ; var afters = self . _castArray ( config [ key ] . after ) ; return arr . concat ( befores ) . concat ( afters ) ; } , [ ] ) . reduce ( function ( arr , key ) { if ( arr . indexOf ( key ) === - 1 ) { arr . push ( key ) ; } return arr ; } , [ ] ) ; var unknownConfigKeys = _ . difference ( configNames , aliases ) ; if ( unknownConfigKeys . length ) { this . _logUnknownPlugins ( unknownConfigKeys , 'config.pipeline.runOrder' ) ; } return config ; }