rebar-js 1.0.0 → 1.0.2
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/README.md +15 -15
- package/bin/project.js +8 -8
- package/dist/index.js +5 -5
- package/package.json +10 -9
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<a href="#features"><img src="https://img.shields.io/badge/dynamic/
|
|
6
|
+
<a href="#features"><img src="https://img.shields.io/badge/dynamic/jso
|
|
7
7
|
<img src="https://img.shields.io/badge/license-ISC-6c5ce7?style=flat" alt="License">
|
|
8
8
|
<img src="https://img.shields.io/badge/node-%3E%3D20-6c5ce7?style=flat" alt="Node">
|
|
9
9
|
<img src="https://img.shields.io/badge/typescript-5.9-3178C6?style=flat" alt="TypeScript">
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
Rebar is an interactive CLI that scaffolds full-featured projects across **Next.js**, **Vite**, **Express**, **Expo**, and **Electron**. Answer a few prompts and get a production-ready project with your choice of package manager, linter, database ORM, auth, and UI toolkit — all wired up and ready to code.
|
|
16
|
+
Rebar-js is an interactive CLI that scaffolds full-featured projects across **Next.js**, **Vite**, **Express**, **Expo**, and **Electron**. Answer a few prompts and get a production-ready project with your choice of package manager, linter, database ORM, auth, and UI toolkit — all wired up and ready to code.
|
|
17
17
|
|
|
18
18
|
<br>
|
|
19
19
|
|
|
@@ -22,7 +22,7 @@ Rebar is an interactive CLI that scaffolds full-featured projects across **Next.
|
|
|
22
22
|
- **Framework selection** — Next.js, Vite (React), Express, Expo, or Electron
|
|
23
23
|
- **Package manager of choice** — npm, yarn, or bun
|
|
24
24
|
- **Per-framework tooling prompts** — TypeScript, Tailwind CSS, shadcn/ui, tRPC, Drizzle ORM, Better Auth, React Router, React Compiler, Husky, ESLint, Biome, path aliasing, and more
|
|
25
|
-
- **Interactive & headless modes** — `rebar init` for guided setup, `rebar start` for flag-driven automation
|
|
25
|
+
- **Interactive & headless modes** — `rebar-js init` for guided setup, `rebar-js start` for flag-driven automation
|
|
26
26
|
- **Colored terminal output** — step indicators, status symbols, and a welcome banner
|
|
27
27
|
- **Pinned dependency versions** — all packages are locked to stable releases so scaffolding doesn't break
|
|
28
28
|
|
|
@@ -31,7 +31,7 @@ Rebar is an interactive CLI that scaffolds full-featured projects across **Next.
|
|
|
31
31
|
## Quick start
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
npx rebar init
|
|
34
|
+
npx rebar-js init
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
Follow the prompts to pick a package manager, framework, and extra tooling. That's it.
|
|
@@ -43,23 +43,23 @@ Follow the prompts to pick a package manager, framework, and extra tooling. That
|
|
|
43
43
|
### Via npx (no install)
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
npx rebar init
|
|
46
|
+
npx rebar-js init
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
### Global install
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
|
-
npm install -g rebar
|
|
52
|
+
npm install -g rebar-js
|
|
53
53
|
# or
|
|
54
|
-
yarn global add rebar
|
|
54
|
+
yarn global add rebar-js
|
|
55
55
|
# or
|
|
56
|
-
bun add -g rebar
|
|
56
|
+
bun add -g rebar-js
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
Then run:
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
rebar init
|
|
62
|
+
rebar-js init
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
<br>
|
|
@@ -69,7 +69,7 @@ rebar init
|
|
|
69
69
|
### Interactive mode
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
rebar init
|
|
72
|
+
rebar-js init
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
Walks you through:
|
|
@@ -82,7 +82,7 @@ Walks you through:
|
|
|
82
82
|
### Headless mode
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
rebar start -m npm -f vite
|
|
85
|
+
rebar-js start -m npm -f vite
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
Flags:
|
|
@@ -118,8 +118,8 @@ Flags:
|
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
120
|
# Clone
|
|
121
|
-
git clone https://github.com/anomalyco/rebar.git
|
|
122
|
-
cd rebar
|
|
121
|
+
git clone https://github.com/anomalyco/rebar-js.git
|
|
122
|
+
cd rebar-js
|
|
123
123
|
|
|
124
124
|
# Install dependencies
|
|
125
125
|
npm install
|
|
@@ -139,9 +139,9 @@ node bin/project.js init
|
|
|
139
139
|
|
|
140
140
|
<br>
|
|
141
141
|
|
|
142
|
-
## Why "
|
|
142
|
+
## Why "rebar-js"?
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
rebar-js is the steel reinforcing bar that gives concrete its tensile strength — it's hidden inside the structure, but everything relies on it. A solid scaffolding tool works the same way.
|
|
145
145
|
|
|
146
146
|
<br>
|
|
147
147
|
|
package/bin/project.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { dirname, resolve } from 'node:path';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
|
-
|
|
6
|
-
const currentDir = dirname(fileURLToPath(import.meta.url));
|
|
7
|
-
const entryPath = resolve(currentDir, '../dist/index.js');
|
|
8
|
-
|
|
9
|
-
await import(entryPath);
|
|
2
|
+
|
|
3
|
+
import { dirname, resolve } from 'node:path';
|
|
4
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
5
|
+
|
|
6
|
+
const currentDir = dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
const entryPath = resolve(currentDir, '../dist/index.js');
|
|
8
|
+
|
|
9
|
+
await import(pathToFileURL(entryPath).href);
|
package/dist/index.js
CHANGED
|
@@ -1111,7 +1111,7 @@ var viteAppTsconfig = () => {
|
|
|
1111
1111
|
// src/scripts/vite.ts
|
|
1112
1112
|
var initiateVite = ({ manager, ts, name }) => {
|
|
1113
1113
|
const template = ts ? "react-ts" : "react";
|
|
1114
|
-
const command = `${manager} create vite ${name} --template ${template} --no-interactive`;
|
|
1114
|
+
const command = manager === "npm" ? `npm create vite@latest ${name} -- --template ${template} --no-interactive` : `${manager} create vite@latest ${name} --template ${template} --no-interactive`;
|
|
1115
1115
|
execSync3(command, {
|
|
1116
1116
|
stdio: "inherit"
|
|
1117
1117
|
});
|
|
@@ -1193,14 +1193,14 @@ var reactCompilerSetup = (manager, rc) => {
|
|
|
1193
1193
|
if (!rc) {
|
|
1194
1194
|
return;
|
|
1195
1195
|
}
|
|
1196
|
-
addDevPackage(manager, "@rolldown/plugin-babel@0.2.
|
|
1196
|
+
addDevPackage(manager, "@rolldown/plugin-babel@0.2.3 @babel/core@7.29.0 babel-plugin-react-compiler@1.0.0 @types/babel__core@7.20.5");
|
|
1197
1197
|
};
|
|
1198
1198
|
var shadcnSetup = (shadcn, manager) => {
|
|
1199
1199
|
if (!shadcn) {
|
|
1200
1200
|
return;
|
|
1201
1201
|
}
|
|
1202
|
-
const initCommand = `${manager === "bun" ? "--bun " : ""}shadcn@latest init -d`;
|
|
1203
|
-
const addCommand = `${manager === "bun" ? "--bun " : ""}shadcn@latest add --all`;
|
|
1202
|
+
const initCommand = `${manager === "bun" ? "--bun " : ""}shadcn@latest init -y -d`;
|
|
1203
|
+
const addCommand = `${manager === "bun" ? "--bun " : ""}shadcn@latest add --all -y`;
|
|
1204
1204
|
packageExecutor(manager, initCommand);
|
|
1205
1205
|
packageExecutor(manager, addCommand);
|
|
1206
1206
|
};
|
|
@@ -1281,7 +1281,7 @@ var mapper = {
|
|
|
1281
1281
|
|
|
1282
1282
|
// src/index.ts
|
|
1283
1283
|
var program = new Command();
|
|
1284
|
-
program.name("Rebar").description("Interactive CLI for scaffolding JavaScript and TypeScript projects across multiple frameworks.").version("1.0.
|
|
1284
|
+
program.name("Rebar").description("Interactive CLI for scaffolding JavaScript and TypeScript projects across multiple frameworks.").version("1.0.2");
|
|
1285
1285
|
program.command("init").description("choose a template to start").action(async () => {
|
|
1286
1286
|
banner();
|
|
1287
1287
|
info(`Let's scaffold your project! Answer a few questions to get started.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rebar-js",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Interactive CLI for scaffolding JavaScript and TypeScript projects across multiple frameworks.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"rebar-js": "./bin/project.js"
|
|
@@ -33,6 +33,14 @@
|
|
|
33
33
|
"author": "",
|
|
34
34
|
"license": "ISC",
|
|
35
35
|
"type": "module",
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "tsup src/index.ts --format esm --out-dir dist --clean",
|
|
38
|
+
"typecheck": "tsc --noEmit",
|
|
39
|
+
"lint": "eslint .",
|
|
40
|
+
"lint:fix": "eslint . --fix",
|
|
41
|
+
"dev": "tsx src/index.ts",
|
|
42
|
+
"prepublishOnly": "npm run build && npm run typecheck && npm run lint"
|
|
43
|
+
},
|
|
36
44
|
"dependencies": {
|
|
37
45
|
"@inquirer/prompts": "^8.4.2",
|
|
38
46
|
"commander": "^14.0.3"
|
|
@@ -47,12 +55,5 @@
|
|
|
47
55
|
"tsup": "^8.5.1",
|
|
48
56
|
"typescript": "^5.9.3",
|
|
49
57
|
"typescript-eslint": "^8.59.2"
|
|
50
|
-
},
|
|
51
|
-
"scripts": {
|
|
52
|
-
"build": "tsup src/index.ts --format esm --out-dir dist --clean",
|
|
53
|
-
"typecheck": "tsc --noEmit",
|
|
54
|
-
"lint": "eslint .",
|
|
55
|
-
"lint:fix": "eslint . --fix",
|
|
56
|
-
"dev": "tsx src/index.ts"
|
|
57
58
|
}
|
|
58
|
-
}
|
|
59
|
+
}
|