@coursebuilder/core
Version:
Core package for Course Builder
75 lines (73 loc) • 2.36 kB
JavaScript
import {
addSrtTrackToMuxAsset,
deleteSrtTrackFromMuxAsset,
getMuxAsset
} from "./chunk-S5X2SWL7.js";
import {
VIDEO_SRT_READY_EVENT
} from "./chunk-FEG4FJXK.js";
import {
__name
} from "./chunk-VLQXSCFN.js";
// src/inngest/video-processing/functions/add-srt-to-mux-asset.ts
import { NonRetriableError } from "inngest";
var COOLDOWN = 2e4;
var addSrtToMuxAssetConfig = {
id: "add-srt-mux-asset",
name: "Add SRT to Mux Asset"
};
var addSrtToMuxAssetTrigger = {
event: VIDEO_SRT_READY_EVENT
};
var addSrtToMuxAssetHandler = /* @__PURE__ */ __name(async ({ event, step, db, siteRootUrl }) => {
const muxAssetId = await step.run("get the video resource from Sanity", async () => {
const videoResource = await db.getVideoResource(event.data.videoResourceId);
return videoResource?.muxAssetId ?? null;
});
if (muxAssetId) {
let muxAsset = await step.run("get the mux asset", async () => {
return getMuxAsset(muxAssetId);
});
if (!muxAsset) {
throw new NonRetriableError("Mux Asset not found");
}
if (muxAsset.status === "ready") {
await step.run("delete existing srt track from mux asset", async () => {
return await deleteSrtTrackFromMuxAsset(muxAsset?.id);
});
await step.run("add srt track to mux asset", async () => {
return addSrtTrackToMuxAsset({
assetId: muxAsset?.id,
srtUrl: `${siteRootUrl}/api/coursebuilder/srt/internal?videoResourceId=${event.data.videoResourceId}`
});
});
muxAsset = await step.run("get the updated mux asset", async () => {
return getMuxAsset(muxAssetId);
});
return {
muxAsset
};
} else if (muxAsset.status !== "errored") {
await step.sleep(`wait for ${COOLDOWN / 1e3} seconds`, COOLDOWN);
await step.sendEvent("Re-run After Cool Down", {
name: VIDEO_SRT_READY_EVENT,
data: event.data
});
return "asset not ready yet";
} else {
throw new Error("Mux Asset is in errored state");
}
}
}, "addSrtToMuxAssetHandler");
var addSrtToMuxAsset = {
config: addSrtToMuxAssetConfig,
trigger: addSrtToMuxAssetTrigger,
handler: addSrtToMuxAssetHandler
};
export {
addSrtToMuxAssetConfig,
addSrtToMuxAssetTrigger,
addSrtToMuxAssetHandler,
addSrtToMuxAsset
};
//# sourceMappingURL=chunk-QV7D3G6D.js.map