UNPKG

remotion

Version:

Make videos programmatically

87 lines (86 loc) 4.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveTrimProps = exports.validateMediaTrimProps = exports.validateTrimProps = exports.validateStartFromProps = void 0; const validateStartFromProps = (startFrom, endAt) => { if (typeof startFrom !== 'undefined') { if (typeof startFrom !== 'number') { throw new TypeError(`type of startFrom prop must be a number, instead got type ${typeof startFrom}.`); } if (isNaN(startFrom) || startFrom === Infinity) { throw new TypeError('startFrom prop can not be NaN or Infinity.'); } if (startFrom < 0) { throw new TypeError(`startFrom must be greater than equal to 0 instead got ${startFrom}.`); } } if (typeof endAt !== 'undefined') { if (typeof endAt !== 'number') { throw new TypeError(`type of endAt prop must be a number, instead got type ${typeof endAt}.`); } if (isNaN(endAt)) { throw new TypeError('endAt prop can not be NaN.'); } if (endAt <= 0) { throw new TypeError(`endAt must be a positive number, instead got ${endAt}.`); } } if (endAt < startFrom) { throw new TypeError('endAt prop must be greater than startFrom prop.'); } }; exports.validateStartFromProps = validateStartFromProps; const validateTrimProps = (trimBefore, trimAfter) => { if (typeof trimBefore !== 'undefined') { if (typeof trimBefore !== 'number') { throw new TypeError(`type of trimBefore prop must be a number, instead got type ${typeof trimBefore}.`); } if (isNaN(trimBefore) || trimBefore === Infinity) { throw new TypeError('trimBefore prop can not be NaN or Infinity.'); } if (trimBefore < 0) { throw new TypeError(`trimBefore must be greater than equal to 0 instead got ${trimBefore}.`); } } if (typeof trimAfter !== 'undefined') { if (typeof trimAfter !== 'number') { throw new TypeError(`type of trimAfter prop must be a number, instead got type ${typeof trimAfter}.`); } if (isNaN(trimAfter)) { throw new TypeError('trimAfter prop can not be NaN.'); } if (trimAfter <= 0) { throw new TypeError(`trimAfter must be a positive number, instead got ${trimAfter}.`); } } if (trimAfter <= trimBefore) { throw new TypeError('trimAfter prop must be greater than trimBefore prop.'); } }; exports.validateTrimProps = validateTrimProps; const validateMediaTrimProps = ({ startFrom, endAt, trimBefore, trimAfter, }) => { // Check for conflicting props if (typeof startFrom !== 'undefined' && typeof trimBefore !== 'undefined') { throw new TypeError('Cannot use both startFrom and trimBefore props. Use trimBefore instead as startFrom is deprecated.'); } if (typeof endAt !== 'undefined' && typeof trimAfter !== 'undefined') { throw new TypeError('Cannot use both endAt and trimAfter props. Use trimAfter instead as endAt is deprecated.'); } // Validate using the appropriate validation function const hasNewProps = typeof trimBefore !== 'undefined' || typeof trimAfter !== 'undefined'; const hasOldProps = typeof startFrom !== 'undefined' || typeof endAt !== 'undefined'; if (hasNewProps) { (0, exports.validateTrimProps)(trimBefore, trimAfter); } else if (hasOldProps) { (0, exports.validateStartFromProps)(startFrom, endAt); } }; exports.validateMediaTrimProps = validateMediaTrimProps; const resolveTrimProps = ({ startFrom, endAt, trimBefore, trimAfter, }) => { var _a, _b; // Use new props if available, otherwise fall back to old props const trimBeforeValue = (_a = trimBefore !== null && trimBefore !== void 0 ? trimBefore : startFrom) !== null && _a !== void 0 ? _a : undefined; const trimAfterValue = (_b = trimAfter !== null && trimAfter !== void 0 ? trimAfter : endAt) !== null && _b !== void 0 ? _b : undefined; return { trimBeforeValue, trimAfterValue }; }; exports.resolveTrimProps = resolveTrimProps;