@linyjs/cli 0.0.3 → 0.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,iBAsDpD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,iBA6FpD"}
@@ -22,15 +22,45 @@ export async function initPlugin(options) {
22
22
  }
23
23
  const spinner1 = ora('Downloading template from npm...').start();
24
24
  try {
25
- // Download template using npm create
26
- const npmCommand = `npm create @linyjs/plugin-templates@latest ${targetDir}`;
25
+ // Method 1: Use npx to download and extract template
26
+ // This downloads the package and extracts the default-template directory
27
+ const tempDir = path.join(process.cwd(), '.ling-init-temp');
28
+ // Clean up any existing temp directory
29
+ if (fs.existsSync(tempDir)) {
30
+ fs.rmSync(tempDir, { recursive: true, force: true });
31
+ }
32
+ // Download the package using npm pack
33
+ const packageName = '@linyjs/plugin-templates';
34
+ const packCommand = `npm pack ${packageName}@latest --pack-destination="${tempDir}"`;
27
35
  if (options.verbose) {
28
- console.log(chalk.gray('Running:'), npmCommand);
36
+ console.log(chalk.gray('Running:'), packCommand);
29
37
  }
30
- execSync(npmCommand, {
38
+ fs.mkdirSync(tempDir, { recursive: true });
39
+ execSync(packCommand, {
31
40
  stdio: options.verbose ? 'inherit' : 'pipe',
32
41
  cwd: process.cwd()
33
42
  });
43
+ // Find the downloaded .tgz file
44
+ const tgzFiles = fs.readdirSync(tempDir).filter(f => f.endsWith('.tgz'));
45
+ if (tgzFiles.length === 0) {
46
+ throw new Error('Failed to download template package');
47
+ }
48
+ const tgzFile = path.join(tempDir, tgzFiles[0]);
49
+ // Extract the template
50
+ const extractCommand = `tar -xzf "${tgzFile}" -C "${tempDir}"`;
51
+ execSync(extractCommand, {
52
+ stdio: options.verbose ? 'inherit' : 'pipe'
53
+ });
54
+ // The extracted content is in tempDir/package/
55
+ const extractedPackageDir = path.join(tempDir, 'package');
56
+ const templateDir = path.join(extractedPackageDir, 'default-template');
57
+ if (!fs.existsSync(templateDir)) {
58
+ throw new Error('Template directory not found in package');
59
+ }
60
+ // Copy template to target directory
61
+ copyDirectory(templateDir, absolutePath);
62
+ // Clean up temp directory
63
+ fs.rmSync(tempDir, { recursive: true, force: true });
34
64
  spinner1.succeed('Template downloaded');
35
65
  // Show next steps
36
66
  console.log('\n' + chalk.green('✓ Project created successfully!\n'));
@@ -57,4 +87,25 @@ export async function initPlugin(options) {
57
87
  process.exit(1);
58
88
  }
59
89
  }
90
+ /**
91
+ * Recursively copy directory contents
92
+ */
93
+ function copyDirectory(src, dest) {
94
+ // Create destination directory
95
+ fs.mkdirSync(dest, { recursive: true });
96
+ // Read source directory
97
+ const entries = fs.readdirSync(src, { withFileTypes: true });
98
+ for (const entry of entries) {
99
+ const srcPath = path.join(src, entry.name);
100
+ const destPath = path.join(dest, entry.name);
101
+ if (entry.isDirectory()) {
102
+ // Recursively copy subdirectory
103
+ copyDirectory(srcPath, destPath);
104
+ }
105
+ else {
106
+ // Copy file
107
+ fs.copyFileSync(srcPath, destPath);
108
+ }
109
+ }
110
+ }
60
111
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linyjs/cli",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "ling": "./dist/index.js"
@@ -33,18 +33,57 @@ export async function initPlugin(options: InitOptions) {
33
33
  const spinner1 = ora('Downloading template from npm...').start();
34
34
 
35
35
  try {
36
- // Download template using npm create
37
- const npmCommand = `npm create @linyjs/plugin-templates@latest ${targetDir}`;
36
+ // Method 1: Use npx to download and extract template
37
+ // This downloads the package and extracts the default-template directory
38
+ const tempDir = path.join(process.cwd(), '.ling-init-temp');
39
+
40
+ // Clean up any existing temp directory
41
+ if (fs.existsSync(tempDir)) {
42
+ fs.rmSync(tempDir, { recursive: true, force: true });
43
+ }
44
+
45
+ // Download the package using npm pack
46
+ const packageName = '@linyjs/plugin-templates';
47
+ const packCommand = `npm pack ${packageName}@latest --pack-destination="${tempDir}"`;
38
48
 
39
49
  if (options.verbose) {
40
- console.log(chalk.gray('Running:'), npmCommand);
50
+ console.log(chalk.gray('Running:'), packCommand);
41
51
  }
42
52
 
43
- execSync(npmCommand, {
53
+ fs.mkdirSync(tempDir, { recursive: true });
54
+ execSync(packCommand, {
44
55
  stdio: options.verbose ? 'inherit' : 'pipe',
45
56
  cwd: process.cwd()
46
57
  });
47
58
 
59
+ // Find the downloaded .tgz file
60
+ const tgzFiles = fs.readdirSync(tempDir).filter(f => f.endsWith('.tgz'));
61
+ if (tgzFiles.length === 0) {
62
+ throw new Error('Failed to download template package');
63
+ }
64
+
65
+ const tgzFile = path.join(tempDir, tgzFiles[0]);
66
+
67
+ // Extract the template
68
+ const extractCommand = `tar -xzf "${tgzFile}" -C "${tempDir}"`;
69
+ execSync(extractCommand, {
70
+ stdio: options.verbose ? 'inherit' : 'pipe'
71
+ });
72
+
73
+ // The extracted content is in tempDir/package/
74
+ const extractedPackageDir = path.join(tempDir, 'package');
75
+ const templateDir = path.join(extractedPackageDir, 'default-template');
76
+
77
+ if (!fs.existsSync(templateDir)) {
78
+ throw new Error('Template directory not found in package');
79
+ }
80
+
81
+ // Copy template to target directory
82
+ copyDirectory(templateDir, absolutePath);
83
+
84
+ // Clean up temp directory
85
+ fs.rmSync(tempDir, { recursive: true, force: true });
86
+
48
87
  spinner1.succeed('Template downloaded');
49
88
 
50
89
  // Show next steps
@@ -73,3 +112,27 @@ export async function initPlugin(options: InitOptions) {
73
112
  process.exit(1);
74
113
  }
75
114
  }
115
+
116
+ /**
117
+ * Recursively copy directory contents
118
+ */
119
+ function copyDirectory(src: string, dest: string): void {
120
+ // Create destination directory
121
+ fs.mkdirSync(dest, { recursive: true });
122
+
123
+ // Read source directory
124
+ const entries = fs.readdirSync(src, { withFileTypes: true });
125
+
126
+ for (const entry of entries) {
127
+ const srcPath = path.join(src, entry.name);
128
+ const destPath = path.join(dest, entry.name);
129
+
130
+ if (entry.isDirectory()) {
131
+ // Recursively copy subdirectory
132
+ copyDirectory(srcPath, destPath);
133
+ } else {
134
+ // Copy file
135
+ fs.copyFileSync(srcPath, destPath);
136
+ }
137
+ }
138
+ }