@remotion/renderer
Version:
Render Remotion videos using Node.js or Bun
49 lines (48 loc) • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isUserCancelledRender = exports.cancelErrorMessages = exports.makeCancelSignal = void 0;
/*
* @description Returns a signal and a cancel function that allows to you cancel a render triggered using renderMedia(), renderStill(), renderFrames() or stitchFramesToVideo().
* @see [Documentation](https://www.remotion.dev/docs/renderer/make-cancel-signal)
*/
const makeCancelSignal = () => {
const callbacks = [];
let cancelled = false;
return {
cancelSignal: (callback) => {
callbacks.push(callback);
if (cancelled) {
callback();
}
},
cancel: () => {
if (cancelled) {
return;
}
callbacks.forEach((cb) => {
cb();
});
cancelled = true;
},
};
};
exports.makeCancelSignal = makeCancelSignal;
exports.cancelErrorMessages = {
renderMedia: 'renderMedia() got cancelled',
renderFrames: 'renderFrames() got cancelled',
renderStill: 'renderStill() got cancelled',
stitchFramesToVideo: 'stitchFramesToVideo() got cancelled',
};
const isUserCancelledRender = (err) => {
if (typeof err === 'object' &&
err !== null &&
'message' in err &&
typeof err.message === 'string') {
return (err.message.includes(exports.cancelErrorMessages.renderMedia) ||
err.message.includes(exports.cancelErrorMessages.renderFrames) ||
err.message.includes(exports.cancelErrorMessages.renderStill) ||
err.message.includes(exports.cancelErrorMessages.stitchFramesToVideo));
}
return false;
};
exports.isUserCancelledRender = isUserCancelledRender;