Skip to content

Commit 1a61d16

Browse files
committed
ref(triplet): sort, rename vars, add some jsdoc
1 parent 77ff3a3 commit 1a61d16

File tree

1 file changed

+32
-21
lines changed

1 file changed

+32
-21
lines changed

triplet.js

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,44 +18,49 @@ var Triplet = ('object' === typeof module && exports) || {};
1818

1919
Triplet.TERMS_CHANNEL = ['master', 'nightly'];
2020
Triplet.TERMS_CHECKSUM = [
21-
'MD5SUMS',
2221
'B3SUMS',
22+
'checksum',
23+
'MD5SUMS',
2324
'SHA1SUMS',
2425
'SHA256SUMS',
2526
'SHA512SUMS',
26-
'checksum',
2727
];
2828
Triplet.TERMS_NON_BUILD = [
29-
/(\b|_)(source)(\b|_)/,
30-
/(\b|_)(vendor)(\b|_)/, // TODO rclone go vendor
31-
/(\b|_)(src)(\b|_)/,
32-
/(\b|_)(setup)(\b|_)/,
33-
/(\b|_)(symbols)(\b|_)/,
34-
/(\b|_)(bootstrap)(\b|_)/,
29+
'bootstrap',
30+
'debug', // TODO dashd
31+
'setup',
32+
'source',
33+
'src',
34+
'symbols',
3535
// a build, but not one you'd use given the alternative
36-
/(\b|_)(unsigned)(\b|_)/, // TODO dashd
37-
/(\b|_)(debug)(\b|_)/, // TODO dashd
36+
'unsigned', // TODO dashd
37+
'vendor', // TODO rclone go vendor
3838
];
39+
Triplet._RE_TERMS_NON_BUILD = [];
40+
for (let term of Triplet.TERMS_NON_BUILD) {
41+
let re = new RegExp(`(\\b|_)(${term})(\\b|_)`);
42+
Triplet._RE_TERMS_NON_BUILD.push(re);
43+
}
3944
Triplet.TERMS_EXTS_NON_BUILD = [
4045
'.1',
46+
'.asc',
4147
'.b3',
48+
'.json',
49+
'.md5',
50+
'.pem',
51+
'.sbom',
4252
'.sha256',
4353
'.sha256sum',
4454
'.sha512',
45-
'.md5',
46-
'.txt',
4755
'.sig',
48-
'.pem',
49-
'.sbom',
50-
'.json',
51-
'.asc',
56+
'.txt',
5257
// no android
5358
'.apk',
54-
// windows something... not sure
55-
'.msixbundle',
5659
// we can't use these yet
5760
'.deb',
5861
'.rpm',
62+
// windows something... not sure
63+
'.msixbundle',
5964
];
6065

6166
// many assets are bare - we'd have to check if any contain a '.'
@@ -95,9 +100,9 @@ var Triplet = ('object' === typeof module && exports) || {};
95100

96101
Triplet.TERMS_EXTS_ZIP = [
97102
'.bz2', // -j, --bzip2 (for completeness, not used)
98-
'.zip', // (auto on BSD tar on Windows and macOS)
99103
'.gz', // -z, --gzip
100104
'.xz', // -J, --xz
105+
'.zip', // (auto on BSD tar on Windows and macOS)
101106
// neither macos nor linux have zstd by default
102107
'.zst', // --zstd
103108
'.7z', // --lz4, --lzma, --lzop
@@ -110,6 +115,7 @@ var Triplet = ('object' === typeof module && exports) || {};
110115
'.xz',
111116
'.zst',
112117
'.zip',
118+
// .tar should come *after* extensions that use it
113119
'.tar',
114120
'.7z',
115121
];
@@ -444,8 +450,8 @@ var Triplet = ('object' === typeof module && exports) || {};
444450
}
445451
}
446452

447-
for (let term of Triplet.TERMS_NON_BUILD) {
448-
if (term.test(build.download)) {
453+
for (let re of Triplet._RE_TERMS_NON_BUILD) {
454+
if (re.test(build.download)) {
449455
return false;
450456
}
451457
}
@@ -919,6 +925,11 @@ var Triplet = ('object' === typeof module && exports) || {};
919925
return pkg;
920926
};
921927

928+
/**
929+
* Determines the package type from the file name, accounting for ambiguous extensions.
930+
* @param {String} filename
931+
* @returns {String} - ex: '.zip', '.app.zip', '.tar.gz', '...'
932+
*/
922933
Triplet.filenameToPackageType = function (filename) {
923934
let _filename = filename;
924935
let pkg = '';

0 commit comments

Comments
 (0)