Skip to content

Commit ffe192f

Browse files
committed
New logic for checking last updated
Also adds scripts to update the date the package was last updated to be executed alongside version bumps with `npm run prepare`.
1 parent 0739415 commit ffe192f

File tree

6 files changed

+39
-16
lines changed

6 files changed

+39
-16
lines changed

index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
const getBaselineVersions = require('./scripts/get-baseline-versions')
22
module.exports = getBaselineVersions();
3+
4+
const compareVersions = require('./scripts/compare-versions-warning');
5+
compareVersions();

lastUpdated.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"lastUpdated":"2025-03-28"}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
"url": "https://github.com/web-platform-dx/browserslist-config-baseline/issues"
1717
},
1818
"scripts": {
19-
"test": "node test.mjs"
19+
"test": "node test.mjs",
20+
"prepare": "node scripts/update-last-updated.js"
2021
},
2122
"keywords": [
2223
"browserslist",

scripts/compare-versions-warning.js

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,33 @@
1-
module.exports = function (last_updated) {
1+
module.exports = function () {
22

3-
var cv = require('compare-versions');
3+
const cv = require('compare-versions');
4+
const lastUpdated = require('../lastUpdated.json').lastUpdated;
45

5-
var date_one_month_ago = new Date().setMonth(new Date().getMonth() - 1);
6+
let dateOneMonthAgo = new Date();
7+
dateOneMonthAgo.setMonth(new Date().getMonth() - 1);
68

7-
if (new Date(last_updated) < date_one_month_ago) {
8-
9-
const package_json = require('../package.json');
9+
if (new Date(lastUpdated) < dateOneMonthAgo) {
1010

1111
fetch('https://registry.npmjs.org/browserslist-config-baseline')
1212
.then((response) => response.json())
1313
.then(data => {
14-
var local_version = package_json.version;
15-
var remote_version = data['dist-tags'].latest;
16-
if (cv.compare(local_version, remote_version, '<')) {
14+
const packageJson = require('../package.json')
15+
var localVersion = packageJson.version;
16+
var remoteVersion = data['dist-tags'].latest;
17+
if (cv.compare(localVersion, remoteVersion, '<')) {
1718
console.warn(
18-
'Browserslist: browserslist-config-baseline \n' +
19-
'has not been updated in over a month and \n' +
20-
'you are using an out of date definition of \n' +
21-
'Baseline Widely Available. \n\n' +
19+
`You are using browserlist-config-baseline version: \t${localVersion} \n` +
20+
`The latest available version is: \t\t\t${remoteVersion} \n` +
21+
'You may be using stale data. Please update browserslist-config-baseline \n' +
22+
'to ensure your config is accurate. \n\n' +
2223
' # If using npm, please run: \n' +
2324
' npm i browserslist-config-baseline@latest \n\n' +
2425
' # If using yarn, please run: \n' +
2526
' yarn upgrade --latest browserslist-config-baseline \n\n' +
2627
' # If using bun, please run: \n' +
27-
' bun update browserslist-config-baseline@latest \n\n'
28+
' bun update browserslist-config-baseline@latest \n\n' +
29+
'Consider adding whichever command is appropriate to your ' +
30+
'build scripts to avoid seeing this message in future.'
2831
)
2932
}
3033
})

scripts/update-last-updated.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const fs = require('node:fs');
2+
const output = JSON.stringify({
3+
lastUpdated: new Date().toISOString().slice(0, 10)
4+
});
5+
try {
6+
fs.writeFileSync(
7+
'./lastUpdated.json',
8+
output,
9+
{ encoding: 'utf-8' }
10+
);
11+
} catch (e) {
12+
console.error(e);
13+
}

with-downstream/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
const getBaselineVersions = require('../scripts/get-baseline-versions')
2-
32
module.exports = getBaselineVersions({ includeDownstreamBrowsers: true });
3+
4+
const compareVersions = require('../scripts/compare-versions-warning');
5+
compareVersions();

0 commit comments

Comments
 (0)