@casual-simulation/aux-common
Version:
Common library for AUX projects
66 lines • 2.2 kB
JavaScript
/* CasualOS is a set of web-based tools designed to facilitate the creation of real-time, multi-user, context-aware interactive experiences.
*
* Copyright (c) 2019-2025 Casual Simulation, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import { getStateFromUpdates } from '../partitions/PartitionUtils';
import { getInstStateFromUpdates } from './BotEvents';
/**
* Gets whether the given stored aux matches the given version.
* @param stored
* @param version
* @returns
*/
export function isStoredVersion2(stored) {
return (typeof stored === 'object' &&
stored &&
'version' in stored &&
stored.version === 2);
}
/**
* Gets whether the given stored aux matches the given version.
* @param stored
* @param version
* @returns
*/
export function isStoredVersion1(stored) {
return (typeof stored === 'object' &&
stored &&
'version' in stored &&
stored.version === 1);
}
/**
* Gets the bot state from the given stored causal tree.
* @param stored The stored tree to load.
*/
export function getBotsStateFromStoredAux(stored) {
return getUploadState(stored);
}
/**
* Gets the state that should be uploaded from the given data.
* @param data The data.
*/
export function getUploadState(data) {
if ('version' in data) {
if (isStoredVersion2(data)) {
return getStateFromUpdates(getInstStateFromUpdates(data.updates));
}
else if (isStoredVersion1(data)) {
return data.state;
}
}
return data;
}
//# sourceMappingURL=StoredAux.js.map