feat: simplify version history api

This commit is contained in:
Thea Schöbl
2023-12-08 13:49:53 +00:00
committed by Rainer Killinger
parent d44204cf8d
commit d2c8120255
13 changed files with 240 additions and 117 deletions

View File

@@ -1,5 +1,5 @@
// @ts-check
import {readFile} from 'fs/promises';
import {readFile, readdir} from 'fs/promises';
/**
* @example version(1, import.meta.url)
@@ -23,20 +23,14 @@ export async function version(options, base) {
}
/**
* @param infos {Record<string, import('@openstapps/core').SCAppVersionInfo['published']>}
* @param base {string} Base path of the file as `import.meta.url`
* @returns {Promise<import('@openstapps/core').SCAppVersionInfo[]>}
*/
export async function versions(infos, base) {
return Promise.all(
Object.entries(infos).map(([versionName, published]) =>
version(
{
published,
version: versionName,
},
base,
),
),
).then(it => it.sort(({version: a}, {version: b}) => -a.localeCompare(b, undefined, {numeric: true})));
export async function versions(base) {
const directory = await readdir(new URL(base));
const versions = [...new Set(directory.map(it => it.replace(/\.\w+\.md$/, '')))].sort(
(a, b) => -a.localeCompare(b, undefined, {numeric: true}),
);
return Promise.all(versions.map(versionName => version({version: versionName}, base)));
}