UNPKG

next-video

Version:

A React component for adding video to your Next.js application. It extends both the video element and your Next app with features for automatic video optimization.

100 lines (99 loc) • 3.32 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var request_handler_exports = {}; __export(request_handler_exports, { GET: () => GET, POST: () => POST, default: () => handler }); module.exports = __toCommonJS(request_handler_exports); var import_process = require("./process.js"); var import_assets = require("./assets.js"); var import_config = require("./config.js"); async function GET(request) { const { searchParams } = new URL(request.url); const url = searchParams.get("url"); const { status, data } = await getRequest(url); return Response.json(data, { status }); } async function POST(request) { const { url } = await request.json(); const { status, data } = await postRequest(url); return Response.json(data, { status }); } async function handler(req, res) { if (req.method === "POST") { const { status: status2, data: data2 } = await postRequest(String(req.body.url)); res.status(status2).json(data2); return; } const { status, data } = await getRequest(String(req.query.url)); res.status(status).json(data); } async function getRequest(url) { if (!url) { return { status: 400, data: { error: "url parameter is required" } }; } let asset; try { asset = await (0, import_assets.getAsset)(url); } catch { const isDevMode = process.env.NODE_ENV === "development"; if (isDevMode) { asset = await (0, import_assets.createAsset)(url); if (asset) { const videoConfig = await (0, import_config.getVideoConfig)(); await (0, import_process.callHandler)("request.video.added", asset, videoConfig); return { status: 200, data: asset }; } else { return { status: 500, data: { error: "could not create asset" } }; } } return { status: 404, data: { error: "asset not found" } }; } return { status: 200, data: asset }; } async function postRequest(url) { if (!url) { return { status: 400, data: { error: "url parameter is required" } }; } let asset; try { asset = await (0, import_assets.createAsset)(url); if (!asset) { return { status: 500, data: { error: "could not create asset" } }; } const videoConfig = await (0, import_config.getVideoConfig)(); await (0, import_process.callHandler)("request.video.added", asset, videoConfig); return { status: 200, data: asset }; } catch { return { status: 500, data: { error: "could not create asset" } }; } } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { GET, POST });