Skip to content

Commit ad7e39f

Browse files
committed
Update README and tweak format of getAllVersions() outputs
1 parent 21270bf commit ad7e39f

File tree

2 files changed

+73
-17
lines changed

2 files changed

+73
-17
lines changed

README.md

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,48 @@ Downstream browsers include the same properties as core browsers, as well as the
216216

217217
#### `outputFormat`
218218

219-
By default, this function returns an `Array` of `Objects` which can be manipulated in Javascript or output to JSON. To return a `String` in CSV format, set `outputFormat` to `csv`:
219+
By default, this function returns an `Array` of `Objects` which can be manipulated in Javascript or output to JSON.
220+
221+
To return an `Object` that nests keys , set `outputFormat` to `object`:
222+
223+
```javascript
224+
getAllVersions({
225+
outputFormat: "object",
226+
});
227+
```
228+
229+
In thise case, `getAllVersions()` returns a nested object with the browser [IDs listed below](#list-of-downstream-browsers) as keys, and versions as keys within them:
230+
231+
```javascript
232+
{
233+
"chrome": {
234+
"53": {
235+
"year": 2016,
236+
"wa_compatible": false,
237+
"release_date": "2016-09-07"
238+
},
239+
...
240+
}
241+
```
242+
243+
Downstream browsers will include extra fields for `engine` and `engine_versions`
244+
245+
```javascript
246+
{
247+
...
248+
"webview_android": {
249+
"53": {
250+
"year": 2016,
251+
"waCompatible": false,
252+
"release_date": "2016-09-07",
253+
"engine": "Blink",
254+
"engine_version": "53"
255+
},
256+
...
257+
}
258+
```
259+
260+
To return a `String` in CSV format, set `outputFormat` to `csv`:
220261
221262
```javascript
222263
getAllVersions({
@@ -227,7 +268,7 @@ getAllVersions({
227268
`getAllVersions` returns a `String` with a header row and comma-separated values for each browser version that you can write to a file or pass to another service. Core browsers will have "NULL" as the value for their `engine` and `engine_version`:
228269
229270
```csv
230-
"browser","version","year","waCompatible","release_date","engine","engine_version"
271+
"browser","version","year","wa_compatible","release_date","engine","engine_version"
231272
"chrome","53","2016","false","2016-09-07","NULL","NULL"
232273
...
233274
"ya_android","20.12","2020","false","2020-12-20","Blink","87"
@@ -237,6 +278,21 @@ getAllVersions({
237278
> [!NOTE]
238279
> The above example uses `"includeDownstreamBrowsers": true`
239280
281+
### Static resources
282+
283+
The outputs of `getAllVersions()` are available as JSON or CSV files generated on a daily basis and hosted on GitHub pages:
284+
285+
- Core browsers only
286+
- [Array](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_array.json)
287+
- [Object](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_object.json)
288+
- [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions.csv)
289+
- Including downstream browsers
290+
- [Array](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_array.json)
291+
- [Object](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_object.json)
292+
- [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions.csv)
293+
294+
These files are updated on a daily basis.
295+
240296
## Downstream browsers
241297
242298
### Limitations

src/scripts/baseline-browser-versions.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ type BrowserVersion = {
4848

4949
interface AllBrowsersBrowserVersion extends BrowserVersion {
5050
year: number;
51-
waCompatible: boolean;
51+
wa_compatible: boolean;
5252
}
5353

5454
type NestedBrowserVersions = {
5555
[browser: string]: {
5656
[version: string]: {
5757
year: number;
58-
waCompatible: boolean;
58+
wa_compatible: boolean;
5959
release_date?: string;
6060
engine?: string;
6161
engine_version?: string;
@@ -129,10 +129,10 @@ const compareVersions = (
129129
if (!incomingVersionStringMajor || !previousVersionStringMajor) {
130130
throw new Error(
131131
"One of these version strings is broken: " +
132-
incomingVersionString +
133-
" or " +
134-
previousVersionString +
135-
"",
132+
incomingVersionString +
133+
" or " +
134+
previousVersionString +
135+
"",
136136
);
137137
}
138138

@@ -145,10 +145,10 @@ const compareVersions = (
145145
if (incomingVersionStringMinor) {
146146
if (
147147
parseInt(incomingVersionStringMajor) ==
148-
parseInt(previousVersionStringMajor) &&
148+
parseInt(previousVersionStringMajor) &&
149149
(!previousVersionStringMinor ||
150150
parseInt(incomingVersionStringMinor) >
151-
parseInt(previousVersionStringMinor))
151+
parseInt(previousVersionStringMinor))
152152
) {
153153
return 1;
154154
}
@@ -525,12 +525,12 @@ export function getAllVersions(
525525
: thisBrowserAllVersions.slice(0, sliceIndex);
526526

527527
subArray.forEach((version) => {
528-
let isWaCompatible =
528+
let iswa_compatible =
529529
compareVersions(version.version, waVersion) >= 0 ? true : false;
530530
outputArray.push({
531531
...version,
532532
year: year - 1,
533-
waCompatible: isWaCompatible,
533+
wa_compatible: iswa_compatible,
534534
});
535535
});
536536

@@ -555,7 +555,7 @@ export function getAllVersions(
555555
outputArray.push({
556556
...version,
557557
year: correspondingChromiumVersion.year,
558-
waCompatible: correspondingChromiumVersion.waCompatible,
558+
wa_compatible: correspondingChromiumVersion.wa_compatible,
559559
});
560560
}
561561
});
@@ -581,7 +581,7 @@ export function getAllVersions(
581581
//@ts-ignore
582582
outputObject[version.browser][version.version] = {
583583
year: version.year,
584-
waCompatible: version.waCompatible,
584+
wa_compatible: version.wa_compatible,
585585
release_date: version.release_date,
586586
engine: version.engine,
587587
engine_version: version.engine_version,
@@ -592,19 +592,19 @@ export function getAllVersions(
592592
}
593593

594594
if (options.outputFormat === "csv") {
595-
let outputString = `"browser","version","year","waCompatible","release_date","engine","engine_version"`;
595+
let outputString = `"browser","version","year","wa_compatible","release_date","engine","engine_version"`;
596596

597597
outputArray.forEach((version) => {
598598
let outputs = {
599599
browser: version.browser,
600600
version: version.version,
601601
year: version.year,
602-
waCompatible: version.waCompatible,
602+
wa_compatible: version.wa_compatible,
603603
release_date: version.release_date ?? "NULL",
604604
engine: version.engine ?? "NULL",
605605
engine_version: version.engine_version ?? "NULL",
606606
};
607-
outputString += `\n"${outputs.browser}","${outputs.version}","${outputs.year}","${outputs.waCompatible}","${outputs.release_date}","${outputs.engine}","${outputs.engine_version}"`;
607+
outputString += `\n"${outputs.browser}","${outputs.version}","${outputs.year}","${outputs.wa_compatible}","${outputs.release_date}","${outputs.engine}","${outputs.engine_version}"`;
608608
});
609609

610610
return outputString;

0 commit comments

Comments
 (0)