Skip to content

Latest commit

 

History

History
82 lines (61 loc) · 1.63 KB

README.md

File metadata and controls

82 lines (61 loc) · 1.63 KB

WebExtensions Schema

Programmatically consume the WebExtensions Schema JSON files. Defaults to the latest stable ones.

Install

npm i webextensions-schema

Usage

import webExtensionsSchema from 'webextensions-schema';

(async () => {
  const schema = await webExtensionsSchema();
  // do something with `schema`
})();

API

webExtensionsSchema([options])

  • Arguments
    • {Object} options
      • tag Any tag, except tip, from mozilla-unified is valid. Default: Automatically fetches the latest stable release tag from download.mozilla.org.

Schema files for a tag that don't exist in the .schemas directory are downloaded once and saved there for future calls. Already ships with some schema files (feel free to PR to add newer ones).

Returns a Promise resolving to the schema instance.

schema.raw()

Returns an Object with schema filename as key and parsed JSON as value.

Sample:

{
  'tabs.json': [
    { namespace: 'manifest', types: [Array] },
    {
      namespace: 'tabs',
      ...
    }
  ]
}

schema.namespaces()

Returns an Object with namespace name as key and an Array of namespaces as value.

Sample:

{
  manifest: [
    { namespace: 'manifest', types: [Array] },
    { namespace: 'manifest', types: [Array] },
    ...
  ],
  tabs: [
    {
      namespace: 'tabs',
      functions: [
        [Object], [Object], [Object],
        ...
      ]
    }
  ]
}

schema.tag()

Returns a string with tag name that was used for the schema instance.