remotion
Version:
Make videos programmatically
61 lines (60 loc) • 2.51 kB
JavaScript
;
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;