ydev-mern 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,9 @@
14
14
  "cors": "^2.8.6",
15
15
  "dotenv": "^17.4.2",
16
16
  "express": "^5.2.1",
17
- "mongoose": "^9.9.5",
17
+ "mongoose": "^9.9.5"
18
+ },
19
+ "devDependencies": {
18
20
  "nodemon": "^3.1.14"
19
21
  }
20
22
  }
@@ -1,15 +1,17 @@
1
1
  import express from "express";
2
- import { connectdb } from "../db.js";
2
+ import cors from "cors";
3
+ import { connectdb } from "./db.js";
3
4
 
4
5
  const app = express();
5
6
 
7
+ app.use(cors());
6
8
  app.use(express.json());
7
9
 
8
10
  app.get('/', (req, res) => {
9
11
  res.send("Backend is running");
10
- })
12
+ });
11
13
 
12
14
  app.listen(3000, () => {
13
15
  console.log("Server started on port 3000");
14
16
  connectdb();
15
- })
17
+ });
package/backend/src/db.js CHANGED
@@ -1,8 +1,8 @@
1
- import mongoose from "moongoose";
1
+ import mongoose from "mongoose";
2
2
  import 'dotenv/config';
3
3
  export const connectdb = async () => {
4
4
  try {
5
- const connection = await mongoose.connect(MONGO_URI);
5
+ const connection = await mongoose.connect(process.env.MONGO_URI);
6
6
 
7
7
  console.log("Mongodb connected");
8
8
  } catch (error) {
package/bin/cli.js CHANGED
@@ -9,10 +9,23 @@ const __dirname = path.dirname(__filename);
9
9
  const rootPackageDir = path.resolve(__dirname, '..');
10
10
 
11
11
  const targetArg = process.argv[2];
12
- const targetDir = targetArg ? path.resolve(process.cwd(), targetArg) : process.cwd();
12
+ const targetDir = targetArg
13
+ ? path.resolve(process.cwd(), targetArg)
14
+ : process.cwd();
13
15
 
14
- console.log('\n🚀 \x1b[36m\x1b[1mydev-mern\x1b[0m — Modern Full-Stack MERN Scaffolder');
15
- console.log(`📦 Unpacking frontend & backend into: \x1b[33m${targetDir}\x1b[0m\n`);
16
+ const colors = {
17
+ reset: '\x1b[0m',
18
+ bold: '\x1b[1m',
19
+ cyan: '\x1b[36m',
20
+ yellow: '\x1b[33m',
21
+ green: '\x1b[32m',
22
+ red: '\x1b[31m',
23
+ gray: '\x1b[90m',
24
+ };
25
+
26
+ function log(message = '') {
27
+ console.log(message);
28
+ }
16
29
 
17
30
  function copyDirRecursive(src, dest) {
18
31
  if (!fs.existsSync(dest)) {
@@ -25,7 +38,14 @@ function copyDirRecursive(src, dest) {
25
38
  const srcPath = path.join(src, entry.name);
26
39
  const destPath = path.join(dest, entry.name);
27
40
 
28
- if (entry.name === 'node_modules' || entry.name === 'dist' || entry.name === '.git') {
41
+ // Skip generated or environment-specific directories
42
+ if (
43
+ entry.name === 'node_modules' ||
44
+ entry.name === 'dist' ||
45
+ entry.name === '.git' ||
46
+ entry.name === 'package-lock.json' ||
47
+ entry.name === '.DS_Store'
48
+ ) {
29
49
  continue;
30
50
  }
31
51
 
@@ -38,25 +58,58 @@ function copyDirRecursive(src, dest) {
38
58
  }
39
59
 
40
60
  try {
61
+ log();
62
+ log(
63
+ `${colors.bold}${colors.cyan}ydev-mern${colors.reset} ${colors.gray}Project Scaffolder${colors.reset}`
64
+ );
65
+ log();
66
+
67
+ log(
68
+ `${colors.gray}Project directory:${colors.reset} ${colors.yellow}${targetDir}${colors.reset}`
69
+ );
70
+ log();
71
+
41
72
  const foldersToCopy = ['frontend', 'backend'];
42
73
 
74
+ log(`${colors.bold}Creating project structure${colors.reset}`);
75
+ log();
76
+
43
77
  for (const folder of foldersToCopy) {
44
78
  const srcFolder = path.join(rootPackageDir, folder);
45
79
  const destFolder = path.join(targetDir, folder);
46
80
 
47
81
  if (fs.existsSync(srcFolder)) {
48
- console.log(` ✓ Copying ${folder}/...`);
82
+ log(` Copying ${folder}/`);
49
83
  copyDirRecursive(srcFolder, destFolder);
50
84
  }
51
85
  }
52
86
 
53
- console.log('\n\x1b[32m✔ Successfully installed ydev-mern!\x1b[0m\n');
54
- console.log('Next steps:');
55
- console.log(' 1. Setup Backend:');
56
- console.log(' \x1b[35mcd backend && npm install && npm run dev\x1b[0m');
57
- console.log(' 2. Setup Frontend:');
58
- console.log(' \x1b[35mcd frontend && npm install && npm run dev\x1b[0m\n');
87
+ log();
88
+ log(`${colors.green}${colors.bold}Project created successfully.${colors.reset}`);
89
+ log();
90
+
91
+ log(`${colors.bold}Next steps${colors.reset}`);
92
+ log();
93
+
94
+ log(` Backend`);
95
+ log(` ${colors.gray}$${colors.reset} cd backend`);
96
+ log(` ${colors.gray}$${colors.reset} npm install`);
97
+ log(` ${colors.gray}$${colors.reset} npm run dev`);
98
+ log();
99
+
100
+ log(` Frontend`);
101
+ log(` ${colors.gray}$${colors.reset} cd frontend`);
102
+ log(` ${colors.gray}$${colors.reset} npm install`);
103
+ log(` ${colors.gray}$${colors.reset} npm run dev`);
104
+ log();
105
+
106
+ log(`${colors.gray}Start both services in separate terminal windows.${colors.reset}`);
107
+ log();
59
108
  } catch (error) {
60
- console.error('\x1b[31mError unpacking ydev-mern:\x1b[0m', error.message);
109
+ log();
110
+ log(`${colors.red}${colors.bold}Project setup failed.${colors.reset}`);
111
+ log();
112
+ log(`${colors.red}${error.message}${colors.reset}`);
113
+ log();
61
114
  process.exit(1);
62
- }
115
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ydev-mern",
3
- "version": "1.0.0",
3
+ "version": "1.0.3",
4
4
  "description": "Full-stack MERN developer toolkit featuring modern React frontend and Express backend.",
5
5
  "main": "backend/src/Server.js",
6
6
  "type": "module",
@@ -9,7 +9,12 @@
9
9
  },
10
10
  "files": [
11
11
  "frontend",
12
+ "!frontend/package-lock.json",
13
+ "!frontend/node_modules",
14
+ "!frontend/dist",
12
15
  "backend",
16
+ "!backend/package-lock.json",
17
+ "!backend/node_modules",
13
18
  "bin",
14
19
  "README.md"
15
20
  ],