UNPKG

remotion

Version:

Render videos in React

81 lines 3.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRange = exports.setFrameRangeFromCli = exports.setFrameRange = exports.validateFrameRange = void 0; let range = null; const validateFrameRange = (frameRange) => { if (frameRange === null) { return; } if (typeof frameRange === 'number') { if (frameRange < 0) { throw new TypeError('Frame must be a non-negative number, got ' + frameRange); } if (!Number.isFinite(frameRange)) { throw new TypeError('Frame must be a finite number, got ' + frameRange); } if (!Number.isInteger(frameRange)) { throw new Error(`Frame must be an integer, but got a float (${frameRange})`); } return; } if (Array.isArray(frameRange)) { if (frameRange.length !== 2) { throw new TypeError('Frame range must be a tuple, got an array with length ' + frameRange.length); } for (const value of frameRange) { if (typeof value !== 'number') { throw new Error(`Each value of frame range must be a number, but got ${typeof value} (${JSON.stringify(value)})`); } if (!Number.isFinite(value)) { throw new TypeError('Each value of frame range must be finite, but got ' + value); } if (!Number.isInteger(value)) { throw new Error(`Each value of frame range must be an integer, but got a float (${value})`); } if (value < 0) { throw new Error(`Each value of frame range must be non-negative, but got ${value}`); } } const [first, second] = frameRange; if (second < first) { throw new Error('The second value of frame range must be not smaller than the first one, but got ' + frameRange.join('-')); } return; } throw new TypeError('Frame range must be a number or a tuple of numbers, but got object of type ' + typeof frameRange); }; exports.validateFrameRange = validateFrameRange; const setFrameRange = (newFrameRange) => { (0, exports.validateFrameRange)(newFrameRange); range = newFrameRange; }; exports.setFrameRange = setFrameRange; const setFrameRangeFromCli = (newFrameRange) => { if (typeof newFrameRange === 'number') { (0, exports.setFrameRange)(newFrameRange); range = newFrameRange; return; } if (typeof newFrameRange === 'string') { const parsed = newFrameRange.split('-').map((f) => Number(f)); if (parsed.length > 2 || parsed.length <= 0) { throw new Error(`--frames flag must be a number or 2 numbers separated by '-', instead got ${parsed.length} numbers`); } if (parsed.length === 2 && parsed[1] < parsed[0]) { throw new Error('The second number of the --frames flag number should be greater or equal than first number'); } for (const value of parsed) { if (isNaN(value)) { throw new Error('--frames flag must be a single number, or 2 numbers separated by `-`'); } } (0, exports.setFrameRange)(parsed); } }; exports.setFrameRangeFromCli = setFrameRangeFromCli; const getRange = () => range; exports.getRange = getRange; //# sourceMappingURL=frame-range.js.map