UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

43 lines (42 loc) 1.43 kB
"use strict"; import { isVariableSerializable, serializeVariable, deserializeVariable } from "./_BaseJsPersistedConfigUtils"; import { Poly } from "../../../../Poly"; export function serializedVariablesFromFunctionData(functionData) { const { variableNames, variablesByName } = functionData; const serializedVariables = []; for (const variableName of variableNames) { const variable = variablesByName[variableName]; if (variable != null && isVariableSerializable(variable)) { const serialized = serializeVariable(variable); serializedVariables.push(serialized); } } return serializedVariables; } export function variablesByNameFromPersistedConfigData(data) { const { variableNames, variables } = data; const variablesByName = {}; let i = 0; for (const variableName of variableNames) { const serialized = variables[i]; const deserialized = deserializeVariable(serialized); variablesByName[variableName] = deserialized; i++; } return variablesByName; } export function functionsByNameFromPersistedConfigData(data, node) { const { functionNames } = data; const functionsByName = {}; for (const functionName of functionNames) { const namedFunction = Poly.namedFunctionsRegister.getFunction(functionName, node); if (namedFunction) { functionsByName[functionName] = namedFunction.func.bind(namedFunction); } } return functionsByName; }