49 lines
1.7 KiB
JavaScript
49 lines
1.7 KiB
JavaScript
"use strict";
|
|
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;
|