Generating Resources
Resora ships with a CLI command for generating Resource and ResourceCollection classes.
The generator ensures consistent structure and naming conventions across your project.
Command Overview
The create command namespace supports three modes:
- Generate a single Resource
- Generate a ResourceCollection
- Generate both at once
1. Create a Resource
Generates a new Resource class.
Command
bash
npm run resora create:resource Userbash
pnpm resora create:resource Userbash
yarn resora create:resource UserArguments
name(required) — Name of the resource class
Options
--force— Overwrite the file if it already exists
Example
bash
npm run resora create:resource Postbash
pnpm resora create:resource Postbash
yarn resora create:resource PostGenerates:
txt
PostResource.ts2. Create a Resource Collection
Generates a new ResourceCollection class.
Command
bash
npm run resora create:collection Userbash
pnpm resora create:collection Userbash
yarn resora create:collection UserArguments
name(required) — Name of the collection class
Options
--force— Overwrite the file if it already exists
Example
bash
npm run resora create:collection Postbash
pnpm resora create:collection Postbash
yarn resora create:collection PostGenerates:
txt
PostCollection.ts3. Create Both Resource and Collection
Generates both a Resource and its corresponding Collection.
Command
bash
npm run resora create:all Userbash
pnpm resora create:all Userbash
yarn resora create:all UserArguments
prefix(required) — Base name for both files
Options
--force— Overwrite existing files
Example
bash
npm run resora create:all Adminbash
pnpm resora create:all Adminbash
yarn resora create:all AdminGenerates:
txt
AdminResource.ts
AdminCollection.tsForce Overwriting Files
If a file already exists, use --force to overwrite it.
Example:
bash
npm run resora create:resource User --forcebash
pnpm resora create:resource User --forcebash
yarn resora create:resource User --forceGenerated Naming Convention
The generator follows strict naming rules:
| Command Mode | Generated Class |
|---|---|
| resource | NameResource |
| collection | NameCollection |
| all | PrefixResource, PrefixCollection |
This keeps your transformation layer predictable and structured.
Why Use the Generator?
Using the CLI ensures:
- Consistent file naming
- Proper class structure
- Reduced boilerplate
- Clean separation between entity and collection logic
It is the recommended way to scaffold new API transformation layers.