function (context) {
    return function (plugin) {
      var pattern = context.pattern;
      if (plugin.match(pattern, opts) === true) {
        plugin.transform(pattern, opts, function (items) {
          if (items instanceof Error) {
            throw items;
          } else {
            // store transformed pattern in context
            context.pattern = items;
          }
        });
      } else {
        // plugin doesn't apply
      }
    };
  }
function (context) {
    return function (plugin) {
      var pattern = context.pattern;
      if (plugin.match(pattern, opts) === true) {
        plugin.transform(pattern, opts, function (items) {
          if (items instanceof Error) {
            throw items;
          } else {
            
            context.pattern = items;
          }
        });
      } else {
        
      }
    };
  }
function ( context ) { return function ( plugin ) { var pattern = context . pattern ; if ( plugin . match ( pattern , opts ) === true ) { plugin . transform ( pattern , opts , function ( items ) { if ( items instanceof Error ) { throw items ; } else { // store transformed pattern in context context . pattern = items ; } } ) ; } else { // plugin doesn't apply } } ; }
FIXME: handler for plugin management
FIXME : handler for plugin management