Files
clawbot/skills/remotion-prompt-video/node_modules/@remotion/studio-shared/dist/stringify-default-props.js
T

60 lines
2.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringifyDefaultProps = void 0;
const no_react_1 = require("remotion/no-react");
function replacerWithPath(replacer) {
const m = new Map();
return function (field, value) {
const path = [m.get(this), field].flat(1);
if (value === Object(value)) {
m.set(value, path);
}
return replacer.call(this, field, value, path.filter((item) => typeof item !== 'undefined' && item !== ''));
};
}
const doesMatchPath = (path1, enumPaths) => {
return enumPaths.some((p) =>
// especially 0 for root!
path1.length === p.length &&
path1.every((item, index) => {
if (p[index] === '[]' && !Number.isNaN(Number(item))) {
return true;
}
if (p[index] === '{}' && typeof item === 'string') {
return true;
}
return item === p[index];
}));
};
const stringifyDefaultProps = ({ props, enumPaths, }) => {
return JSON.stringify(props, replacerWithPath(function (key, value, path) {
/* Don't replace with arrow function! This function uses `this` */
const item = this[key];
if (typeof item === 'string' && doesMatchPath(path, enumPaths)) {
return `${item}__ADD_AS_CONST__`;
}
// For zMatrix()
if (doesMatchPath(path, enumPaths)) {
return `__REMOVEQUOTE__${JSON.stringify(item)}__ADD_AS_LITERAL_CONST__`;
}
if (typeof item === 'string' &&
item.startsWith(no_react_1.NoReactInternals.FILE_TOKEN)) {
return `__REMOVEQUOTE____WRAP_IN_STATIC_FILE_START__${decodeURIComponent(item.replace(no_react_1.NoReactInternals.FILE_TOKEN, ''))}__WRAP_IN_STATIC_FILE_END____REMOVEQUOTE__`;
}
if (typeof item === 'string' &&
item.startsWith(no_react_1.NoReactInternals.DATE_TOKEN)) {
return `__REMOVEQUOTE____WRAP_IN_DATE_START__${decodeURIComponent(item.replace(no_react_1.NoReactInternals.DATE_TOKEN, ''))}__WRAP_IN_DATE_END____REMOVEQUOTE__`;
}
return value;
}))
.replace(/"__REMOVEQUOTE__/g, '')
.replace(/__REMOVEQUOTE__"/g, '')
.replace(/__ADD_AS_CONST__"/g, '" as const')
.replace(/__ADD_AS_LITERAL_CONST__"/g, ' as const')
.replace(/__WRAP_IN_STATIC_FILE_START__/g, 'staticFile("')
.replace(/__WRAP_IN_STATIC_FILE_END__/g, '")')
.replace(/__WRAP_IN_DATE_START__/g, 'new Date("')
.replace(/__WRAP_IN_DATE_END__/g, '")');
};
exports.stringifyDefaultProps = stringifyDefaultProps;