|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- # 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.
|