26 lines
1.0 KiB
TypeScript
26 lines
1.0 KiB
TypeScript
import {ScriptAccount} from "../game-model/scriptAccounts/ScriptAccount";
|
|
import {StoreComponent} from "../../../../app/storage/StoreComponent";
|
|
import {SerializeConstants} from "./SerializeConstants";
|
|
import {ModelComponentType} from "../game-model/ModelComponentType";
|
|
|
|
export class ScriptAccountSerializer {
|
|
|
|
public static serializeScriptAccounts(scriptAccounts: ScriptAccount[]): StoreComponent[] {
|
|
const storeComponents: StoreComponent[] = []
|
|
scriptAccounts.forEach(scriptAccount => storeComponents.push(this.serializeSingleScriptAccount(scriptAccount)))
|
|
return storeComponents;
|
|
}
|
|
|
|
private static serializeSingleScriptAccount(scriptAccount: ScriptAccount): StoreComponent {
|
|
const fileName = scriptAccount.componentName
|
|
const jsonString = JSON.stringify(scriptAccount, (key, value) => {
|
|
if(key === 'unsaved' || key === 'type') {
|
|
return undefined
|
|
} else {
|
|
return value;
|
|
}
|
|
}, SerializeConstants.JSON_INDENT)
|
|
return new StoreComponent(jsonString, fileName, ModelComponentType.SCRIPTACCOUNT);
|
|
}
|
|
}
|