create-jd-app
Version:
Create modern type safed Solid web application within seconds
91 lines (86 loc) • 3.09 kB
JavaScript
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.modifyConfigIfNeeded = exports.getAppConfig = void 0;
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const prettier_1 = __importDefault(require("prettier"));
const getAppConfig = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
const usePrisma = ctx.installers.includes("Prisma");
const usePRPC = ctx.installers.includes("pRPC");
const useAuth = ctx.installers.includes("AuthJS");
if (usePRPC) {
return yield prettier_1.default.format(`import { withPRPC } from "@solid-mediakit/prpc-plugin";
const config = withPRPC(
{
ssr: true,${useAuth ? "\n middleware: './src/middleware.ts'," : ""}${usePrisma
? `\n vite: {
ssr: {
external: ["@prisma/client"],
},
},`
: ""}${ctx.vercel
? `\n server: {
preset: 'vercel',
},`
: ""}
},${useAuth
? `\n {
auth: "authjs",
authCfg: {
configName: "authOptions",
source: "~/server/auth",
},
}`
: ""}
);
export default config;
declare module "@solid-mediakit/prpc" {
interface Settings {
config: typeof config;
}
}
`, {
parser: "typescript",
});
}
return yield prettier_1.default.format(`import { defineConfig } from "@solidjs/start/config";${useAuth ? `\nimport { authVite } from "@solid-mediakit/auth-plugin";` : ""}
export default defineConfig({
ssr: true,${usePrisma
? `\n vite: {
${usePrisma
? `ssr: {
external: ["@prisma/client"],
},`
: ""}
},`
: ""}${ctx.vercel
? `\n server: {
preset: 'vercel',
},`
: ""}
});
`, {
parser: "typescript",
});
});
exports.getAppConfig = getAppConfig;
const modifyConfigIfNeeded = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
if (ctx.vercel ||
ctx.installers.includes("pRPC") ||
ctx.installers.includes("Prisma")) {
yield fs_extra_1.default.writeFile(path_1.default.join(ctx.userDir, "app.config.ts"), yield (0, exports.getAppConfig)(ctx));
}
});
exports.modifyConfigIfNeeded = modifyConfigIfNeeded;