@@ -7,6 +7,27 @@ import { dirname } from 'path';
77// Function to mimic __dirname in ES modules
88const __dirname = dirname ( fileURLToPath ( import . meta. url ) ) ;
99
10+ export interface BuildConfig {
11+ swipl : {
12+ version : string ;
13+ commit : string ;
14+ name : string ;
15+ } ;
16+ emsdk : {
17+ version : string ;
18+ commit : string ;
19+ name : string ;
20+ } ;
21+ zlib : {
22+ version : string ;
23+ } ;
24+ pcre2 : {
25+ version : string ;
26+ commit : string ;
27+ name : string ;
28+ } ;
29+ }
30+
1031export function isHigherVersion ( v1 : string , v2 : string ) {
1132 const [ major1 , minor1 , patch1 ] = v1 . split ( '.' ) . map ( e => parseInt ( e ) ) ;
1233 const [ major2 , minor2 , patch2 ] = v2 . split ( '.' ) . map ( e => parseInt ( e ) ) ;
@@ -16,12 +37,23 @@ export function isHigherVersion(v1: string, v2: string) {
1637 || ( ( major1 === major2 ) && ( minor1 === minor2 ) && patch1 > patch2 ) ;
1738}
1839
19- export function getPackage ( ) {
20- return JSON . parse ( fs . readFileSync ( path . join ( __dirname , '..' , 'package.json' ) ) . toString ( ) )
40+ export function getBuildConfig ( ) : BuildConfig {
41+ const configPath = path . join ( __dirname , '..' , 'build-config.json' ) ;
42+ try {
43+ const data = fs . readFileSync ( configPath , 'utf-8' ) ;
44+ return JSON . parse ( data ) as BuildConfig ;
45+ } catch ( error ) {
46+ throw new Error ( `Failed to read build-config.json: ${ ( error as Error ) . message } ` ) ;
47+ }
2148}
2249
23- export function savePackage ( packageJson : any ) {
24- fs . writeFileSync ( path . join ( __dirname , '..' , 'package.json' ) , `${ JSON . stringify ( packageJson , null , 2 ) } \n` ) ;
50+ export function saveBuildConfig ( buildConfig : BuildConfig ) {
51+ const configPath = path . join ( __dirname , '..' , 'build-config.json' ) ;
52+ try {
53+ fs . writeFileSync ( configPath , `${ JSON . stringify ( buildConfig , null , 2 ) } \n` , 'utf-8' ) ;
54+ } catch ( error ) {
55+ throw new Error ( `Failed to write build-config.json: ${ ( error as Error ) . message } ` ) ;
56+ }
2557}
2658
2759export type Tag = Awaited < ReturnType < Octokit [ 'repos' ] [ 'listTags' ] > > [ 'data' ] [ 0 ] ;
@@ -62,11 +94,11 @@ export async function updateTag(options: IUpdateTagOptions) {
6294 }
6395 }
6496
65- const pkg = getPackage ( ) ;
97+ const buildConfig = getBuildConfig ( ) ;
6698
67- // If a higher version exists, update the package .json
68- if ( bestElem && isHigherVersion ( bestElem . version , pkg . config [ options . entry ] . version ) ) {
69- pkg . config [ options . entry ] = bestElem ;
70- savePackage ( pkg ) ;
99+ // If a higher version exists, update the build-config .json
100+ if ( bestElem && isHigherVersion ( bestElem . version , buildConfig [ options . entry ] . version ) ) {
101+ buildConfig [ options . entry ] = bestElem ;
102+ saveBuildConfig ( buildConfig ) ;
71103 }
72104}
0 commit comments