UNPKG

create-elysiajs

Version:

Scaffolding your Elysia project with the environment with easy!

132 lines (131 loc) 6.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPackageJson = getPackageJson; const deps_1 = require("../deps"); const utils_1 = require("../utils"); function getPackageJson({ dir, projectName, linter, packageManager, orm, driver, others, plugins, isMonorepo, locks, redis, mockWithPGLite, telegramRelated, s3Client, }) { const sample = { name: projectName, type: "module", scripts: { dev: packageManager === "bun" ? "bun --watch src/index.ts" : `${utils_1.pmExecuteMap[packageManager]} tsx watch --env-file .env src/index.ts`, start: packageManager === "bun" ? "NODE_ENV=production bun run ./src/index.ts" : `NODE_ENV=production ${utils_1.pmExecuteMap[packageManager]} tsx --env-file=.env --env-file=.env.production src/index.ts`, }, dependencies: { elysia: deps_1.dependencies.elysia, "env-var": deps_1.dependencies["env-var"], }, devDependencies: { typescript: deps_1.dependencies.typescript, }, }; // if (packageManager === "bun") sample.devDependencies["@types/bun"] = deps_1.dependencies["@types/bun"]; if (linter === "Biome") { sample.scripts.lint = `${utils_1.pmExecuteMap[packageManager]} @biomejs/biome check src`; sample.scripts["lint:fix"] = `${utils_1.pmRunMap[packageManager]} lint --write`; sample.devDependencies["@biomejs/biome"] = deps_1.dependencies["@biomejs/biome"]; } if (linter === "ESLint") { // \"src/**/*.ts\" sample.scripts.lint = `${utils_1.pmExecuteMap[packageManager]} eslint`; // \"src/**/*.ts\" sample.scripts["lint:fix"] = `${utils_1.pmExecuteMap[packageManager]} eslint --fix`; sample.devDependencies.eslint = deps_1.dependencies.eslint; sample.devDependencies["@antfu/eslint-config"] = deps_1.dependencies["@antfu/eslint-config"]; if (orm === "Drizzle") sample.devDependencies["eslint-plugin-drizzle"] = deps_1.dependencies["eslint-plugin-drizzle"]; } if (orm === "Prisma") { sample.devDependencies.prisma = deps_1.dependencies.prisma; sample.dependencies["@prisma/client"] = deps_1.dependencies["@prisma/client"]; } if (orm === "Drizzle") { sample.dependencies["drizzle-orm"] = deps_1.dependencies["drizzle-orm"]; sample.devDependencies["drizzle-kit"] = deps_1.dependencies["drizzle-kit"]; if (driver === "node-postgres") { sample.dependencies.pg = deps_1.dependencies.pg; sample.devDependencies["@types/pg"] = deps_1.dependencies["@types/pg"]; } if (driver === "Postgres.JS") { sample.dependencies.postgres = deps_1.dependencies.postgres; } if (driver === "MySQL 2") { sample.dependencies.mysql2 = deps_1.dependencies.mysql2; } sample.scripts.generate = `${utils_1.pmExecuteMap[packageManager]} drizzle-kit generate`; sample.scripts.push = `${utils_1.pmExecuteMap[packageManager]} drizzle-kit push`; sample.scripts.migrate = `${utils_1.pmExecuteMap[packageManager]} drizzle-kit migrate`; sample.scripts.studio = `${utils_1.pmExecuteMap[packageManager]} drizzle-kit studio`; } if (others.includes("Husky")) { sample.devDependencies.husky = deps_1.dependencies.husky; sample.scripts.prepare = "husky"; } if (plugins.includes("Bearer")) sample.dependencies["@elysiajs/bearer"] = deps_1.dependencies["@elysiajs/bearer"]; if (plugins.includes("CORS")) sample.dependencies["@elysiajs/cors"] = deps_1.dependencies["@elysiajs/cors"]; if (plugins.includes("HTML/JSX")) { sample.dependencies["@elysiajs/html"] = deps_1.dependencies["@elysiajs/html"]; sample.dependencies["@kitajs/ts-html-plugin"] = deps_1.dependencies["@kitajs/ts-html-plugin"]; } if (plugins.includes("JWT")) sample.dependencies["@elysiajs/jwt"] = deps_1.dependencies["@elysiajs/jwt"]; if (plugins.includes("Server Timing")) sample.dependencies["@elysiajs/server-timing"] = deps_1.dependencies["@elysiajs/server-timing"]; if (plugins.includes("Static")) sample.dependencies["@elysiajs/static"] = deps_1.dependencies["@elysiajs/static"]; if (plugins.includes("Swagger")) sample.dependencies["@elysiajs/swagger"] = deps_1.dependencies["@elysiajs/swagger"]; if (plugins.includes("Autoload")) sample.dependencies["elysia-autoload"] = deps_1.dependencies["elysia-autoload"]; if (plugins.includes("Logger")) sample.dependencies["@bogeychan/elysia-logger"] = deps_1.dependencies["@bogeychan/elysia-logger"]; if (plugins.includes("Oauth 2.0")) { sample.dependencies.arctic = deps_1.dependencies.arctic; sample.dependencies["elysia-oauth2"] = deps_1.dependencies["elysia-oauth2"]; } if (redis) { sample.dependencies.ioredis = deps_1.dependencies.ioredis; if (mockWithPGLite) sample.devDependencies["ioredis-mock"] = deps_1.dependencies["ioredis-mock"]; } if (others.includes("Jobify")) { sample.dependencies.jobify = deps_1.dependencies.jobify; } if (others.includes("Posthog")) { sample.dependencies["posthog-node"] = deps_1.dependencies["posthog-node"]; } if (locks) { sample.dependencies["@verrou/core"] = deps_1.dependencies["@verrou/core"]; } if (isMonorepo) sample.dependencies["@gramio/init-data"] = deps_1.dependencies["@gramio/init-data"]; if (others.includes("S3") && s3Client === "@aws-sdk/client-s3") { sample.dependencies["@aws-sdk/client-s3"] = deps_1.dependencies["@aws-sdk/client-s3"]; } if (mockWithPGLite) { sample.devDependencies["@electric-sql/pglite"] = deps_1.dependencies["@electric-sql/pglite"]; sample.devDependencies["@elysiajs/eden"] = deps_1.dependencies["@elysiajs/eden"]; } if (telegramRelated && !isMonorepo) { sample.dependencies.gramio = deps_1.dependencies.gramio; sample.dependencies["@gramio/init-data"] = deps_1.dependencies["@gramio/init-data"]; } return JSON.stringify(sample, null, 2); }