Skip to content

Commit dbfb4f3

Browse files
committed
Improve handling of states in sealed-states.command.ts
1 parent 16e8e9c commit dbfb4f3

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

src/commands/sealed-states.command.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,10 @@ export const sealedStates = async (uri: Uri) => {
180180
}
181181

182182
codeBuilder.push(`}`);
183-
codeBuilder.push('');
184183

185184
// Generate the classes for each state
186185
Object.values(stateFormats).forEach(({ pascalCase, snakeCase }) => {
186+
codeBuilder.push('');
187187
codeBuilder.push(`/// ${pascalCase}`);
188188
codeBuilder.push(`final class \${1}\\$${pascalCase} extends \${1} {`);
189189

@@ -200,54 +200,53 @@ export const sealedStates = async (uri: Uri) => {
200200
}
201201

202202
codeBuilder.push(`}`);
203-
codeBuilder.push('');
204203
});
205204

206205
// Base class definition with pattern matching methods
207206
if (patternMatchingOption) {
207+
codeBuilder.push('');
208208
codeBuilder.push(`/// Pattern matching for [\${1}].`);
209209
codeBuilder.push(`typedef \${1}Match<R, S extends \${1}> = R Function(S element);`);
210-
codeBuilder.push('');
211210
}
212211

213212
// Base class definition
213+
codeBuilder.push('');
214214
codeBuilder.push('@immutable');
215215
codeBuilder.push(`abstract base class _\\$\${1}Base {`);
216216
codeBuilder.push(` const _\\$\${1}Base({required this.data, required this.message});`);
217-
codeBuilder.push('');
218217

219218
// Type alias
220219
if (typeAliasOption) {
220+
codeBuilder.push('');
221221
codeBuilder.push(` /// Type alias for [\${1}].`);
222222
codeBuilder.push(` abstract final String type;`);
223-
codeBuilder.push('');
224223
}
225224

226225
// Data entity payload
226+
codeBuilder.push('');
227227
codeBuilder.push(` /// Data entity payload.`);
228228
codeBuilder.push(` @nonVirtual`);
229229
codeBuilder.push(` final ${dataType} data;`);
230-
codeBuilder.push('');
231230

232231
// Message or description
232+
codeBuilder.push('');
233233
codeBuilder.push(` /// Message or description.`);
234234
codeBuilder.push(` @nonVirtual`);
235235
codeBuilder.push(` final String message;`);
236-
codeBuilder.push('');
237236

238237
// Check existence of data
239238
if (nullableDataOption) {
239+
codeBuilder.push('');
240240
codeBuilder.push(` /// Has data?`);
241241
codeBuilder.push(` bool get hasData => data != null;`);
242-
codeBuilder.push('');
243242
}
244243

245244
// Property getters
246245
if (propertyGettersOption) {
247246
Object.values(stateFormats).forEach(({ pascalCase, snakeCase }) => {
247+
codeBuilder.push('');
248248
codeBuilder.push(` /// Check if is ${pascalCase}.`);
249249
codeBuilder.push(` bool get is${pascalCase} => this is \${1}\\$${pascalCase};`);
250-
codeBuilder.push('');
251250
});
252251
}
253252

0 commit comments

Comments
 (0)