33[ ![ CI] ( https://github.com/bertdeblock/gember/workflows/CI/badge.svg )] ( https://github.com/bertdeblock/gember/actions?query=workflow%3ACI )
44[ ![ NPM Version] ( https://badge.fury.io/js/%40bertdeblock%2Fgember.svg )] ( https://badge.fury.io/js/%40bertdeblock%2Fgember )
55
6- Generate components, helpers, modifiers and services in v2 addons.
6+ Generate components, helpers, modifiers and services in v1/ v2 apps/ addons.
77
88Uses [ scaffdog] ( https://scaff.dog/ ) underneath.
99
10- > [ !NOTE]
11- >
12- > - Only supports ` .gjs ` (default) and ` .gts ` files for components
10+ > NOTE: Only supports ` .gjs ` (default) and ` .gts ` files for components.
1311
1412## Installation
1513
@@ -55,6 +53,9 @@ yarn add -D @bertdeblock/gember
5553 <summary >Generating components</summary >
5654
5755``` shell
56+ pnpm gember component --help # for all available options
57+
58+ # examples:
5859pnpm gember component foo
5960pnpm gember component foo --class-based # or `--class`
6061pnpm gember component foo --path=" src/-private"
@@ -67,6 +68,9 @@ pnpm gember component foo --typescript # or `--ts`
6768 <summary >Generating helpers</summary >
6869
6970``` shell
71+ pnpm gember helper --help # for all available options
72+
73+ # examples:
7074pnpm gember helper foo
7175pnpm gember helper foo --class-based # or `--class`
7276pnpm gember helper foo --path=" src/-private"
@@ -79,6 +83,9 @@ pnpm gember helper foo --typescript # or `--ts`
7983 <summary >Generating modifiers</summary >
8084
8185``` shell
86+ pnpm gember modifier --help # for all available options
87+
88+ # examples:
8289pnpm gember modifier foo
8390pnpm gember modifier foo --class-based # or `--class`
8491pnpm gember modifier foo --path=" src/-private"
@@ -91,6 +98,9 @@ pnpm gember modifier foo --typescript # or `--ts`
9198 <summary >Generating services</summary >
9299
93100``` shell
101+ pnpm gember service --help # for all available options
102+
103+ # examples:
94104pnpm gember service foo
95105pnpm gember service foo --path=" src/-private"
96106pnpm gember service foo --typescript # or `--ts`
@@ -106,28 +116,56 @@ gember supports the following config files:
106116- ` gember.config.cjs `
107117- ` gember.config.mjs `
108118
109- A gember config file must export a gember config object, or a sync/async function that returns a gember config object.
119+ A gember config file must export a gember config object, or a sync/async function that returns a gember config object:
110120
111- ### Configuration Options
121+ ``` js
122+ // gember.config.js
112123
113- #### ` hooks.postGenerate `
124+ export default {};
114125
115- A hook that will be executed post generating a document.
126+ // or:
127+ export default () => ({});
116128
117- ``` js
118- // gember.config.js
129+ // or:
130+ export default async () => ({});
131+ ```
119132
120- import { execa } from " execa" ;
121-
122- export default {
123- hooks: {
124- postGenerate: async ({ files }) => {
125- await execa (" npx" , [
126- " prettier" ,
127- " --write" ,
128- ... files .map ((file ) => file .path ),
129- ]);
130- },
131- },
133+ ### Configuration Signature
134+
135+ ``` ts
136+ export type Config = {
137+ generators? : {
138+ component? : {
139+ classBased? : boolean ;
140+ path? : string ;
141+ typescript? : boolean ;
142+ };
143+ helper? : {
144+ classBased? : boolean ;
145+ path? : string ;
146+ typescript? : boolean ;
147+ };
148+ modifier? : {
149+ classBased? : boolean ;
150+ path? : string ;
151+ typescript? : boolean ;
152+ };
153+ service? : {
154+ path? : string ;
155+ typescript? : boolean ;
156+ };
157+ };
158+
159+ hooks? : {
160+ // A hook that will be executed post running a generator:
161+ postGenerate? : (info : {
162+ documentName: DocumentName ;
163+ entityName: string ;
164+ files: File [];
165+ }) => Promise <void > | void ;
166+ };
167+
168+ // Use TypeScript by default for all generators:
169+ typescript? : boolean ;
132170};
133171```
0 commit comments