Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F84695751
README.md
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, Sep 24, 09:32
Size
3 KB
Mime Type
text/x-java
Expires
Thu, Sep 26, 09:32 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
20965067
Attached To
rOACCT Open Access Compliance Check Tool (OACCT)
README.md
View Options
# caniuse-lite
A smaller version of caniuse-db, with only the essentials!
## Why?
The full data behind [Can I use][1] is incredibly useful for any front end
developer, and on the website all of the details from the database are displayed
to the user. However in automated tools, [many of these fields go unused][2];
it's not a problem for server side consumption but client side, the less
JavaScript that we send to the end user the better.
caniuse-lite then, is a smaller dataset that keeps essential parts of the data
in a compact format. It does this in multiple ways, such as converting `null`
array entries into empty strings, representing support data as an integer rather
than a string, and using base62 references instead of longer human-readable
keys.
This packed data is then reassembled (via functions exposed by this module) into
a larger format which is mostly compatible with caniuse-db, and so it can be
used as an almost drop-in replacement for caniuse-db for contexts where size on
disk is important; for example, usage in web browsers. The API differences are
very small and are detailed in the section below.
## API
```js
import * as lite from 'caniuse-lite';
```
### `lite.agents`
caniuse-db provides a full `data.json` file which contains all of the features
data. Instead of this large file, caniuse-lite provides this data subset
instead, which has the `browser`, `prefix`, `prefix_exceptions`, `usage_global`
and `versions` keys from the original.
In addition, the subset contains the `release_date` key with release dates (as timestamps) for each version:
```json
{
"release_date": {
"6": 998870400,
"7": 1161129600,
"8": 1237420800,
"9": 1300060800,
"10": 1346716800,
"11": 1381968000,
"5.5": 962323200
}
}
```
### `lite.feature(js)`
The `feature` method takes a file from `data/features` and converts it into
something that more closely represents the `caniuse-db` format. Note that only
the `title`, `stats` and `status` keys are kept from the original data.
### `lite.features`
The `features` index is provided as a way to query all of the features that
are listed in the `caniuse-db` dataset. Note that you will need to use the
`feature` method on values from this index to get a human-readable format.
### `lite.region(js)`
The `region` method takes a file from `data/regions` and converts it into
something that more closely represents the `caniuse-db` format. Note that *only*
the usage data is exposed here (the `data` key in the original files).
## License
The data in this repo is available for use under a CC BY 4.0 license
(http://creativecommons.org/licenses/by/4.0/). For attribution just mention
somewhere that the source is caniuse.com. If you have any questions about using
the data for your project please contact me here: http://a.deveria.com/contact
[1]: http://caniuse.com/
[2]: https://github.com/Fyrd/caniuse/issues/1827
## Security contact information
To report a security vulnerability, please use the
[Tidelift security contact](https://tidelift.com/security).
Tidelift will coordinate the fix and disclosure.
Event Timeline
Log In to Comment