From 45e7dc314b026f53c6a1dba311577c39b0d11bce Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Thu, 23 Jan 2025 06:51:45 +0000 Subject: [PATCH] fix(sass): manually match arches { arm: armv7, ia32: x86, x64: amd64 } --- sass/releases.js | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/sass/releases.js b/sass/releases.js index 328c3a2..6dc913b 100644 --- a/sass/releases.js +++ b/sass/releases.js @@ -1,21 +1,46 @@ 'use strict'; -var github = require('../_common/github.js'); -var owner = 'sass'; -var repo = 'dart-sass'; +let Releases = module.exports; + +let Github = require('../_common/github.js'); +let owner = 'sass'; +let repo = 'dart-sass'; + +// https://github.com/sass/dart-sass/releases/ + +/** @type {Object.} */ +let archMap = { + ia32: 'x86', + x64: 'amd64', + arm: 'armv7', +}; +let keys = Object.keys(archMap); +let keyList = keys.join('|'); +let archRe = new RegExp(`\\b(${keyList})\\b`); + +Releases.latest = function () { + return Github.getDistributables(null, owner, repo).then(function (all) { + Object.assign(all, { + _names: ['dart-sass', 'sass'], + }); + + for (let asset of all.releases) { + let m = asset.name.match(archRe); + let arch = m?.[1]; + if (arch) { + asset.arch = archMap[arch]; + } + } -module.exports = function () { - return github(null, owner, repo).then(function (all) { - all._names = ['dart-sass', 'sass']; return all; }); }; if (module === require.main) { - module.exports().then(function (all) { + Releases.latest().then(function (all) { all = require('../_webi/normalize.js')(all); // just select the first 5 for demonstration - all.releases = all.releases.slice(0, 5); + all.releases = all.releases.slice(0, 10); console.info(JSON.stringify(all, null, 2)); }); }