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.
28 lines (27 loc) • 1.03 kB
JavaScript
import { readFile } from "node:fs/promises";
import { PACKAGE_NAME } from "../../constants.js";
function updateTSConfigFileContent(tsContents) {
const newItem = "video.d.ts";
const includeRegex = /("include"\s*:\s*\[)([^\]]*?)(\])/;
const addVideoDts = (_match, p1, p2, p3) => {
const trimmedContent = p2.trim();
if (/\r?\n/.test(p2)) {
const whitespace = p2.match(/^\s*/)?.[0] || "";
return `${p1}${whitespace}"${newItem}",${p2}${p3}`;
} else {
return `${p1}"${newItem}", ${trimmedContent ? `${trimmedContent}` : ""}${p3}`;
}
};
const updatedContents = tsContents.replace(includeRegex, addVideoDts);
JSON.parse(updatedContents);
return updatedContents;
}
async function checkPackageJsonForNextVideo(packagePath = "./package.json") {
const pkg = await readFile(packagePath, "utf-8");
const json = JSON.parse(pkg);
return !!(json.devDependencies?.[PACKAGE_NAME] || json.dependencies?.[PACKAGE_NAME]);
}
export {
checkPackageJsonForNextVideo,
updateTSConfigFileContent
};