This repo contains raw data for Project Fugu 🐡 APIs.
APACHE-2.0 License
This repo contains raw data for Project Fugu 🐡 APIs. The data is available
in two formats: pattern.js
and pattern.mjs
.
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.
You can trigger the data fetch process described above by running the start
script:
npm start
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)()`,
}
*/
Each API is represented as an object with the following properties:
regEx
: A regular expression that you can use to detect the API of interestwhere
: The resource type where the regular expression needs to match in"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 notundefined
means no feature detection method exists).featureDetection
: The source code of the feature detection method, so youeval()
for example.This data is used in the following projects:
custom_metrics/fugu-apis.js
.patternsFunc.js
background.js
.Apache 2.0.