@farm.js/create-app 0.1.0-beta.100 → 0.1.0-beta.102

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/index.mjs CHANGED
@@ -3157,6 +3157,7 @@ async function createApp(projectName, options = {}) {
3157
3157
  await fs.mkdir(projectPath, { recursive: true });
3158
3158
  const integrationResult = await copyTemplate(template, projectPath, renderer);
3159
3159
  await updatePackageJson(projectPath, projectName, packageManager);
3160
+ await updatePackageManagerInstructions(projectPath, packageManager.name);
3160
3161
  logger.success(`🚜 Created ${projectName}`);
3161
3162
  if (!options.skipInstall) {
3162
3163
  logger.info(`Installing dependencies with ${packageManager.name}...`);
@@ -3169,7 +3170,7 @@ async function createApp(projectName, options = {}) {
3169
3170
  if (options.skipInstall) logger.info(` ${packageManager.name} install`);
3170
3171
  logger.info(` ${getDevCommand(packageManager.name)}`);
3171
3172
  logger.info("");
3172
- for (const instruction of templateDetails[template]?.instructions ?? []) logger.info(instruction);
3173
+ for (const instruction of templateDetails[template]?.instructions ?? []) logger.info(rewritePackageManagerCommands(instruction, packageManager.name));
3173
3174
  if (integrationResult) {
3174
3175
  const details = templateDetails[template].integration;
3175
3176
  logger.info(`Open ${details.route} for the ${details.label} starter.`);
@@ -3210,6 +3211,14 @@ async function copyTemplate(template, projectPath, renderer) {
3210
3211
  }
3211
3212
  async function applyRendererTemplate(projectPath, renderer, basePackageJson) {
3212
3213
  const rendererTemplatePath = path.join(__dirname, "..", "templates", "_renderers", renderer);
3214
+ await Promise.all([
3215
+ fs.rm(path.join(projectPath, "docs.config.ts"), { force: true }),
3216
+ fs.rm(path.join(projectPath, "docs.json"), { force: true }),
3217
+ fs.rm(path.join(projectPath, "src", "app", "docs"), {
3218
+ recursive: true,
3219
+ force: true
3220
+ })
3221
+ ]);
3213
3222
  if (renderer === "vue" || renderer === "svelte") await Promise.all([
3214
3223
  fs.rm(path.join(projectPath, "src", "app", "page.tsx"), { force: true }),
3215
3224
  fs.rm(path.join(projectPath, "src", "app", "layout.tsx"), { force: true }),
@@ -3227,7 +3236,13 @@ function mergeRendererPackageJson(base, renderer) {
3227
3236
  ...base.devDependencies,
3228
3237
  ...renderer.devDependencies
3229
3238
  };
3230
- for (const name of ["react", "react-dom"]) delete dependencies[name];
3239
+ for (const name of [
3240
+ "@farming-labs/docs",
3241
+ "@farming-labs/farmjs",
3242
+ "@farming-labs/theme",
3243
+ "react",
3244
+ "react-dom"
3245
+ ]) delete dependencies[name];
3231
3246
  for (const name of ["@types/react", "@types/react-dom"]) delete devDependencies[name];
3232
3247
  return {
3233
3248
  ...base,
@@ -3453,6 +3468,35 @@ function getDevCommand(packageManager) {
3453
3468
  if (packageManager === "npm" || packageManager === "bun") return `${packageManager} run dev`;
3454
3469
  return `${packageManager} dev`;
3455
3470
  }
3471
+ function getRunCommand(packageManager, script) {
3472
+ if (packageManager === "npm" || packageManager === "bun") return `${packageManager} run ${script}`;
3473
+ return `${packageManager} ${script}`;
3474
+ }
3475
+ function rewritePackageManagerCommands(content, packageManager) {
3476
+ let output = content.replace(/\bpnpm install\b/g, `${packageManager} install`);
3477
+ output = output.replace(/\bpnpm run (dev|auth:migrate|type-check|build|check|deploy|experiment)\b/g, (match, script) => packageManager === "pnpm" ? match : getRunCommand(packageManager, script));
3478
+ return output.replace(/\bpnpm (dev|auth:migrate|type-check|build|check|deploy|experiment)\b/g, (_match, script) => getRunCommand(packageManager, script));
3479
+ }
3480
+ async function updatePackageManagerInstructions(projectPath, packageManager) {
3481
+ await Promise.all([
3482
+ "package.json",
3483
+ "README.md",
3484
+ "farm.config.ts",
3485
+ "src/app/page.tsx",
3486
+ "src/app/page.jsx",
3487
+ "src/app/page.vue",
3488
+ "src/app/page.svelte"
3489
+ ].map(async (file) => {
3490
+ const entryPath = path.join(projectPath, file);
3491
+ try {
3492
+ const content = await fs.readFile(entryPath, "utf8");
3493
+ const nextContent = rewritePackageManagerCommands(content, packageManager);
3494
+ if (nextContent !== content) await fs.writeFile(entryPath, nextContent, "utf8");
3495
+ } catch (error) {
3496
+ if (error.code !== "ENOENT") throw error;
3497
+ }
3498
+ }));
3499
+ }
3456
3500
  //#endregion
3457
3501
  export { createApp, detectPackageManager, installDependencies };
3458
3502