1- import * as path from "node:path" ;
2- import { writeFile } from "node:fs/promises" ;
3- import { bedrock } from "./db/bedrock" ;
4- import { java } from "./db/java" ;
5- import { pocketmine } from "./db/pocketmine" ;
6- import { spigot } from "./db/spigot" ;
7- import { powernukkit } from "./db/powernukkit" ;
8- import { paper } from "./db/paper" ;
9-
10- const exportVersions = ( ) => Promise . all ( [
11- bedrock . find ( ) . lean ( ) ,
12- java . find ( ) . lean ( ) ,
13- pocketmine . find ( ) . lean ( ) ,
14- spigot . find ( ) . lean ( ) ,
15- paper . find ( ) . lean ( ) ,
16- powernukkit . find ( ) . lean ( )
17- ] ) . then ( ( [ bedrock , java , pocketmine , spigot , paper , powernukkit ] ) => JSON . stringify ( { bedrock, java, pocketmine, spigot, paper, powernukkit} , ( key , value ) => key === "__v" ?undefined :key === "_id" ?undefined :value , 2 ) ) ;
18-
19- const outputFile = process . env . OUTPUT ?path . resolve ( process . env . OUTPUT ) :path . join ( process . cwd ( ) , "versions.json" ) ;
20- exportVersions ( ) . then ( res => writeFile ( outputFile , / \. m d $ / . test ( outputFile ) ?`#Result\n\n\`\`\`json\n${ res } \n\`\`\`\n` :res ) ) . then ( ( ) => { console . log ( "File save in '%s' path." , outputFile ) ; process . exit ( 0 ) } ) ;
1+ import fsOld from "node:fs" ;
2+ import path from "node:path" ;
3+ import fs from "node:fs/promises" ;
4+ import { findVersion as getVersions , bedrock , java , paper , pocketmine , powernukkit , spigot } from "./index" ;
5+
6+ const rootVersions = path . join ( process . cwd ( ) , "versions" ) ;
7+ const Bedrock = path . join ( rootVersions , "bedrock" ) ;
8+ const Pocketmine = path . join ( rootVersions , "pocketmine" ) ;
9+ const Powernukkit = path . join ( rootVersions , "powernukkit" ) ;
10+ const Java = path . join ( rootVersions , "java" ) ;
11+ const Spigot = path . join ( rootVersions , "spigot" ) ;
12+ const Paper = path . join ( rootVersions , "paper" ) ;
13+
14+ ( async function ( ) {
15+ if ( ! fsOld . existsSync ( rootVersions ) ) await fs . mkdir ( rootVersions , { recursive : true } ) ;
16+ if ( ! fsOld . existsSync ( Bedrock ) ) await fs . mkdir ( Bedrock , { recursive : true } ) ;
17+ if ( ! fsOld . existsSync ( Pocketmine ) ) await fs . mkdir ( Pocketmine , { recursive : true } ) ;
18+ if ( ! fsOld . existsSync ( Powernukkit ) ) await fs . mkdir ( Powernukkit , { recursive : true } ) ;
19+ if ( ! fsOld . existsSync ( Java ) ) await fs . mkdir ( Java , { recursive : true } ) ;
20+ if ( ! fsOld . existsSync ( Spigot ) ) await fs . mkdir ( Spigot , { recursive : true } ) ;
21+ if ( ! fsOld . existsSync ( Paper ) ) await fs . mkdir ( Paper , { recursive : true } ) ;
22+
23+ const bedrockData = await getVersions < bedrock [ ] > ( "bedrock" , "all" , true ) ;
24+ fs . writeFile ( path . join ( Bedrock , "latest.json" ) , JSON . stringify ( bedrockData . find ( release => release . latest ) , null , 2 ) ) ;
25+ fs . writeFile ( path . join ( Bedrock , "all.json" ) , JSON . stringify ( bedrockData , null , 2 ) ) ;
26+ await Promise . all ( bedrockData . map ( async releases => {
27+ const version = path . join ( Bedrock , `${ releases . version } .json` ) ;
28+ await fs . writeFile ( version , JSON . stringify ( releases , null , 2 ) ) ;
29+ await fs . utimes ( version , new Date ( releases . date ) , new Date ( releases . date ) ) ;
30+ } ) ) ;
31+
32+ const PocketmineData = await getVersions < pocketmine [ ] > ( "pocketmine" , "all" , true ) ;
33+ fs . writeFile ( path . join ( Pocketmine , "latest.json" ) , JSON . stringify ( PocketmineData . find ( release => release . latest ) , null , 2 ) ) ;
34+ fs . writeFile ( path . join ( Pocketmine , "all.json" ) , JSON . stringify ( PocketmineData , null , 2 ) ) ;
35+ await Promise . all ( PocketmineData . map ( async releases => {
36+ const version = path . join ( Pocketmine , `${ releases . version } .json` ) ;
37+ await fs . writeFile ( version , JSON . stringify ( releases , null , 2 ) ) ;
38+ await fs . utimes ( version , new Date ( releases . date ) , new Date ( releases . date ) ) ;
39+ } ) ) ;
40+
41+ const PowernukkitData = await getVersions < powernukkit [ ] > ( "powernukkit" , "all" , true ) ;
42+ fs . writeFile ( path . join ( Powernukkit , "latest.json" ) , JSON . stringify ( PowernukkitData . find ( release => release . latest ) , null , 2 ) ) ;
43+ fs . writeFile ( path . join ( Powernukkit , "all.json" ) , JSON . stringify ( PowernukkitData , null , 2 ) ) ;
44+ await Promise . all ( PowernukkitData . map ( async releases => {
45+ const version = path . join ( Powernukkit , `${ releases . version } .json` ) ;
46+ await fs . writeFile ( version , JSON . stringify ( releases , null , 2 ) ) ;
47+ await fs . utimes ( version , new Date ( releases . date ) , new Date ( releases . date ) ) ;
48+ } ) ) ;
49+
50+ const JavaData = await getVersions < java [ ] > ( "java" , "all" , true ) ;
51+ fs . writeFile ( path . join ( Java , "latest.json" ) , JSON . stringify ( JavaData . find ( release => release . latest ) , null , 2 ) ) ;
52+ fs . writeFile ( path . join ( Java , "all.json" ) , JSON . stringify ( JavaData , null , 2 ) ) ;
53+ await Promise . all ( JavaData . map ( async releases => {
54+ const version = path . join ( Java , `${ releases . version } .json` ) ;
55+ await fs . writeFile ( version , JSON . stringify ( releases , null , 2 ) ) ;
56+ await fs . utimes ( version , new Date ( releases . date ) , new Date ( releases . date ) ) ;
57+ } ) ) ;
58+
59+ const SpigotData = await getVersions < spigot [ ] > ( "spigot" , "all" , true ) ;
60+ fs . writeFile ( path . join ( Spigot , "latest.json" ) , JSON . stringify ( SpigotData . find ( release => release . latest ) , null , 2 ) ) ;
61+ fs . writeFile ( path . join ( Spigot , "all.json" ) , JSON . stringify ( SpigotData , null , 2 ) ) ;
62+ await Promise . all ( SpigotData . map ( async releases => {
63+ const version = path . join ( Spigot , `${ releases . version } .json` ) ;
64+ await fs . writeFile ( version , JSON . stringify ( releases , null , 2 ) ) ;
65+ await fs . utimes ( version , new Date ( releases . date ) , new Date ( releases . date ) ) ;
66+ } ) ) ;
67+
68+ const PaperData = await getVersions < paper [ ] > ( "paper" , "all" , true ) ;
69+ fs . writeFile ( path . join ( Paper , "latest.json" ) , JSON . stringify ( PaperData . find ( release => release . latest ) , null , 2 ) ) ;
70+ fs . writeFile ( path . join ( Paper , "all.json" ) , JSON . stringify ( PaperData , null , 2 ) ) ;
71+ await Promise . all ( PaperData . map ( async releases => {
72+ const version = path . join ( Paper , `${ releases . version } _${ releases . build } .json` ) ;
73+ await fs . writeFile ( version , JSON . stringify ( releases , null , 2 ) ) ;
74+ await fs . utimes ( version , new Date ( releases . date ) , new Date ( releases . date ) ) ;
75+ } ) ) ;
76+ } ) ( ) ;
0 commit comments