client/lib/wporg/index.js
function( options = {} ) {
		const { search, page, number } = options;
		const query = {
			action: 'query_themes',
			// Return an `author` object containing `user_nicename` and `display_name` attrs.
			// This is for consistency with WP.com, which always returns the display name as `author`.
			'request[fields][extended_author]': true,
			'request[search]': search,
			'request[page]': page,
			'request[per_page]:': number,
		};

		return superagent
			.get( WPORG_THEMES_ENDPOINT )
			.set( 'Accept', 'application/json' )
			.query( query )
			.then( ( { body } ) => body );
	}
function( options = {} ) {
		const { search, page, number } = options;
		const query = {
			action: 'query_themes',
			// Return an `author` object containing `user_nicename` and `display_name` attrs.
			// This is for consistency with WP.com, which always returns the display name as `author`.
			'request[fields][extended_author]': true,
			'request[search]': search,
			'request[page]': page,
			'request[per_page]:': number,
		};

		return superagent
			.get( WPORG_THEMES_ENDPOINT )
			.set( 'Accept', 'application/json' )
			.query( query )
			.then( ( { body } ) => body );
	}
Get information about a given theme from the WordPress.org API.

@param  {Object}        options         Theme query
@param  {String}        options.search  Search string
@param  {Number}        options.number  How many themes to return per page
@param  {Number}        options.page    Which page of matching themes to return
@returns {Promise.<Object>}             A promise that returns an object containing a `themes` array and an `info` object