go-ethereum/src/utils/mapReleasesData.ts
Nicolás Quiroz 91dd04faa2
feat: All releases downloads (#46)
* chore: update constants

* feat: add releases data utils

* chore: add fast-xml-parser

* chore: update types

* feat: fetch & parse all releases data

* chore: update utils

* wip: use real data on DataTable

* chore: update yarn.lock

* fix: getReleaseCommitHash

* feat: filter data per downloads tab

* chore: update DownloadsTable

* chore: update DownloadsTable Props

* fix: getReleaseArch.ts

* feat: add fetchXMLData util

* feat: add fetchLatestReleaseCommit util

* feat: add getSortedReleases util

* chore: comment wip primary release feature

* fix: fetchXMLData

* chore: add netlify.toml

* fix: total number of releases count

* fix: center showing latest releases text and use smaller font

* chore: prettier

* chore: update textStyles

* fix: merge conflicts
2022-11-29 15:29:52 -03:00

45 lines
1.4 KiB
TypeScript

import {
getChecksum,
getReleaseArch,
getReleaseCommitHash,
getReleaseCommitURL,
getReleaseKind,
getReleaseName,
getReleaseSize,
getReleaseURL,
getSignatureURL
} from '.';
import { ReleaseData, ReleaseParams } from '../types';
export const mapReleasesData = ({ blobsList, isStableRelease }: ReleaseParams): ReleaseData[] => {
return blobsList
.filter(({ Name }: any) => !Name.endsWith('.asc') && !Name.endsWith('.sig')) // skip blobs we don't need to list
.filter(({ Name }: any) =>
isStableRelease ? !Name.includes('unstable') : Name.includes('unstable')
) // filter by stable/dev builds
.map(({ Name, Properties }: any) => {
const commitHash = getReleaseCommitHash(Name);
return {
release: {
label: getReleaseName(Name),
url: getReleaseURL(Name)
},
commit: {
label: commitHash,
url: getReleaseCommitURL(commitHash)
},
kind: getReleaseKind(Name),
arch: getReleaseArch(Name),
size: getReleaseSize(Properties['Content-Length']),
// date is formatted later on the table, we use the raw value here for comparison
published: Properties['Last-Modified'],
signature: {
label: 'Signature',
url: getSignatureURL(Name)
},
checksum: getChecksum(Properties['Content-MD5'])
};
});
};