fugu-api-data

1.19.1Ā ā€¢Ā PublicĀ ā€¢Ā Published

Project FuguĀ šŸ” API Data

This repo contains raw data for Project FuguĀ šŸ” APIs. The data is available in two formats: pattern.js and pattern.mjs.

Data origin

The raw data in this repository comes from a Google spreadsheet that is published as a JSON file. The index.js script fetches this data, prettifies it, and saves it locally in a module and in a no-module variant.

Obtaining fresh data

You can trigger the data fetch process described above by running the start script:

npm start

Data usage

  • For the module version:

    import patterns from './patterns.mjs';
    
    console.log(patterns.WebBluetooth);
    /*
    {
      regEx: /navigator\.bluetooth\.requestDevice\s*\(/g,
      where: 'JavaScript',
      supported: (async () => 'bluetooth' in navigator)(),
      featureDetection: `(async () => 'bluetooth' in navigator)()`,
    }
    */
  • For the no-module version (for example to use it in a service worker):

    importScripts('patterns.js');
    console.log(patterns.WebBluetooth);
    /*
    {
      regEx: /navigator\.bluetooth\.requestDevice\s*\(/g,
      where: 'JavaScript',
      supported: (async () => 'bluetooth' in navigator)(),
      featureDetection: `(async () => 'bluetooth' in navigator)()`,
    }
    */

Data format

Each API is represented as an object with the following properties:

  • regEx: A regular expression that you can use to detect the API of interest in source code when you do static source code analysis.
  • where: The resource type where the regular expression needs to match in order to be valid. Either "JavaScript" or "Web App Manifest".
  • supported: A function that returns a promise that resolves with true, false, or undefined, dependent on whether the API is supported or not (undefined means no feature detection method exists).
  • featureDetection: The source code of the feature detection method, so you can use it in an eval() for example.

Depending projects

This data is used in the following projects:

License

Apache 2.0.

Dependencies (0)

    Dev Dependencies (2)

    Package Sidebar

    Install

    npm i fugu-api-data

    Weekly Downloads

    3

    Version

    1.19.1

    License

    Apache-2.0

    Unpacked Size

    76.7 kB

    Total Files

    7

    Last publish

    Collaborators

    • tomayac