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')
...
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)
/*
[ 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 } ]
*/
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
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' ]
*/
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' ]
*/
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' ]
*/
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')