Add initial minecraft-java-manager scaffold
Initial project scaffold for minecraft-java-manager. Adds package.json and package-lock.json, README update, index.js entrypoint and test.js. Introduces src modules: checker (detects Java version), installer (downloads JRE components with redirects, SHA1 validation, progress/events and concurrency), web (fetches launcher/runtime manifests and component data), systeminfo (platform key and install path resolution) and config (endpoints). Declares dependencies adm-zip and node-downloader-helper.
This commit is contained in:
+40
@@ -0,0 +1,40 @@
|
||||
const config = require("./config")
|
||||
|
||||
async function getVersionManifest(version) {
|
||||
const mainifestRequest = await fetch(config.launcherManifest.get())
|
||||
const manifest = await mainifestRequest.json()
|
||||
const component = manifest.versions.find($version => $version.id == version)
|
||||
if (!typeof component == "object") {
|
||||
throw new Error("Unknown version")
|
||||
}
|
||||
return component.url
|
||||
}
|
||||
|
||||
async function getRequiredJREFor(versionUrl) {
|
||||
const mainifestRequest = await fetch(versionUrl)
|
||||
const manifest = await mainifestRequest.json()
|
||||
return manifest.javaVersion
|
||||
}
|
||||
|
||||
async function getJREComponentDetails(componentRequested, os) {
|
||||
const mainifestRequest = await fetch(config.allRuntimes.get())
|
||||
const manifest = await mainifestRequest.json()
|
||||
const component = manifest[os][componentRequested]
|
||||
if (typeof component != "object") {
|
||||
throw new Error("No JRE Component found")
|
||||
}
|
||||
return component
|
||||
}
|
||||
|
||||
async function getJREComponentManifest(url) {
|
||||
const mainifestRequest = await fetch(url)
|
||||
const manifest = await mainifestRequest.json()
|
||||
return manifest
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getVersionManifest,
|
||||
getRequiredJREFor,
|
||||
getJREComponentDetails,
|
||||
getJREComponentManifest
|
||||
}
|
||||
Reference in New Issue
Block a user