Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

compute-baseline

Package Overview
Dependencies
Maintainers
2
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

compute-baseline

A library for computing web-features statuses from browser compatibility data

  • 0.1.1
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
1.2K
increased by4.73%
Maintainers
2
Weekly downloads
 
Created
Source

compute-baseline

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.

FAQs

Package last updated on 13 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc