create-crust 0.0.14 → 0.0.15

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/dist/index.js +3 -86
  2. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -1,88 +1,5 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
-
4
- // src/index.ts
5
- import { existsSync } from "fs";
6
- import { basename, resolve } from "path";
7
- import { defineCommand, runMain } from "@crustjs/core";
8
- import { detectPackageManager, runSteps, scaffold } from "@crustjs/create";
9
- import { confirm, input, spinner } from "@crustjs/prompts";
10
- var INVALID_NAME_CHARS = /[<>:"|?*\\]/;
11
- function validateProjectName(name) {
12
- if (!name) {
13
- return "Project name cannot be empty";
14
- }
15
- if (INVALID_NAME_CHARS.test(name)) {
16
- return `Project name contains invalid characters: ${name}`;
17
- }
18
- return true;
19
- }
20
- var command = defineCommand({
21
- meta: {
22
- name: "create-crust",
23
- description: "Scaffold a new Crust CLI project"
24
- },
25
- args: [
26
- {
27
- name: "directory",
28
- type: "string",
29
- description: "Project directory to scaffold into"
30
- }
31
- ],
32
- async run({ args }) {
33
- const targetDir = args.directory ?? await input({
34
- message: "Project directory",
35
- placeholder: "my-cli",
36
- validate: validateProjectName
37
- });
38
- const resolvedDir = resolve(process.cwd(), targetDir);
39
- const dirName = basename(resolvedDir);
40
- if (targetDir !== "." && existsSync(resolvedDir)) {
41
- const overwrite = await confirm({
42
- message: `Directory "${dirName}" already exists. Overwrite?`,
43
- default: false
44
- });
45
- if (!overwrite) {
46
- console.log("Aborted.");
47
- return;
48
- }
49
- }
50
- const name = dirName;
51
- await scaffold({
52
- template: "templates/base",
53
- dest: resolvedDir,
54
- context: { name },
55
- conflict: "overwrite"
56
- });
57
- const installDeps = await confirm({
58
- message: "Install dependencies?",
59
- default: true
60
- });
61
- if (installDeps) {
62
- const pm = detectPackageManager(resolvedDir);
63
- const installCmd = pm === "npm" ? "npm install" : `${pm} install`;
64
- await runSteps([{ type: "command", cmd: installCmd }], resolvedDir);
65
- }
66
- const initGit = await confirm({
67
- message: "Initialize a git repository?",
68
- default: true
69
- });
70
- if (initGit) {
71
- await spinner({
72
- message: "Initializing git repository...",
73
- task: () => runSteps([{ type: "git-init", commit: "chore: initial commit" }], resolvedDir)
74
- });
75
- }
76
- console.log(`
77
- Created ${name}!
78
- `);
79
- console.log("Next steps:");
80
- if (targetDir !== ".") {
81
- const relativeDir = targetDir.startsWith("/") ? targetDir : `./${targetDir}`;
82
- console.log(` cd ${relativeDir}`);
83
- }
84
- console.log(" bun run dev");
85
- console.log(" bun run build");
86
- }
87
- });
88
- runMain(command);
3
+ import{existsSync as O}from"fs";import{basename as Z,resolve as Q}from"path";import{defineCommand as $,runMain as b}from"@crustjs/core";import{detectPackageManager as E,isInGitRepo as H,runSteps as T,scaffold as L}from"@crustjs/create";import{confirm as F,input as V,spinner as x}from"@crustjs/prompts";var y=/[<>:"|?*\\]/;function G(z){if(!z)return"Project name cannot be empty";if(y.test(z))return`Project name contains invalid characters: ${z}`;return!0}var R=$({meta:{name:"create-crust",description:"Scaffold a new Crust CLI project"},args:[{name:"directory",type:"string",description:"Project directory to scaffold into"}],async run({args:z}){let w=z.directory??await V({message:"Project directory",default:"my-cli",validate:G}),q=Q(process.cwd(),w),J=Z(q);if(w!=="."&&O(q)){if(!await F({message:`Directory "${J}" already exists. Overwrite?`,default:!1})){console.log("Aborted.");return}}let U=await F({message:"Install dependencies?",default:!0}),W=O(q)?q:Q(q,".."),X=H(W)?!1:await F({message:"Initialize a git repository?",default:!0}),K=J;if(await L({template:"templates/base",dest:q,context:{name:K},conflict:"overwrite"}),U){let B=E(q),Y=B==="npm"?"npm install":`${B} install`;await T([{type:"command",cmd:Y}],q)}if(X)await x({message:"Initializing git repository...",task:()=>T([{type:"git-init",commit:"chore: initial commit"}],q)});if(console.log(`
4
+ Created ${K}!
5
+ `),console.log("Next steps:"),w!=="."){let B=w.startsWith("/")?w:`./${w}`;console.log(` cd ${B}`)}console.log(" bun run dev"),console.log(" bun run build")}});b(R);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-crust",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "description": "Scaffold a new Crust CLI project.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -40,9 +40,9 @@
40
40
  "test": "bun test"
41
41
  },
42
42
  "dependencies": {
43
- "@crustjs/core": "0.0.8",
44
- "@crustjs/create": "0.0.3",
45
- "@crustjs/prompts": "0.0.5"
43
+ "@crustjs/core": "0.0.9",
44
+ "@crustjs/create": "0.0.4",
45
+ "@crustjs/prompts": "0.0.6"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@crustjs/config": "0.0.0",