UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

42 lines 1.81 kB
import Appendable from "../../display/core/Appendable"; import DefaultMethod from "./DefaultMethod"; import NullableCallback from "./NullableCallback"; import NullableDefault from "./NullableDefault"; const getDefaultValue = (manager, key, fillNullableDefault, fillFunctionArgs, functionPtr) => { const constructorDefaults = manager.constructor.defaults; const runtimeManager = constructorDefaults ? manager : undefined; if (runtimeManager instanceof Appendable) { const { runtimeDefaults } = runtimeManager; if (runtimeDefaults && key in runtimeDefaults) return runtimeDefaults[key]; } const result = (constructorDefaults ?? manager)[key]; if (result instanceof NullableDefault) return fillNullableDefault ? result.value : undefined; if (result instanceof NullableCallback) { if (functionPtr) functionPtr[0] = result; return fillFunctionArgs ? result.param : undefined; } if (result instanceof DefaultMethod) { if (functionPtr) functionPtr[0] = result; return fillFunctionArgs ? result.arg : undefined; } if (fillNullableDefault) return result ?? ""; return result; }; export default getDefaultValue; const isEqual = (val0, val1) => val0 === val1 || (typeof val0 === typeof val1 && JSON.stringify(val0) === JSON.stringify(val1)); export const equalsValue = (manager, val0, val1, key) => { const defaultValue = getDefaultValue(manager, key, true, false); return isEqual(val0 ?? defaultValue, val1 ?? defaultValue); }; export const equalsDefaultValue = (val, manager, key) => { const defaultValue = getDefaultValue(manager, key, true, false); return isEqual(val ?? defaultValue, defaultValue); }; //# sourceMappingURL=getDefaultValue.js.map