@gmetrixr/rjson
Version:
(R)ecursive Json
90 lines (89 loc) • 3.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const r_1 = require("../../../r");
/**
* Changes the older deployment settings format into a RecordNode format
* The check of whether its a record already or not must have been already done by now.
* (if deployment_version isn't detected, that means its the older version)
*/
class Migration {
execute(olderDeployment) {
var _a, _b, _c, _d;
const deploymentJson = (0, r_1.createRecord)(r_1.RT.deployment, r_1.R.SINGLE_RECORD_ID);
const deploymentF = r_1.r.record(deploymentJson);
if (olderDeployment.geolock !== undefined) {
if (olderDeployment.geolock.enabled === true) {
deploymentF.set(r_1.rtp.deployment.geolock_enabled, true);
const lat = (_a = olderDeployment.geolock.lat) !== null && _a !== void 0 ? _a : 0;
const lng = (_b = olderDeployment.geolock.lng) !== null && _b !== void 0 ? _b : 0;
const range = (_c = olderDeployment.geolock.range) !== null && _c !== void 0 ? _c : 0;
const address = (_d = olderDeployment.geolock.address) !== null && _d !== void 0 ? _d : "";
deploymentF.set(r_1.rtp.deployment.geolock_coordinates, [lat, lng]);
deploymentF.set(r_1.rtp.deployment.geolock_range, range);
deploymentF.set(r_1.rtp.deployment.geolock_address, address);
}
}
if (olderDeployment.track_location === true) {
deploymentF.set(r_1.rtp.deployment.track_location, true);
}
if (olderDeployment.enable_multiplayer_mode === true) {
deploymentF.set(r_1.rtp.deployment.enable_multiplayer, true);
}
if (olderDeployment.enable_audio === true) {
deploymentF.set(r_1.rtp.deployment.multiplayer_audio_enabled, true);
}
if (olderDeployment.enable_chat === true) {
deploymentF.set(r_1.rtp.deployment.multiplayer_chat_enabled, true);
}
if (olderDeployment.enable_screenshare === true) {
deploymentF.set(r_1.rtp.deployment.multiplayer_screenshare_enabled, true);
}
if (olderDeployment.enable_discussion === true) {
deploymentF.set(r_1.rtp.deployment.multiplayer_comments_enabled, true);
}
if (olderDeployment.enable_room_instance === true) {
deploymentF.set(r_1.rtp.deployment.enable_room_instance, true);
}
if (olderDeployment.room_instance_count !== undefined) {
deploymentF.set(r_1.rtp.deployment.enable_room_instance, olderDeployment.room_instance_count);
}
if (olderDeployment.room_instance_member_limit !== undefined) {
deploymentF.set(r_1.rtp.deployment.room_instance_member_limit, olderDeployment.room_instance_member_limit);
}
if (olderDeployment.room_instance_overspill_message !== undefined) {
deploymentF.set(r_1.rtp.deployment.room_instance_overspill_message, olderDeployment.room_instance_overspill_message);
}
deploymentF.set(r_1.rtp.deployment.deployment_version, 1);
return deploymentJson;
}
}
const migration = new Migration();
exports.default = migration;
/**
* Older structure
export interface DeploymentSettings {
geolock?: {
enabled?: boolean;
lat?: number | null;
lng?: number | null;
range?: number | null;
address?: string | null;
} | null;
meta?: {
tags: string[] | null;
title: string | null;
description: string | null;
thumbnail: string | null
} | null;
track_location?: boolean;
enable_discussion?: boolean;
enable_multiplayer_mode?: boolean;
enable_audio?: boolean;
enable_screenshare?: boolean;
enable_chat?: boolean;
enable_room_instance?: boolean;
room_instance_count?: number;
room_instance_member_limit?: number;
room_instance_overspill_message?: string;
}
*/