@ldgerrits/rogen 2.0.0-beta.1 → 2.0.0-beta.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.
Files changed (3) hide show
  1. package/README.md +17 -20
  2. package/dist/bundle.cjs +5992 -3277
  3. package/package.json +5 -5
package/README.md CHANGED
@@ -8,10 +8,10 @@
8
8
  </p>
9
9
  <h1 align="center">Rogen</h1>
10
10
  <p align="center">
11
- <strong>Rojo with file-system routing. Professional-grade architecture for Roblox codebases.</strong>
11
+ <strong>A Rojo superset that keeps each feature's server and client code in one folder.</strong>
12
12
  </p>
13
13
  <p align="center">
14
- Rogen is a superset of Rojo that generates Rojo project files from your file system. Put code in a <code>Server</code> or <code>Client</code> folder, or add <code>@Server</code> to a file's name, and Rogen sends it to the right place.
14
+ Rogen generates the Rojo project file from your file system, and sends each file to the right place in Studio.
15
15
  </p>
16
16
  <p align="center">
17
17
  <a href="https://www.npmjs.com/package/@ldgerrits/rogen"><img alt="Beta release" src="https://img.shields.io/npm/v/@ldgerrits/rogen/next?style=flat-square&label=beta" /></a>
@@ -22,22 +22,29 @@
22
22
  <a href="https://roblox-ts.com"><img alt="roblox-ts" src="https://img.shields.io/badge/roblox--ts-3178C6?style=flat-square&logo=typescript&logoColor=white" /></a>
23
23
  </p>
24
24
 
25
+ <p align="center">
26
+ <picture>
27
+ <source media="(prefers-color-scheme: dark)" srcset="docs/public/readme/routing-dark.png" />
28
+ <img src="docs/public/readme/routing-light.png" alt="VS Code with an Inventory feature and rogen serve in its terminal, beside the Roblox Studio Explorer with each file where Rogen sent it" width="840" />
29
+ </picture>
30
+ </p>
31
+
25
32
  ## Why Rogen?
26
33
 
27
34
  - **Organize by feature** — Group all code, UI, and assets for a specific feature in one place. This gives you high cohesion, better scalability, fewer merge conflicts, and features that are simple to maintain or delete.
28
- - **Enforce boundaries** — Keep coupling low with a linter. Every path names its feature, so a [lint rule](https://rogen-roblox.vercel.app/docs/v2/architectures) can stop one feature from requiring another.
29
- - **Multi-place games** — Write shared code once and use it in every place. When one place needs something different, add a file with the same name to that place's folder, and it overwrites the shared one there.
35
+ - **Enforce boundaries** — Keep coupling low with a linter. Every path names its feature, so a [lint rule](https://rogen-roblox.vercel.app/docs/v2/linting) can stop one feature from requiring another.
36
+ - **Multi-place games** — Write shared code once and use it in every place. When one place needs something different, add a file with the same name to that place's folder, and it replaces the shared one there.
30
37
  - **Still Rojo** — Rogen runs the Rojo commands you use, with the same flags. One tool, and nothing to relearn.
31
38
 
32
39
  ## Built for agents
33
40
 
34
41
  When an agent works on a feature, everything it needs is in one folder, from server to client. It spends its context on your task instead of searching the codebase.
35
42
 
36
- Running several agents? Give each one a feature. A lint rule catches any agent that makes one feature require another, and there's no shared project file to conflict on.
43
+ Running several agents? Give each one a feature. A lint rule catches any agent that makes one feature require another, and there's no shared project file to conflict on. See [Working with agents](https://rogen-roblox.vercel.app/docs/v2/agents) to set them up.
37
44
 
38
- ## Example
45
+ ## How it works
39
46
 
40
- `default.rogen.json` is a Rojo project file with `routes` added. The `tree` is the base: put in it what folder names can't say, such as your packages, and Rogen adds every routed file to it:
47
+ `default.rogen.json` is a Rojo project file with `routes`. Its `tree` holds what folder names can't say, such as your packages:
41
48
 
42
49
  <!-- prettier-ignore -->
43
50
  ```json
@@ -58,22 +65,12 @@ Running several agents? Give each one a feature. A lint rule catches any agent t
58
65
  }
59
66
  ```
60
67
 
61
- A folder or an `@` suffix named after a route sends its code there. The `*` route takes every file that matches no other:
62
-
63
- | In `src/Inventory` | Goes to |
64
- | --------------------------------- | ---------------------------------------------- |
65
- | `Server/InventoryService.luau` | `ServerScriptService/Inventory` |
66
- | `Client/InventoryController.luau` | `StarterPlayer/StarterPlayerScripts/Inventory` |
67
- | `Shared/InventoryTypes.luau` | `ReplicatedStorage/Shared/Inventory` |
68
- | `Save@Server.luau` | `ServerScriptService/Inventory` |
69
- | `InventoryConfig.luau` | `ReplicatedStorage/Shared/Inventory` |
70
-
71
- The routes are yours to change. Add `"Gui": "StarterGui"`, and a `Gui` folder or a `@Gui` suffix sends code to StarterGui.
68
+ A file goes where its [folder or `@` suffix](https://rogen-roblox.vercel.app/docs/v2/core-concepts/routing) says: `Server/` and `@Server` both mean ServerScriptService. Everything else goes to `*`, and a route you add, such as `"Gui": "StarterGui"`, works the same way.
72
69
 
73
70
  ## Installation
74
71
 
75
72
  ```bash
76
- rokit add ldgerrits/rogen@2.0.0-beta.1
73
+ rokit add ldgerrits/rogen@2.0.0-beta.2
77
74
  rogen init
78
75
  ```
79
76
 
@@ -87,7 +84,7 @@ rogen build -o game.rbxl # Update the project file, then build a place with Ro
87
84
  rogen check # Print warnings and errors, and exit 1 on any
88
85
  ```
89
86
 
90
- `sourcemap`, `upload`, `syncback` and `plugin` take Rojo's flags too. See the [documentation](https://rogen-roblox.vercel.app/docs/v2) for every command.
87
+ `sourcemap`, `upload`, `syncback` and `plugin` take Rojo's flags too. See the [command reference](https://rogen-roblox.vercel.app/docs/v2/commands) for every command.
91
88
 
92
89
  ## FAQ
93
90