UNPKG

remotion

Version:

Make videos programmatically

61 lines (60 loc) 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.computeEffectiveSchemaValuesDotNotation = void 0; const find_props_to_delete_js_1 = require("./find-props-to-delete.js"); const get_effective_visual_mode_value_js_1 = require("./get-effective-visual-mode-value.js"); const findFieldInSchema = (schema, key) => { if (key in schema) { return schema[key]; } for (const field of Object.values(schema)) { if (field.type !== 'enum') { continue; } for (const variant of Object.values(field.variants)) { const found = findFieldInSchema(variant, key); if (found) { return found; } } } return undefined; }; const computeEffectiveSchemaValuesDotNotation = ({ schema, currentValue, overrideValues, propStatus, }) => { var _a, _b; const merged = {}; const propsToDelete = new Set(); for (const key of Object.keys(currentValue)) { const codeValueStatus = (_a = propStatus === null || propStatus === void 0 ? void 0 : propStatus[key]) !== null && _a !== void 0 ? _a : null; const field = findFieldInSchema(schema, key); if ((field === null || field === void 0 ? void 0 : field.type) === 'hidden') { continue; } const value = codeValueStatus === null || codeValueStatus.canUpdate === false ? currentValue[key] : (0, get_effective_visual_mode_value_js_1.getEffectiveVisualModeValue)({ codeValue: codeValueStatus, dragOverrideValue: overrideValues[key], defaultValue: field === null || field === void 0 ? void 0 : field.default, shouldResortToDefaultValueIfUndefined: false, }); if (value === undefined) { propsToDelete.add(key); } merged[key] = value; } for (const key of Object.keys(overrideValues)) { if (((_b = schema[key]) === null || _b === void 0 ? void 0 : _b.type) === 'enum') { const propsToDeleteForKey = (0, find_props_to_delete_js_1.findPropsToDelete)({ schema, key, value: merged[key], }); for (const propToDelete of propsToDeleteForKey) { propsToDelete.add(propToDelete); } } } return { merged, propsToDelete }; }; exports.computeEffectiveSchemaValuesDotNotation = computeEffectiveSchemaValuesDotNotation;