11import { writeFileSync , mkdirSync } from 'node:fs' ;
22import { join } from 'node:path' ;
3+ import semver from 'semver' ;
34
45const note =
56 '\n# NOTE: This file is auto-generated in packages/releases-generator/build.ts\n# For corrections please edit it directly' ;
@@ -65,6 +66,10 @@ async function generator() {
6566 . filter ( ( { version } ) => ! version . includes ( 'Not Published' ) ) ;
6667
6768 mkdirSync ( join ( baseDir , pkg . name ) , { recursive : true } ) ;
69+
70+ releases . sort ( ( a , b ) => {
71+ return semver . rcompare ( a . version , b . version ) ;
72+ } ) ;
6873 //
6974 /*
7075 * Write files for each version
@@ -87,11 +92,11 @@ async function generator() {
8792 `description: '${ thisVersion } '` ,
8893 `slug: 'release/${ pkg . name } /v${ thisVersion } '` ,
8994 `tableOfContents: false` ,
90- `editUrl: 'https://github.com/tauri-apps/tauri-docs/packages/releases-generator/build.ts'` ,
95+ `editUrl: 'https://github.com/tauri-apps/tauri-docs/blob/v2/ packages/releases-generator/build.ts'` ,
9196 'pagefind: false' ,
9297 'sidebar:' ,
9398 ` label: ${ thisVersion } ` ,
94- ` order: ${ semverToInt ( thisVersion ) } ` ,
99+ ` order: ${ i } ` ,
95100 ] ;
96101
97102 const frontmatter = [ '---' , ...pageFrontmatter , '---' ] . join ( '\n' ) ;
@@ -100,8 +105,6 @@ async function generator() {
100105 const viewInGitHub = `<a href="${ pkg . tag } /${ pkg . name } -v${ thisVersion } ">View on GitHub</a>` ;
101106 const linksDiv = `<div style="margin-bottom:3rem; display: flex; justify-content: space-between; align-items: center"><span>${ indexLink } </span><span>${ viewInGitHub } </span></div>` ;
102107 //
103- const sidebar = `\nimport ReleaseSidebar from '@components/list/ReleaseSidebar.astro';
104- \n\n<ReleaseSidebar slug="release/${ pkg . name } " packageName="${ pkg . name } " />\n` ;
105108
106109 writeFileSync (
107110 join ( baseDir , pkg . name , `v${ thisVersion } .mdx` ) ,
@@ -191,29 +194,6 @@ function entitify(str: string): string {
191194 . replace ( / \$ \{ / g, '$\\{' ) ;
192195}
193196
194- const PRE_RELEASE_VALUES : any = {
195- alpha : 1 ,
196- 'beta-rc' : 100 ,
197- beta : 1000 ,
198- rc : 100000 ,
199- } ;
200-
201- function semverToInt ( semver : string ) {
202- const BASE = 1000000000 ;
203- let [ version , preRelease ] = semver . split ( '-' ) ;
204- const [ major , minor , patch ] = version . split ( '.' ) . map ( Number ) ;
205- let preReleaseValue = 0 ;
206- if ( preRelease ) {
207- const match = preRelease . split ( '.' ) ;
208- if ( match ) {
209- const identifier = match [ 0 ] ;
210- const number = match [ 1 ] !== undefined ? parseInt ( match [ 1 ] ) : 0 ;
211- preReleaseValue = PRE_RELEASE_VALUES [ identifier ] + number ;
212- }
213- }
214- return BASE - ( major * 100000000 + minor * 1000000 + patch * 10000 + preReleaseValue ) ;
215- }
216-
217197if ( process . env . CONTEXT === 'production' || process . env . HEAD ?. startsWith ( 'release-pages' ) ) {
218198 generator ( ) ;
219199} else {
0 commit comments