/webextension-store-meta

Get browser extension(webextension) item meta from Chrome Web Store and Firefox add-ons.

Primary LanguageTypeScriptMIT LicenseMIT

webextension-store-meta logo

webextension-store-meta

npm-version Build Status Coverage Status

Get browser extension(webextension) item meta from Chrome Web Store and Firefox add-ons.

This lib uses many fallback methods to improve stability and performance.

Who Use It

Shields.io Badgen
Quality metadata badges
for open source projects
Fast badge generating service

Installation

npm

npm add webextension-store-meta

yarn

yarn add webextension-store-meta

Usage

All stores share the same api.

const { ChromeWebStore } = require('webextension-store-meta/lib/chrome-web-store')
const chromeWebStore = await ChromeWebStore.load({
  id: 'xxxxxxx',
  qs: { hl: 'en' },
})
console.log(chromeWebStore.meta())

const { Amo } = require('webextension-store-meta/lib/amo')
const amo = await Amo.load({ id: 'xxxxxxx' })
console.log(amo.meta())

result = {
  name: expect.any(String),
  description: expect.any(String),
  ratingValue: expect.any(Number),
  ratingCount: expect.any(Number),
  users: expect.any(Number),
  price: expect.any(Number),
  priceCurrency: expect.any(String),
  version: expect.any(String),
  url: expect.any(String),
  image: expect.any(String),
  operatingSystem: expect.any(String),
}

Get individual property:

const { Amo } = require('webextension-store-meta/lib/amo')
const amo = await Amo.load({ id: 'xxxxxxx' })
console.log(amo.name())
console.log(amo.ratingValue())

Load config:

  • id {string} required - extension id.
  • qs {string|object} optional - querystring.
  • options object optional - undici.fetch options.

Development

git clone https://github.com/awesome-webextension/webextension-store-meta.git
cd webextension-store-meta
pnpm i
pnpm test