Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
caniuse-api
Advanced tools
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.
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);
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 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.
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.
request the caniuse data to check browsers compatibilities
$ npm install caniuse-api
var 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')
...
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 prefixedcaniuse.getSupport('border-radius', true)
/*
[ safari: { y: 3.1, x: 4 },
opera: { n: 10, y: 10.5 },
ios_saf: { y: 3.2, x: 3.2 },
ie_mob: { y: 10 },
ie: { n: 8, y: 9 },
firefox: { a: 2, x: 3.6, y: 3 },
chrome: { y: 4, x: 4 },
and_chr: { y: 39 } ]
*/
caniuse.isSupported(feature, browsers)
ask if a feature is supported by some browsers
caniuse.isSupported('border-radius', 'ie 8, ie 9') // false
caniuse.isSupported('border-radius', 'ie 9') // true
caniuse.find(query)
search for a caniuse feature name
Ex:
caniuse.find('radius') // ['border-radius']
caniuse.find('nothingness') // []
caniuse.find('css3')
/*
[ 'css3-boxsizing',
'css3-colors',
'css3-cursors-newer',
'css3-cursors',
'css3-tabsize' ]
*/
caniuse.getLatestStableBrowsers()
get the current version for each browser
caniuse.getLatestStableBrowsers()
/*
[ 'safari 8',
'opera 26',
'ios_saf 8.1',
'ie_mob 11',
'ie 11',
'firefox 33',
'chrome 39' ]
*/
caniuse.getBrowserScope()
returns a list of browsers currently used for the scope of operations
caniuse.getBrowserScope()
/*
[ 'safari',
'opera',
'op_mini',
'ios_saf',
'ie_mob',
'ie',
'firefox',
'chrome',
'android',
'and_uc',
'and_chr' ]
*/
caniuse.setBrowserScope(browserscope)
if you do not like the default browser scope, you can set it globally by using this method
caniuse.setBrowserScope('> 5%, last 2 versions, Firefox ESR, Opera 12.1')
1.0.0 - 2014-12-16
FAQs
request the caniuse data to check browsers compatibilities
The npm package caniuse-api receives a total of 6,786,248 weekly downloads. As such, caniuse-api popularity was classified as popular.
We found that caniuse-api demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.