compute-baseline
TypeScript icon, indicating that this package has built-in type declarations

0.1.0-dev-20240425134050-57ad8a7 • Public • Published

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.

Readme

Keywords

none

Package Sidebar

Install

npm i compute-baseline

Weekly Downloads

77

Version

0.1.0-dev-20240425134050-57ad8a7

License

Apache-2.0

Unpacked Size

75.7 kB

Total Files

51

Last publish

Collaborators

  • tidoust
  • ddbeck