UNPKG

@remotion/renderer

Version:

Render Remotion videos using Node.js or Bun

83 lines (82 loc) 3.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkRuntimeVersion = exports.gLibCErrorMessage = void 0; const no_react_1 = require("remotion/no-react"); const get_executable_path_1 = require("./compositor/get-executable-path"); const logger_1 = require("./logger"); const getRequiredLibCVersion = () => { if (process.platform !== 'linux') { return null; } if ((0, get_executable_path_1.isMusl)({ indent: false, logLevel: 'warn' })) { return null; } // Uses Amazon Linux 2 to compile if (process.arch === 'arm64') { return [2, 26]; } // Uses Ubuntu 20.04 to compile return [2, 31]; }; const required = getRequiredLibCVersion(); const gLibCErrorMessage = (libCString) => { if (required === null) { return null; } const split = libCString.split('.'); if (split.length !== 2) { return null; } if (split[0] === String(required[0]) && Number(split[1]) >= required[1]) { return null; } if (Number(split[0]) > required[0]) { return null; } return `Rendering videos requires glibc ${required.join('.')} on your or higher on your OS. Your system has glibc ${libCString}.`; }; exports.gLibCErrorMessage = gLibCErrorMessage; const checkLibCRequirement = (logLevel, indent) => { if (process.platform === 'win32' || process.platform === 'darwin') { return; } const { report } = process; if (report) { const rep = report.getReport(); if (typeof rep === 'string') { logger_1.Log.warn({ logLevel, indent }, 'Bun limitation: process.report.getReport() ' + rep); return; } // @ts-expect-error no types const { glibcVersionRuntime } = rep.header; if (!glibcVersionRuntime) { return; } const error = (0, exports.gLibCErrorMessage)(glibcVersionRuntime); if (error) { logger_1.Log.warn({ logLevel, indent }, error); } } }; const checkNodeVersion = () => { const version = process.version.replace('v', '').split('.'); const majorVersion = Number(version[0]); if (majorVersion < no_react_1.NoReactInternals.MIN_NODE_VERSION) { throw new Error(`Remotion requires at least Node ${no_react_1.NoReactInternals.MIN_NODE_VERSION}. You currently have ${process.version}. Update your node version to ${no_react_1.NoReactInternals.MIN_NODE_VERSION} to use Remotion.`); } }; const checkBunVersion = () => { if (!Bun.semver.satisfies(Bun.version, `>=${no_react_1.NoReactInternals.MIN_BUN_VERSION}`)) { throw new Error(`Remotion requires at least Bun ${no_react_1.NoReactInternals.MIN_BUN_VERSION}. You currently have ${Bun.version}. Update your Bun version to ${no_react_1.NoReactInternals.MIN_BUN_VERSION} to use Remotion.`); } }; const checkRuntimeVersion = (logLevel, indent) => { if (typeof Bun === 'undefined') { checkNodeVersion(); } else { checkBunVersion(); } checkLibCRequirement(logLevel, indent); }; exports.checkRuntimeVersion = checkRuntimeVersion;