old_contents: /* @flow */
  
  import invariant from "invariant";
  import type { MethodApi, thumbTypes, thumbSizes, thumbB64 } from "../types";
  import createParser from "../../utils/thumbs";
  
  export default ({ client }: MethodApi) => (
    fileids: Array<number>,
    receiveThumb: thumbB64 => void,
    thumbType: thumbTypes = "auto",
    size: thumbSizes = "32x32"
  ): Promise<Array<thumbB64>> => {
    invariant(
      typeof fileids === "object" && "length" in fileids && fileids.length,
      "`fileids` is required, must be array of numbers."
    );
    invariant(["auto", "png", "jpg"].indexOf(thumbType) !== 1, 'thumbType must be one of: "auto", "png", "jpg".');
    invariant(["32x32", "120x120"].indexOf(size) !== 1, 'size must be one of: "32x32", "120x120".');
    invariant(receiveThumb, "`receiveThumb` is required.");
    invariant(typeof receiveThumb === "function", "`receiveThumb` must be a function.");
  
    let thumbs = [];
    const parser = createParser();
  
    return client
      .api("getthumbs", {
        responseType: "text",
        params: {
          fileids: fileids.join(","),
          type: thumbType,
          size: size,
          crop: 1,
        },
        onProgress: (progress: any) => {
          const progressThumbs = parser(progress.currentTarget.responseText);
          thumbs = thumbs.concat(progressThumbs);
          progressThumbs.forEach(receiveThumb);
        },
      })
      .then(response => {
        const responseThumbs = parser(response);
        responseThumbs.forEach(receiveThumb);
        return thumbs.concat(responseThumbs);
      });
  };
  
new_contents: /* @flow */
  
  import invariant from "invariant";
  import type { MethodApi, thumbTypes, thumbSizes, thumbB64 } from "../types";
  import createParser from "../../utils/thumbs";
  
  export default ({ client }: MethodApi) => (
    fileids: Array<number>,
    receiveThumb: thumbB64 => void,
    thumbType: thumbTypes = "auto",
    size: thumbSizes = "32x32"
  ): Promise<Array<thumbB64>> => {
    invariant(
      typeof fileids === "object" && "length" in fileids && fileids.length,
      "`fileids` is required, must be array of numbers."
    );
    invariant(["auto", "png", "jpg"].indexOf(thumbType) !== -1, 'thumbType must be one of: "auto", "png", "jpg".');
    invariant(["32x32", "120x120"].indexOf(size) !== -1, 'size must be one of: "32x32", "120x120".');
    invariant(receiveThumb, "`receiveThumb` is required.");
    invariant(typeof receiveThumb === "function", "`receiveThumb` must be a function.");
  
    let thumbs = [];
    const parser = createParser();
  
    return client
      .api("getthumbs", {
        responseType: "text",
        params: {
          fileids: fileids.join(","),
          type: thumbType,
          size: size,
          crop: 1,
        },
        onProgress: (progress: any) => {
          const progressThumbs = parser(progress.currentTarget.responseText);
          thumbs = thumbs.concat(progressThumbs);
          progressThumbs.forEach(receiveThumb);
        },
      })
      .then(response => {
        const responseThumbs = parser(response);
        responseThumbs.forEach(receiveThumb);
        return thumbs.concat(responseThumbs);
      });
  };
  
subject: Fix check for thumb size