What is caniuse-api?
The caniuse-api package is a Node.js module that provides access to the Can I Use database, which contains information about web technologies and their support across different browsers and platforms. It allows developers to programmatically check browser support for various web features.
What are caniuse-api's main functionalities?
Getting browser support data for a specific feature
This feature allows you to retrieve the browser support data for a specific CSS or HTML feature, such as 'flexbox'. The returned object contains information about the level of support across different browsers.
const caniuse = require('caniuse-api');
const support = caniuse.getSupport('flexbox');
console.log(support);
Finding features supported by a specific browser version
This feature enables you to find all the web technologies that are supported by a specific browser version, such as 'chrome 58'. It returns an array of feature names that are supported.
const caniuse = require('caniuse-api');
const features = caniuse.find('chrome 58');
console.log(features);
Checking if browsers support a feature
This feature checks if a particular feature, such as 'flexbox', is supported in a given browser version, like 'ie 11'. It returns a boolean indicating whether the feature is supported or not.
const caniuse = require('caniuse-api');
const isSupported = caniuse.isSupported('flexbox', 'ie 11');
console.log(isSupported);
Getting a list of browsers that fully support a feature
This feature retrieves a list of browsers that fully support a given feature, such as 'flexbox'. The returned object includes browser names and versions that have full support.
const caniuse = require('caniuse-api');
const browsers = caniuse.getSupport('flexbox', true);
console.log(browsers);
Other packages similar to caniuse-api
browserslist
The browserslist package allows you to share target browsers between different front-end tools, like Autoprefixer, Stylelint, and babel-preset-env. It uses queries to determine browser versions and does not directly provide feature support data like caniuse-api.
compat-db
Compat-db is a community-driven browser compatibility database. It provides detailed support tables for HTML5, CSS3, and more. While similar in purpose to caniuse-api, it is structured differently and may have different data sources.
mdn-browser-compat-data
This package contains data from the MDN compatibility tables and allows you to query support for different web features across browsers. It is similar to caniuse-api but is maintained by the MDN community and may have different coverage for certain features.
caniuse-api
request the caniuse data to check browsers compatibilities
Installation
$ yarn add caniuse-api
Usage
const caniuse = require('caniuse-api')
caniuse.getSupport('border-radius')
caniuse.isSupported('border-radius', 'ie 8, ie 9')
caniuse.setBrowserScope('> 5%, last 1 version')
caniuse.getSupport('border-radius')
API
caniuse.getSupport(feature)
ask since which browsers versions a feature is available
y
: Since which browser version the feature is availablen
: Up to which browser version the feature is unavailablea
: Up to which browser version the feature is partially supportedx
: Up to which browser version the feature is prefixed
caniuse.getSupport('border-radius', true)
caniuse.isSupported(feature, browsers)
ask if a feature is supported by some browsers
caniuse.isSupported('border-radius', 'ie 8, ie 9')
caniuse.isSupported('border-radius', 'ie 9')
caniuse.find(query)
search for a caniuse feature name
Ex:
caniuse.find('radius')
caniuse.find('nothingness')
caniuse.find('css3')
caniuse.getLatestStableBrowsers()
get the current version for each browser
caniuse.getLatestStableBrowsers()
caniuse.getBrowserScope()
returns a list of browsers currently used for the scope of operations
caniuse.getBrowserScope()
caniuse.setBrowserScope(browserscope)
if you do not like the default browser scope, you can set it globally by using this method
- browserscope should be a 'autoprefixer' formatted string
caniuse.setBrowserScope('> 5%, last 2 versions, Firefox ESR, Opera 12.1')