@reliverse/rse-sdk
Version:
@reliverse/rse-sdk without cli. @reliverse/rse-sdk allows you to create new plugins for @reliverse/rse CLI, interact with reliverse.org, and even extend your own CLI functionality (you may also try @reliverse/dler-sdk for this case).
41 lines (40 loc) • 1.34 kB
JavaScript
import { inputPrompt, selectPrompt } from "@reliverse/rempts";
import { DEFAULT_DOMAIN } from "../../../../../constants.js";
import { experimental } from "../../../../../utils/badgeNotifiers.js";
import { recommended } from "../../../../../utils/badgeNotifiers.js";
function validateDomain(domain) {
if (!domain) return "Domain is required";
if (!/^[a-zA-Z0-9][a-zA-Z0-9-_.]+\.[a-zA-Z]{2,}$/.test(domain)) {
return "Invalid domain format";
}
return true;
}
export async function promptForDomain(projectName) {
const defaultDomain = `${projectName}.vercel.app`;
const useDomain = await selectPrompt({
title: "Would you like to use a custom domain?",
content: "You can add a custom domain later in the Vercel dashboard.",
options: [
{
label: `No, use default Vercel domain only ${recommended}`,
value: "default",
hint: defaultDomain
},
{
label: `Yes, configure custom domain ${experimental}`,
value: "custom",
hint: "The default domain will still be generated"
}
],
defaultValue: "default"
});
if (useDomain === "default") {
return defaultDomain;
}
const domain = await inputPrompt({
title: "Enter your custom domain:",
content: DEFAULT_DOMAIN,
validate: validateDomain
});
return domain || defaultDomain;
}