y3-app
Version:
CLI to add your project structure
177 lines (176 loc) • 7.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPackageJson = getPackageJson;
function getPackageJson(projectName, projectType) {
return {
name: projectName,
version: '1.0.0',
private: true,
type: 'module',
scripts: projectType === 'fullstack'
? {
'dev:frontend': 'vite',
'dev:backend': 'tsx backend/server.ts',
dev: 'concurrently "pnpm run dev:frontend" "pnpm run dev:backend"',
'build:frontend': 'vite build',
'build:backend': 'tsc --project tsconfig.backend.json',
build: 'pnpm run build:frontend && pnpm run build:backend',
preview: 'vite preview',
start: 'node backend/dist/server.js',
lint: 'eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0',
format: 'prettier --write "**/*.{ts,tsx}"',
'docker:dev': 'docker-compose up',
'docker:build': 'docker-compose -f docker-compose.prod.yml build',
'docker:prod': 'docker-compose -f docker-compose.prod.yml up -d',
'docker:down': 'docker-compose down',
}
: projectType === 'react'
? {
dev: 'vite',
build: 'vite build',
preview: 'vite preview',
lint: 'eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0',
format: 'prettier --write "src/**/*.{ts,tsx}"',
'docker:dev': 'docker-compose up',
'docker:build': 'docker-compose -f docker-compose.prod.yml build',
'docker:prod': 'docker-compose -f docker-compose.prod.yml up -d',
'docker:down': 'docker-compose down',
}
: {
dev: 'tsx src/server.ts',
build: 'tsc --project tsconfig.json',
start: 'node dist/server.js',
lint: 'eslint . --ext ts --report-unused-disable-directives --max-warnings 0',
format: 'prettier --write "**/*.ts"',
'docker:dev': 'docker-compose up',
'docker:build': 'docker-compose -f docker-compose.prod.yml build',
'docker:prod': 'docker-compose -f docker-compose.prod.yml up -d',
'docker:down': 'docker-compose down',
},
dependencies: projectType === 'fullstack'
? {
'@radix-ui/react-slot': '^1.2.2',
'@reduxjs/toolkit': '^2.7.0',
'@tailwindcss/vite': '^4.1.5',
'@tanstack/react-query': '^5.75.4',
axios: '^1.9.0',
'class-variance-authority': '^0.7.1',
clsx: '^2.1.1',
concurrently: '^8.2.2',
cors: '^2.8.5',
dotenv: '^16.5.0',
express: '^4.18.2',
'express-session': '^1.18.1',
'fs-extra': '^11.3.0',
gsap: '^3.13.0',
inquirer: '^9.3.7',
'lucide-react': '^0.507.0',
motion: '^12.9.7',
nodemon: '^3.1.10',
passport: '^0.7.0',
'passport-facebook': '^3.0.0',
'passport-github2': '^0.1.12',
'passport-google-oauth20': '^2.0.0',
path: '^0.12.7',
react: '^19.1.0',
'react-dom': '^19.1.0',
'react-redux': '^9.2.0',
'react-router': '^7.6.1',
'tailwind-merge': '^3.2.0',
tailwindcss: '^4.1.5',
}
: projectType === 'react'
? {
'@radix-ui/react-slot': '^1.2.2',
'@reduxjs/toolkit': '^2.7.0',
'@tailwindcss/vite': '^4.1.5',
'@tanstack/react-query': '^5.75.4',
axios: '^1.9.0',
'class-variance-authority': '^0.7.1',
clsx: '^2.1.1',
'fs-extra': '^11.3.0',
gsap: '^3.13.0',
inquirer: '^9.3.7',
'lucide-react': '^0.507.0',
motion: '^12.9.7',
path: '^0.12.7',
react: '^19.1.0',
'react-dom': '^19.1.0',
'react-redux': '^9.2.0',
'react-router': '^7.6.1',
'heroui-cli': '^1.2.3',
'tailwind-merge': '^3.2.0',
tailwindcss: '^4.1.5',
}
: {
'@types/cors': '^2.8.18',
axios: '^1.9.0',
cors: '^2.8.5',
dotenv: '^16.5.0',
express: '^4.18.2',
'express-session': '^1.18.1',
'fs-extra': '^11.3.0',
inquirer: '^9.3.7',
nodemon: '^3.1.10',
passport: '^0.7.0',
'passport-facebook': '^3.0.0',
'passport-github2': '^0.1.12',
'passport-google-oauth20': '^2.0.0',
path: '^0.12.7',
},
devDependencies: projectType === 'fullstack'
? {
'@eslint/js': '^9.25.0',
'@types/cors': '^2.8.18',
'@types/express': '^4.17.17',
'@types/express-session': '^1.18.1',
'@types/node': '^22.15.17',
'@types/passport': '^1.0.17',
'@types/passport-github2': '^1.2.9',
'@types/passport-google-oauth20': '^2.0.16',
'@types/react': '^19.1.2',
'@types/react-dom': '^19.1.2',
'@vitejs/plugin-react-swc': '^3.9.0',
eslint: '^9.25.0',
'eslint-plugin-react-hooks': '^5.2.0',
'eslint-plugin-react-refresh': '^0.4.19',
globals: '^16.0.0',
'ts-node': '^10.9.1',
tsx: '^4.19.4',
'tw-animate-css': '^1.2.9',
typescript: '^5.8.3',
'typescript-eslint': '^8.30.1',
vite: '^6.3.5',
}
: projectType === 'react'
? {
'@eslint/js': '^9.25.0',
'@types/node': '^22.15.17',
'@types/react': '^19.1.2',
'@types/react-dom': '^19.1.2',
'@vitejs/plugin-react-swc': '^3.9.0',
eslint: '^9.25.0',
'eslint-plugin-react-hooks': '^5.2.0',
'eslint-plugin-react-refresh': '^0.4.19',
globals: '^16.0.0',
'tw-animate-css': '^1.2.9',
typescript: '^5.8.3',
'typescript-eslint': '^8.30.1',
vite: '^6.3.5',
}
: {
'@eslint/js': '^9.25.0',
'@types/express': '^4.17.17',
'@types/express-session': '^1.18.1',
'@types/node': '^22.15.17',
'@types/passport': '^1.0.17',
'@types/passport-github2': '^1.2.9',
'@types/passport-google-oauth20': '^2.0.16',
eslint: '^9.25.0',
'ts-node': '^10.9.1',
tsx: '^4.19.4',
typescript: '^5.8.3',
'typescript-eslint': '^8.30.0',
},
};
}