index.ts raw

   1  /**
   2   * Responsive Image Variants
   3   *
   4   * A library for generating and selecting responsive image variants
   5   * per the NIP-XX Responsive Image Variants specification.
   6   *
   7   * @example
   8   * ```typescript
   9   * import {
  10   *   generateImageVariants,
  11   *   createResponsiveImageEvent,
  12   *   selectVariantForViewport
  13   * } from 'responsive-variants'
  14   *
  15   * // Generate variants from a file
  16   * const variants = await generateImageVariants(file)
  17   *
  18   * // Upload variants and collect metadata...
  19   *
  20   * // Create binding event
  21   * const event = createResponsiveImageEvent(uploadedVariants)
  22   *
  23   * // Later, select variant for display
  24   * const best = selectVariantForViewport(variants, containerWidth, devicePixelRatio)
  25   * ```
  26   */
  27  
  28  // Constants
  29  export {
  30    ImageVariant,
  31    VariantConfig,
  32    VARIANT_SIZES,
  33    VARIANT_WIDTHS,
  34    VARIANT_QUALITY,
  35    VARIANT_ORDER,
  36    ORIGINAL_QUALITY,
  37    FILE_METADATA_KIND
  38  } from './constants'
  39  
  40  // Image scaling
  41  export {
  42    ScaledImage,
  43    ScaleOptions,
  44    generateImageVariants,
  45    isSupportedImage,
  46    getExtensionFromMimeType
  47  } from './scaler'
  48  
  49  // Event creation/parsing
  50  export {
  51    UploadedVariant,
  52    ResponsiveImageEventOptions,
  53    DraftEvent,
  54    createResponsiveImageEvent,
  55    parseResponsiveImageEvent,
  56    getThumbnailVariant,
  57    getOriginalVariant
  58  } from './event'
  59  
  60  // Variant selection
  61  export {
  62    selectVariantForViewport,
  63    calculateDisplayDimensions,
  64    getPlaceholderDimensions,
  65    isValidBlobHash,
  66    extractHashFromUrl
  67  } from './selector'
  68