pika-ux 1.0.0-beta.4 → 1.0.0-beta.6
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.
- package/dist/cli/index.js +48 -12
- package/package.json +1 -1
- package/readme.md +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { promisify } from 'util';
|
|
|
11
11
|
import ora from 'ora';
|
|
12
12
|
import semver from 'semver';
|
|
13
13
|
import { glob } from 'glob';
|
|
14
|
+
import { createRequire } from 'module';
|
|
14
15
|
|
|
15
16
|
var Logger = class {
|
|
16
17
|
spinner = null;
|
|
@@ -100,15 +101,34 @@ function toHumanReadable(projectName) {
|
|
|
100
101
|
return parts.map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join(" ");
|
|
101
102
|
}
|
|
102
103
|
async function processTemplateFiles(sourceDir, targetDir, variables) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
logger.debug(`Processing template files from: ${sourceDir}`);
|
|
105
|
+
logger.debug(`Target directory: ${targetDir}`);
|
|
106
|
+
let files;
|
|
107
|
+
try {
|
|
108
|
+
files = await glob("**/*", {
|
|
109
|
+
cwd: sourceDir,
|
|
110
|
+
dot: true,
|
|
111
|
+
nodir: true,
|
|
112
|
+
absolute: false
|
|
113
|
+
});
|
|
114
|
+
logger.debug(`Glob found ${files.length} files`);
|
|
115
|
+
} catch (error) {
|
|
116
|
+
logger.debug(`Glob error: ${error}`);
|
|
117
|
+
throw new Error(`Failed to read template directory: ${error}`);
|
|
118
|
+
}
|
|
119
|
+
if (files.length === 0) {
|
|
120
|
+
logger.warn(`No files found in template directory: ${sourceDir}`);
|
|
121
|
+
try {
|
|
122
|
+
const dirContents = await fs.readdir(sourceDir);
|
|
123
|
+
logger.debug(`Directory contents: ${dirContents.join(", ")}`);
|
|
124
|
+
} catch (e) {
|
|
125
|
+
logger.debug(`Could not read directory: ${e}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
109
128
|
for (const file of files) {
|
|
110
129
|
const sourcePath = path2.join(sourceDir, file);
|
|
111
130
|
const targetPath = path2.join(targetDir, file);
|
|
131
|
+
logger.debug(`Copying: ${file}`);
|
|
112
132
|
await fs.ensureDir(path2.dirname(targetPath));
|
|
113
133
|
let content = await fs.readFile(sourcePath, "utf8");
|
|
114
134
|
content = content.replace(/\{projectName\}/g, variables.projectName).replace(/\{humanReadableProjectName\}/g, variables.humanReadableProjectName).replace(/\{pikaUxVersion\}/g, variables.pikaUxVersion);
|
|
@@ -120,11 +140,10 @@ async function copyAndProcessTemplate(templateDir, targetDir, variables) {
|
|
|
120
140
|
await fs.ensureDir(targetDir);
|
|
121
141
|
await processTemplateFiles(templateDir, targetDir, variables);
|
|
122
142
|
}
|
|
123
|
-
|
|
124
|
-
// tools/cli/commands/create.ts
|
|
125
143
|
var execAsync2 = promisify(exec);
|
|
126
144
|
var __filename = fileURLToPath(import.meta.url);
|
|
127
145
|
var __dirname = path2.dirname(__filename);
|
|
146
|
+
var require2 = createRequire(import.meta.url);
|
|
128
147
|
async function createCommand(options = {}) {
|
|
129
148
|
try {
|
|
130
149
|
logger.newLine();
|
|
@@ -180,16 +199,33 @@ async function createCommand(options = {}) {
|
|
|
180
199
|
}
|
|
181
200
|
const spinner = logger.startSpinner("Creating project...");
|
|
182
201
|
try {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
202
|
+
let pikaUxVersion = "1.0.0-beta.4";
|
|
203
|
+
try {
|
|
204
|
+
const pikaUxPackageJsonPath = require2.resolve("pika-ux/package.json");
|
|
205
|
+
const pikaUxPackageJson = await fs.readJson(pikaUxPackageJsonPath);
|
|
206
|
+
pikaUxVersion = pikaUxPackageJson.version;
|
|
207
|
+
} catch (error) {
|
|
208
|
+
logger.debug("Could not determine pika-ux version, using fallback");
|
|
209
|
+
}
|
|
210
|
+
let templateDir;
|
|
211
|
+
try {
|
|
212
|
+
const pikaUxRoot = path2.dirname(require2.resolve("pika-ux/package.json"));
|
|
213
|
+
templateDir = path2.join(pikaUxRoot, "dist/cli/template-files");
|
|
214
|
+
logger.debug(`Template directory resolved to: ${templateDir}`);
|
|
215
|
+
} catch (error) {
|
|
216
|
+
templateDir = path2.join(__dirname, "../template-files");
|
|
217
|
+
logger.debug(`Using fallback template directory: ${templateDir}`);
|
|
218
|
+
}
|
|
219
|
+
if (!await fs.pathExists(templateDir)) {
|
|
220
|
+
throw new Error(`Template directory not found: ${templateDir}`);
|
|
221
|
+
}
|
|
187
222
|
logger.updateSpinner("Processing template files...");
|
|
188
223
|
await copyAndProcessTemplate(templateDir, targetPath, {
|
|
189
224
|
projectName,
|
|
190
225
|
humanReadableProjectName: humanReadableName,
|
|
191
226
|
pikaUxVersion
|
|
192
227
|
});
|
|
228
|
+
logger.debug(`Files copied to: ${targetPath}`);
|
|
193
229
|
logger.stopSpinner(true, "Template files processed");
|
|
194
230
|
const installSpinner = logger.startSpinner("Installing dependencies with pnpm...");
|
|
195
231
|
try {
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -7,7 +7,7 @@ UI Components library for the Pika project. This package contains both custom Pi
|
|
|
7
7
|
The fastest way to create a new webcomponent project with Pika UX:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
10
|
+
pnpm dlx pika-ux create my-webcomponent
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
### Global Installation (Optional)
|