whole_func_string: function plugin( state, action ) {
  	switch ( action.type ) {
  		case PLUGIN_SETUP_INSTALL:
  		case PLUGIN_SETUP_ACTIVATE:
  		case PLUGIN_SETUP_CONFIGURE:
  		case PLUGIN_SETUP_FINISH:
  			if ( state.slug !== action.slug ) {
  				return state;
  			}
  			return Object.assign( {}, state, {
  				status: pluginStatus( state.status, action ),
  			} );
  		case PLUGIN_SETUP_ERROR:
  			if ( state.slug !== action.slug ) {
  				return state;
  			}
  			return Object.assign( {}, state, {
  				status: pluginStatus( state.status, action ),
  				error: action.error,
  			} );
  		default:
  			return state;
  	}
  }
func_code_string: function plugin( state, action ) {
  	switch ( action.type ) {
  		case PLUGIN_SETUP_INSTALL:
  		case PLUGIN_SETUP_ACTIVATE:
  		case PLUGIN_SETUP_CONFIGURE:
  		case PLUGIN_SETUP_FINISH:
  			if ( state.slug !== action.slug ) {
  				return state;
  			}
  			return Object.assign( {}, state, {
  				status: pluginStatus( state.status, action ),
  			} );
  		case PLUGIN_SETUP_ERROR:
  			if ( state.slug !== action.slug ) {
  				return state;
  			}
  			return Object.assign( {}, state, {
  				status: pluginStatus( state.status, action ),
  				error: action.error,
  			} );
  		default:
  			return state;
  	}
  }
func_documentation_string: /*
  Tracks the state of a single premium plugin object