create-ts-express-app 1.0.1 → 1.1.0

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.
Files changed (2) hide show
  1. package/bin/cli.js +37 -15
  2. package/package.json +1 -1
package/bin/cli.js CHANGED
@@ -1,41 +1,63 @@
1
+ #!/usr/bin/env node
2
+
1
3
  const fs = require('fs-extra');
2
4
  const path = require('path');
3
- const chalk = require('chalk');
4
5
 
6
+ // Get project name from command line
5
7
  const projectName = process.argv[2] || 'ts-express-app';
6
8
 
7
-
9
+ // Target directory (where user ran the npx command)
8
10
  const targetDir = path.join(process.cwd(), projectName);
9
11
 
10
- const templateDir = path.join(__dirname, '..', 'templates');
12
+ // Source template directory (relative to this script)
13
+ const templateDir = path.join(__dirname, '..', 'template');
14
+
15
+ console.log('Debug info:');
16
+ console.log(`Script location: ${__dirname}`);
17
+ console.log(`Template directory: ${templateDir}`);
18
+ console.log(`Target directory: ${targetDir}`);
11
19
 
12
20
  async function createProject() {
13
- console.log(chalk.blue(`Creating a new TypeScript Express project in ${targetDir}`));
14
-
21
+ console.log(`Creating a new TypeScript Express project in ${targetDir}`);
15
22
 
23
+ // Check if directory exists
16
24
  if (fs.existsSync(targetDir)) {
17
- console.error(chalk.red(`Error: Directory ${projectName} already exists.`));
25
+ console.error(`Error: Directory ${projectName} already exists.`);
18
26
  process.exit(1);
19
27
  }
20
28
 
21
-
29
+ // Create the target directory
30
+ fs.mkdirSync(targetDir, { recursive: true });
31
+
32
+ // Check if template directory exists
33
+ if (!fs.existsSync(templateDir)) {
34
+ console.error(`Error: Template directory not found at ${templateDir}`);
35
+ console.log('Available files in script directory:');
36
+ console.log(fs.readdirSync(path.join(__dirname, '..')));
37
+ process.exit(1);
38
+ }
39
+
40
+ // Copy template files
22
41
  try {
23
42
  await fs.copy(templateDir, targetDir);
24
- console.log(chalk.green('Template files copied successfully.'));
43
+ console.log('Template files copied successfully.');
25
44
 
26
-
45
+ // Update package.json with project name
27
46
  const packageJsonPath = path.join(targetDir, 'package.json');
28
- const packageJson = await fs.readJson(packageJsonPath);
29
- packageJson.name = projectName;
30
- await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 });
47
+ if (fs.existsSync(packageJsonPath)) {
48
+ const packageJson = await fs.readJson(packageJsonPath);
49
+ packageJson.name = projectName;
50
+ await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 });
51
+ }
31
52
 
32
- console.log(chalk.green('Project created successfully!'));
33
- console.log(chalk.blue('\nNext steps:'));
53
+ console.log('Project created successfully!');
54
+ console.log('\nNext steps:');
34
55
  console.log(` cd ${projectName}`);
35
56
  console.log(' npm install');
36
57
  console.log(' npm run dev');
37
58
  } catch (err) {
38
- console.error(chalk.red(`Error creating project: ${err.message}`));
59
+ console.error(`Error creating project: ${err.message}`);
60
+ console.error(err.stack);
39
61
  process.exit(1);
40
62
  }
41
63
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-ts-express-app",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "main": "index.js",
5
5
  "bin": {
6
6
  "create-ts-express-app": "bin/cli.js"