JSPM

bing-image-search-async-iterator

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q45291F
  • License MIT

Async iterator for Bing Image Search API call responses

Package Exports

  • bing-image-search-async-iterator

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (bing-image-search-async-iterator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Bing Image Search Async Iterator

Query Bing Image Search API (v7) and get an async iterator of response objects.

Motivation

Bing Image Search API returns up to 150 results per API call. To access more results, you need to specify the proper offset request parameter in a subsequent API call. This module automates the process of filling the offset parameter value and determines when to stop making API calls— what you get in the end is a async iterator of parsed responses.

Response objects

Please note that response objects wrap search results in the value field.

{
  _type: 'Images',
  totalEstimatedMatches: 834,
  nextOffset: 195,
  value: [
    {
      name: ...,
      thumbnailUrl: ...,
      datePublished: ...,
      contentUrl: ...,
      ...
    },
    ...
  ],
  ...
}

This module doesn't unwrap search results for you because response objects may contain additional metadata (e.g., queryExpansions, pivotSuggestions, similarTerms and relatedSearches).

Installation

npm install --save bing-image-search-async-iterator

Example Usage

This example prints out unwrapped search results returned from the API calls.

const search = require('bing-image-search-async-iterator');

(async () => {
  const responses = search({
    key:'<YOUR_BING_IMAGE_SEARCH_API_SUBSRIPTION_KEY>',
    query: 'kittens',
    amount: 151,
  })
  for await (const response of responses) {
    for (const result of response.value) {
      console.log(result);
    }
  }
})();

Options

Parameter Type Default Description
key string (required) Bing Image Search API Subscription Key
query string (required) Search query
amount integer 2000 Desired count of results
market string Market Code of request origin (e.g., en-US)
safeSearch string Moderate Filter adult content (Off, Moderate, Strict)
offset integer 0 Offset of the initial API call
count integer 150 Count of results per API call (lower this value may result in more API calls)
fetchCb function fetch Callback to construct a request that returns a response promise

Features

  • Turns a search query into an async iterator of search API call response objects
  • Ends iterator when requested amount is reached or when there are no more results
  • Avoids results overlap by specifying the offset API parameter with previous response's nextOffset value
  • Fills in X-MSEdge-ClientID automatically based on previous API responses

License

MIT