By the W3C WebDX Community Group and contributors.
compute-baseline
computes preliminary Baseline statuses from @mdn/browser-compat-data
feature keys.
You can use compute-baseline
to help you find interoperable web platform features, propose new web-features
features, or compare support between features.
compute-baseline
also provides utility classes for working with @mdn/browser-compat-data
generally.
Limitations
If you need authoritative Baseline statuses, check out the web-features
package instead.
Don't use compute-baseline
to generate publishable Baseline statuses for arbitrary web platform features.
The results of compute-baseline
invocations have not received editorial review.
Strictly speaking, a Baseline status requires editorial review, so statuses generated by compute-baseline
are tentative.
If you need authoritative Baseline statuses, check out the web-features
package instead.
You can use compute-baseline
to explore possibilities or do error correction.
For example, you might use compute-baseline
to hide a Baseline status, when showing a broader feature's status might be misleading.
If you're not sure whether your application fits with the definition of Baseline, please file an issue.
Prerequisites
To use this package, you'll need:
Install
To install the package, run:
npm install --save compute-baseline
If you wish to specify which version of @mdn/browser-compat-data
(or manage its upgrades explicitly, such as with Dependabot), then install the latest @mdn/browser-compat-data
too.
Run:
npm install --save @mdn/browser-compat-data@latest
Usage
Check support for a group of compat keys
import { computeBaseline } from "compute-baseline";
computeBaseline({
compatKeys: [
"javascript.builtins.AsyncFunction",
"javascript.builtins.AsyncFunction.AsyncFunction",
"javascript.operators.async_function",
"javascript.operators.await",
"javascript.statements.async_function",
],
});
Returns:
{
baseline: 'high',
baseline_low_date: '2017-04-05',
baseline_high_date: '2019-10-05',
discouraged: false,
support: Map(7) { … }
toJSON: [Function: toJSON]
}
Use the toJSON()
method to get a web-features
-like plain JSON representation of the status.
Check support for a single support key
Sometimes it can be helpful to know if parent features have less support than the specific feature you're checking (for example, the parent is behind a prefix or flag) when computing a status for a deeply-nested feature.
This is typically most interesting when checking a single key.
Use the withAncestors
option:
import { computeBaseline } from "compute-baseline";
computeBaseline({
compatKeys: ["api.Notification.body"],
withAncestors: true,
});
Bring your own compatibility data
If you don't want to import @mdn/browser-compat-data
as your data source, you can bring your own schema-compatible compat data.
import data from "some-parsed-json-file";
import { computeBaseline } from "compute-baseline";
import { Compat } from "compute-baseline/browser-compat-data";
const compat = new Compat(data);
computeBaseline(
{
compatKeys: ["css.properties.border-color"],
},
compat,
);
Helping out and getting help
compute-baseline
is part of the W3C WebDX Community Group's web-features project.
Go to web-platform-dx/web-features for more information on contributing or getting help.