create-icebreaker 0.1.16 → 1.0.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 (3) hide show
  1. package/README.md +20 -3
  2. package/dist/index.mjs +18 -13
  3. package/package.json +3 -3
package/README.md CHANGED
@@ -14,12 +14,29 @@ By default this:
14
14
  - asks which templates to keep (default keeps none)
15
15
  - updates the root `package.json` name
16
16
 
17
+ ## Next Steps
18
+
19
+ After scaffolding finishes:
20
+
21
+ ```sh
22
+ cd <your-project>
23
+ pnpm install
24
+ pnpm setup
25
+ pnpm new my-package
26
+ pnpm check
27
+ ```
28
+
29
+ Recommended maintenance flow inside the generated workspace:
30
+
31
+ - `pnpm setup`: bootstrap recommended workspace metadata and tooling
32
+ - `pnpm new`: create the next package or app through the guided flow
33
+ - `pnpm check`: run recommended local verification
34
+ - `pnpm dlx repo@latest clean --yes`: optional zero-install cleanup on a fresh clone
35
+
17
36
  ## Templates
18
37
 
19
38
  Available template keys:
20
39
 
21
- - `unbuild`
22
- - `tsup`
23
40
  - `tsdown`
24
41
  - `vue-lib`
25
42
  - `vue-hono`
@@ -29,5 +46,5 @@ Available template keys:
29
46
 
30
47
  ## Flags
31
48
 
32
- - `--templates <list>`: comma-separated template keys or indexes to keep (e.g. `tsup,vue-hono` or `1,5`)
49
+ - `--templates <list>`: comma-separated template keys or indexes to keep (e.g. `tsdown,vue-hono` or `1,4`)
33
50
  - `--force`: overwrite a non-empty target directory
package/dist/index.mjs CHANGED
@@ -5,6 +5,20 @@ import fs from "node:fs/promises";
5
5
  //#region src/constants.ts
6
6
  const DEFAULT_TARGET = "icebreaker-monorepo";
7
7
  //#endregion
8
+ //#region src/next-steps.ts
9
+ function formatNextSteps(targetDir) {
10
+ return [
11
+ "",
12
+ "All set! Next steps:",
13
+ ` cd ${path.relative(process.cwd(), targetDir) || "."}`,
14
+ " pnpm install",
15
+ " pnpm setup",
16
+ " pnpm new my-package",
17
+ " pnpm check",
18
+ ""
19
+ ].join("\n");
20
+ }
21
+ //#endregion
8
22
  //#region src/package-json.ts
9
23
  async function updateRootPackageJson(targetDir, projectName) {
10
24
  const pkgPath = path.join(targetDir, "package.json");
@@ -12,10 +26,9 @@ async function updateRootPackageJson(targetDir, projectName) {
12
26
  const pkg = JSON.parse(raw);
13
27
  pkg.name = projectName;
14
28
  const devDependencies = pkg.devDependencies;
15
- if (devDependencies && devDependencies["@icebreakers/monorepo"]) {
16
- delete devDependencies["@icebreakers/monorepo"];
17
- if (Object.keys(devDependencies).length === 0) delete pkg.devDependencies;
18
- }
29
+ if (devDependencies && devDependencies["@icebreakers/monorepo"]) delete devDependencies["@icebreakers/monorepo"];
30
+ if (devDependencies && devDependencies["repoctl"]) delete devDependencies["repoctl"];
31
+ if (devDependencies && Object.keys(devDependencies).length === 0) delete pkg.devDependencies;
19
32
  const scripts = pkg.scripts;
20
33
  if (scripts) {
21
34
  const nextScripts = {};
@@ -90,15 +103,7 @@ async function scaffoldFromNpm(targetDir, selectedTemplates, force = false) {
90
103
  //#endregion
91
104
  //#region src/index.ts
92
105
  function printNextSteps(targetDir) {
93
- const relative = path.relative(process.cwd(), targetDir) || ".";
94
- process.stdout.write([
95
- "",
96
- "All set! Next steps:",
97
- ` cd ${relative}`,
98
- " pnpm install",
99
- " pnpm dev",
100
- ""
101
- ].join("\n"));
106
+ process.stdout.write(formatNextSteps(targetDir));
102
107
  }
103
108
  async function runCreate(targetDirInput, options) {
104
109
  const isInteractive = Boolean(process.stdin.isTTY && process.stdout.isTTY);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-icebreaker",
3
3
  "type": "module",
4
- "version": "0.1.16",
4
+ "version": "1.0.0",
5
5
  "description": "Bootstrap the icebreaker monorepo template via npm create/pnpm create with optional cleanup",
6
6
  "author": "ice breaker <hi@sonofmagic.top>",
7
7
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  "node": ">=18.0.0"
32
32
  },
33
33
  "dependencies": {
34
- "@icebreakers/monorepo-templates": "0.1.16"
34
+ "@icebreakers/monorepo-templates": "1.0.0"
35
35
  },
36
36
  "publishConfig": {
37
37
  "access": "public"
@@ -39,7 +39,7 @@
39
39
  "scripts": {
40
40
  "dev": "tsdown --watch --sourcemap",
41
41
  "build": "tsdown",
42
- "typecheck": "tsc -p tsconfig.json",
42
+ "typecheck": "pnpm --filter @icebreakers/monorepo-templates build && node ../../node_modules/typescript/bin/tsc -p tsconfig.json",
43
43
  "lint": "eslint .",
44
44
  "test": "vitest run --passWithNoTests"
45
45
  }