@isaac-platform/isaac-integration-sdk
Version:
A Typescript SDK for integrating with ISAAC
44 lines (43 loc) • 2.21 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());
});
};
import isaacConnection from "../controller/isaac.js";
export class Player {
constructor() {
/**
* Retrieves latest default state from ISAAC and updates internal defaultState.
* @param systemId - (optional) override the query with
* @returns DefaultState
*/
this.getDefaultState = (systemId) => __awaiter(this, void 0, void 0, function* () {
const response = yield isaacConnection.getRequest(`players/${systemId || isaacConnection.subsystemID}/defaultState`);
this.defaultState = response;
return this.defaultState;
});
/**
* Updates player's default state in ISAAC.
* @param defaultState - the new default state configuration
* @param systemId - (optional) override the query with
* @returns DefaultState - The new default state
*/
this.postDefaultState = (defaultState, systemId) => __awaiter(this, void 0, void 0, function* () {
const response = yield isaacConnection.putRequest(`players/${systemId || isaacConnection.subsystemID}/defaultState`, defaultState);
this.defaultState = response;
return this.defaultState;
});
this.getSingleInstance = () => {
if (Player.instance === null) {
Player.instance = new Player();
Player.instance.externalId = isaacConnection.subsystemID;
}
return Player.instance;
};
}
}
Player.instance = null;