Skip to content

Programmatically consume the WebExtensions Schema JSON files

License

Notifications You must be signed in to change notification settings

stoically/webextensions-schema

Repository files navigation

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.

About

Programmatically consume the WebExtensions Schema JSON files

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published