papermc-api
Version:
Its a PaperMC Downloads API client for node.js.
51 lines (50 loc) • 2.22 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Project = void 0;
const APIClient_1 = require("./APIClient");
const Version_1 = require("./Version");
class Project {
constructor(id, name, version_groups, versions) {
this.project_id = id;
this.project_name = name;
this.version_groups = version_groups;
this.versions = versions;
}
static fromRaw(raw) {
if (Array.isArray(raw)) {
let projects = [];
for (let proj of raw) {
projects.push(Project.fromRaw(proj));
}
return projects;
}
else {
return new Project(raw.project_id, raw.project_name, raw.version_groups, raw.versions);
}
}
getVersion(ver) {
return __awaiter(this, void 0, void 0, function* () {
if (this.versions.includes(ver)) {
let version = yield APIClient_1.APIClient.get('/projects/' + this.project_id + '/versions/' + ver);
return Version_1.Version.fromRaw(version);
}
else if (ver == "latest") {
let version = yield APIClient_1.APIClient.get('/projects/' + this.project_id + '/versions/' + this.versions[this.versions.length - 1]);
return Version_1.Version.fromRaw(version);
}
else {
throw new Error("Invalid Version");
}
});
}
}
exports.Project = Project;