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.
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.
To use this package, you'll need:
- Node.js (a supported current, active LTS, or maintenance LTS release)
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
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.
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,
});
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,
);
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.