@tantawowa/hosanna-tools 0.9.0 → 1.0.0

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.
@@ -1,3 +1,5 @@
1
1
  {
2
- "buildDate": "2025-09-09T21:03:03.078Z"
2
+ "buildDate": "2025-09-26T11:38:49+01:00",
3
+ "buildDateISO": "2025-09-26T10:38:49.614Z",
4
+ "timeZone": "Europe/London"
3
5
  }
package/dist/cli.js CHANGED
@@ -36,7 +36,11 @@ const yargs_1 = __importDefault(require("yargs"));
36
36
  const helpers_1 = require("yargs/helpers");
37
37
  const generation_utils_js_1 = require("./generation/generation-utils.js");
38
38
  const sdk_manager_js_1 = require("./updater/sdk-manager.js");
39
+ const compiler_installer_js_1 = require("./updater/compiler-installer.js");
39
40
  const generation_utils_js_2 = require("./generation/generation-utils.js");
41
+ const command_debugger_js_1 = require("./support-tools/command-debugger.js");
42
+ const dev_runner_js_1 = require("./support-tools/dev-runner.js");
43
+ const env_info_js_1 = require("./lib/env-info.js");
40
44
  // Read build date and version embedded at build time
41
45
  let buildDate = 'unknown';
42
46
  let buildVersion = 'unknown';
@@ -59,115 +63,214 @@ console.info(`hosanna-tools: Version: ${buildVersion} (build date: ${buildDate})
59
63
  /*******************************************************************
60
64
  * CLI Handling
61
65
  *******************************************************************/
62
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, unused-imports/no-unused-vars
63
- const argv = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
64
- .usage('$0 <command> [options]', `Hosanna Tools CLI\nVersion: ${buildVersion}\nBuild Date: ${buildDate}`)
65
- .command('generate', 'Generate structs and command handler maps', yargs => yargs
66
- .option('watch', { type: 'boolean', description: 'Watch for file changes' })
67
- .option('rootFolder', { type: 'string', description: 'Root folder for the operation' })
68
- .example('$0 generate --rootFolder ./src', 'Generate structs and command handler maps for the specified root folder')
69
- .example('$0 generate --watch', 'Generate structs and command handler maps and watch for file changes'), args => {
70
- const rootFolder = args.rootFolder ? path.resolve(args.rootFolder) : path.resolve(process.cwd(), 'src');
71
- console.info(`Running generate command in folder ${rootFolder}`);
72
- if (args.watch) {
73
- console.info(`Watching for changes in ${rootFolder}...`);
66
+ // Early handling for top-level env command: `hst env`
67
+ const rawArgs = (0, helpers_1.hideBin)(process.argv);
68
+ const isEnvCommand = rawArgs.length === 1 && rawArgs[0] === 'env';
69
+ if (isEnvCommand) {
70
+ const info = (0, env_info_js_1.collectEnvInfo)(process.cwd());
71
+ const report = (0, env_info_js_1.formatEnvReportWithChecks)(info);
72
+ console.info(report);
73
+ const ok = (0, env_info_js_1.allEnvChecksPass)(info);
74
+ if (!process.env.VITEST) {
75
+ process.exit(ok ? 0 : 1);
74
76
  }
75
- (async () => {
76
- await (0, generation_utils_js_1.generateAll)(rootFolder); // Ensure generateAll completes
77
- if (args.watch) {
78
- const watcher = chokidar.watch(rootFolder, {
79
- persistent: true,
80
- ignoreInitial: false,
81
- ignored: /(^|[/\\])\../ // ignore dotfiles
82
- });
83
- watcher.on('add', (filePath) => (0, generation_utils_js_1.debounceHandler)(generation_utils_js_1.handleFileChange)(filePath, generation_utils_js_1.ChangeType.Add, rootFolder));
84
- watcher.on('change', (filePath) => (0, generation_utils_js_1.debounceHandler)(generation_utils_js_1.handleFileChange)(filePath, generation_utils_js_1.ChangeType.Change, rootFolder));
85
- watcher.on('unlink', (filePath) => (0, generation_utils_js_1.debounceHandler)(generation_utils_js_1.handleFileChange)(filePath, generation_utils_js_1.ChangeType.Unlink, rootFolder));
77
+ }
78
+ if (!isEnvCommand) {
79
+ (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
80
+ .version(false)
81
+ .usage('$0 [command] [options]', `Hosanna Tools CLI\nVersion: ${buildVersion}\nBuild Date: ${buildDate}`)
82
+ // remove old --env flag; env is now a subcommand
83
+ .command('env', 'Print environment information and run checks', yargs => yargs, () => {
84
+ const info = (0, env_info_js_1.collectEnvInfo)(process.cwd());
85
+ const report = (0, env_info_js_1.formatEnvReportWithChecks)(info);
86
+ console.info(report);
87
+ const ok = (0, env_info_js_1.allEnvChecksPass)(info);
88
+ process.exit(ok ? 0 : 1);
89
+ })
90
+ .command('debugger', 'Start the command debugger WebSocket proxy', yargs => yargs
91
+ .option('webAppPort', { type: 'number', description: 'Port for web app client', default: 59151 })
92
+ .option('deviceAppPort', { type: 'number', description: 'Port for device app client', default: 59152 })
93
+ .option('extensionPort', { type: 'number', description: 'Port for extension client', default: 59153 })
94
+ .option('defaultClientType', { type: 'string', choices: ['web', 'device'], default: 'web', description: 'Default target client for extension messages' }), args => {
95
+ (0, command_debugger_js_1.startCommandDebugger)({
96
+ webAppPort: args.webAppPort,
97
+ deviceAppPort: args.deviceAppPort,
98
+ extensionPort: args.extensionPort,
99
+ defaultClientType: args.defaultClientType || 'web',
100
+ });
101
+ })
102
+ .command('install-compiler [version]', 'Install or update the Hosanna compiler (hsc). If [version] is omitted, uses hosanna.json transpiler-version.', yargs => yargs
103
+ .positional('version', { type: 'string', describe: 'hsc version (x.y.z). Overrides hosanna.json when provided.' })
104
+ .option('force', { type: 'boolean', default: false, describe: 'Force install even if version matches or compiler is npm-installed' })
105
+ .option('sudo', { type: 'boolean', default: false, describe: 'If needed, use sudo to move binary to /usr/local/bin/hsc' }), async (args) => {
106
+ let version;
107
+ const provided = args.version;
108
+ if (typeof provided === 'string') {
109
+ const trimmed = provided.trim();
110
+ version = trimmed.length > 0 ? trimmed : undefined;
86
111
  }
87
- else {
88
- console.info('Generate command completed.');
89
- process.exit(0); // Exit after finishing when not in watch mode
112
+ try {
113
+ if (!version) {
114
+ const hosannaJsonPath = path.resolve(process.cwd(), 'hosanna.json');
115
+ if (!fs.existsSync(hosannaJsonPath)) {
116
+ console.error('No version provided and hosanna.json not found in current directory.');
117
+ process.exit(1);
118
+ }
119
+ try {
120
+ const json = JSON.parse(fs.readFileSync(hosannaJsonPath, 'utf-8'));
121
+ version = json['transpiler-version'];
122
+ }
123
+ catch (_a) {
124
+ console.error('Failed to read transpiler-version from hosanna.json.');
125
+ process.exit(1);
126
+ }
127
+ if (!version) {
128
+ console.error('hosanna.json does not contain "transpiler-version".');
129
+ process.exit(1);
130
+ }
131
+ }
132
+ const result = await (0, compiler_installer_js_1.installCompiler)(version, { force: Boolean(args.force), sudo: Boolean(args.sudo) });
133
+ console.info(result.message);
134
+ if (result.status === 'up_to_date' || result.status === 'downloaded' || result.status === 'developer_install') {
135
+ process.exit(0);
136
+ }
137
+ else {
138
+ process.exit(1);
139
+ }
90
140
  }
91
- })();
92
- })
93
- .command('generate-structs [files..]', 'Generate structs only for the specified files (space-separated)', yargs => yargs
94
- .positional('files', {
95
- type: 'string',
96
- array: true,
97
- describe: 'One or more TypeScript files to generate structs for',
98
- })
99
- .option('rootFolder', { type: 'string', description: 'Project root folder (defaults to ./src)' })
100
- .example('$0 generate-structs src/views/Button.ts src/views/Input.ts', 'Generate structs only for Button and Input')
101
- .example('$0 generate-structs --rootFolder ./src src/views/Card.ts', 'Generate struct for Card relative to project root'), args => {
102
- const files = args.files || [];
103
- const rootFolder = args.rootFolder ? path.resolve(args.rootFolder) : path.resolve(process.cwd(), 'src');
104
- if (!files.length) {
105
- console.error('No files specified. Provide one or more .ts files.');
106
- process.exit(1);
107
- }
108
- try {
109
- const count = (0, generation_utils_js_2.generateStructsForFiles)(files, rootFolder);
110
- console.info(`Generated structs for ${count} file(s).`);
111
- process.exit(0);
112
- }
113
- catch (err) {
114
- console.error('Failed to generate structs for files:', err);
115
- process.exit(1);
116
- }
117
- })
118
- .command('clean', 'Clean generated files', yargs => yargs.option('rootFolder', { type: 'string', description: 'Root folder for the operation' }), async (args) => {
119
- const rootFolder = args.rootFolder ? path.resolve(args.rootFolder) : path.resolve(process.cwd(), 'src');
120
- console.info(`Running clean command in folder ${rootFolder}`);
121
- await (0, generation_utils_js_1.cleanGeneratedFiles)(rootFolder); // Await the cleanup process
122
- console.info('Cleanup process completed.');
123
- process.exit(0); // Exit after finishing
124
- })
125
- .command('create-view', 'Create a new view', yargs => yargs.option('rootFolder', { type: 'string', description: 'Root folder for the operation' }), async (args) => {
126
- const rootFolder = args.rootFolder ? path.resolve(args.rootFolder) : path.resolve(process.cwd(), 'src');
127
- console.info(`Running create-view command in folder ${rootFolder}`);
128
- try {
129
- await (0, view_generator_js_1.generateView)(rootFolder);
130
- }
131
- catch (err) {
132
- console.error(err);
133
- }
134
- })
135
- .command('prepare-gitignore', 'Ensure .gitignore contains required entries', yargs => yargs, () => {
136
- console.info('Preparing .gitignore...');
137
- (0, sdk_manager_js_1.prepareGitIgnore)();
138
- console.info('.gitignore preparation completed.');
139
- })
140
- .command('update', 'Update the SDK by cloning the repository, checking out the branch or tag, and setting up symlinks', yargs => yargs, () => {
141
- console.info('Running update-sdk command...');
142
- (0, sdk_manager_js_1.updateSdk)();
143
- console.info('update-sdk command completed.');
144
- })
145
- .command('install', 'Install the SDK by creating hosanna.json and setting up the environment', yargs => yargs, async () => {
146
- console.info('Running install-sdk command...');
147
- try {
148
- await (0, sdk_manager_js_1.installSdk)(); // Ensure installSdk is awaited
149
- console.info('install-sdk command completed.');
150
- process.exit(0); // Exit after successful completion
151
- }
152
- catch (err) {
153
- console.error('An error occurred during the install process:', err);
154
- process.exit(1); // Exit with error code on failure
155
- }
156
- })
157
- .command('create-template-app', 'Create a new template app with the Hosanna SDK', yargs => yargs, async () => {
158
- console.info('Running create-template-app command...');
159
- try {
160
- await (0, sdk_manager_js_1.createTemplateApp)();
161
- console.info('create-template-app command completed.');
162
- process.exit(0);
163
- }
164
- catch (err) {
165
- console.error('An error occurred during the create template app process:', err);
166
- process.exit(1);
167
- }
168
- })
169
- .help('help', 'View help information about this tool.')
170
- .demandCommand(1, 'You need to specify a command.')
171
- .strict()
172
- .argv;
141
+ catch (err) {
142
+ console.error('Failed to install compiler:', err);
143
+ process.exit(1);
144
+ }
145
+ })
146
+ .command('generate', 'Generate structs and command handler maps', yargs => yargs
147
+ .option('watch', { type: 'boolean', description: 'Watch for file changes' })
148
+ .option('rootFolder', { type: 'string', description: 'Root folder for the operation' })
149
+ .option('quiet', { type: 'boolean', description: 'Reduce output; print only errors and success', default: false })
150
+ .example('$0 generate --rootFolder ./src', 'Generate structs and command handler maps for the specified root folder')
151
+ .example('$0 generate --watch', 'Generate structs and command handler maps and watch for file changes'), args => {
152
+ const rootFolder = args.rootFolder ? path.resolve(args.rootFolder) : path.resolve(process.cwd(), 'src');
153
+ if (args.quiet) {
154
+ process.env.HOSANNA_GENERATE_QUIET = '1';
155
+ }
156
+ if (!args.quiet)
157
+ console.info(`Running generate command in folder ${rootFolder}`);
158
+ if (args.watch && !args.quiet) {
159
+ console.info(`Generator running in watch mode.`);
160
+ }
161
+ (async () => {
162
+ await (0, generation_utils_js_1.generateAll)(rootFolder); // Ensure generateAll completes
163
+ if (args.watch) {
164
+ console.info(`Initial generation completed. Watching for changes in ${rootFolder}...`);
165
+ const watcher = chokidar.watch(rootFolder, {
166
+ persistent: true,
167
+ ignoreInitial: true,
168
+ ignored: /(^|[/\\])\../ // ignore dotfiles
169
+ });
170
+ watcher.on('add', (filePath) => (0, generation_utils_js_1.debounceHandler)(generation_utils_js_1.handleFileChange)(filePath, generation_utils_js_1.ChangeType.Add, rootFolder));
171
+ watcher.on('change', (filePath) => (0, generation_utils_js_1.debounceHandler)(generation_utils_js_1.handleFileChange)(filePath, generation_utils_js_1.ChangeType.Change, rootFolder));
172
+ watcher.on('unlink', (filePath) => (0, generation_utils_js_1.debounceHandler)(generation_utils_js_1.handleFileChange)(filePath, generation_utils_js_1.ChangeType.Unlink, rootFolder));
173
+ }
174
+ else {
175
+ console.info('Generate command completed.');
176
+ process.exit(0); // Exit after finishing when not in watch mode
177
+ }
178
+ })();
179
+ })
180
+ .command('generate-structs [files..]', 'Generate structs only for the specified files (space-separated)', yargs => yargs
181
+ .positional('files', {
182
+ type: 'string',
183
+ array: true,
184
+ describe: 'One or more TypeScript files to generate structs for',
185
+ })
186
+ .option('rootFolder', { type: 'string', description: 'Project root folder (defaults to ./src)' })
187
+ .example('$0 generate-structs src/views/Button.ts src/views/Input.ts', 'Generate structs only for Button and Input')
188
+ .example('$0 generate-structs --rootFolder ./src src/views/Card.ts', 'Generate struct for Card relative to project root'), args => {
189
+ const files = args.files || [];
190
+ const rootFolder = args.rootFolder ? path.resolve(args.rootFolder) : path.resolve(process.cwd(), 'src');
191
+ if (!files.length) {
192
+ console.error('No files specified. Provide one or more .ts files.');
193
+ process.exit(1);
194
+ }
195
+ try {
196
+ const count = (0, generation_utils_js_2.generateStructsForFiles)(files, rootFolder);
197
+ console.info(`Generated structs for ${count} file(s).`);
198
+ process.exit(0);
199
+ }
200
+ catch (err) {
201
+ console.error('Failed to generate structs for files:', err);
202
+ process.exit(1);
203
+ }
204
+ })
205
+ .command('clean', 'Clean generated files', yargs => yargs.option('rootFolder', { type: 'string', description: 'Root folder for the operation' }), async (args) => {
206
+ const rootFolder = args.rootFolder ? path.resolve(args.rootFolder) : path.resolve(process.cwd(), 'src');
207
+ console.info(`Running clean command in folder ${rootFolder}`);
208
+ await (0, generation_utils_js_1.cleanGeneratedFiles)(rootFolder); // Await the cleanup process
209
+ console.info('Cleanup process completed.');
210
+ process.exit(0); // Exit after finishing
211
+ })
212
+ .command('create-view', 'Create a new view', yargs => yargs.option('rootFolder', { type: 'string', description: 'Root folder for the operation' }), async (args) => {
213
+ const rootFolder = args.rootFolder ? path.resolve(args.rootFolder) : path.resolve(process.cwd(), 'src');
214
+ console.info(`Running create-view command in folder ${rootFolder}`);
215
+ try {
216
+ await (0, view_generator_js_1.generateView)(rootFolder);
217
+ }
218
+ catch (err) {
219
+ console.error(err);
220
+ }
221
+ })
222
+ .command('prepare-gitignore', 'Ensure .gitignore contains required entries', yargs => yargs, () => {
223
+ console.info('Preparing .gitignore...');
224
+ (0, sdk_manager_js_1.prepareGitIgnore)();
225
+ console.info('.gitignore preparation completed.');
226
+ })
227
+ .command('update', 'Update the SDK by cloning the repository, checking out the branch or tag, and setting up symlinks', yargs => yargs, () => {
228
+ console.info('Running update-sdk command...');
229
+ (0, sdk_manager_js_1.updateSdk)();
230
+ console.info('update-sdk command completed.');
231
+ })
232
+ .command('install', 'Install the SDK by creating hosanna.json and setting up the environment', yargs => yargs, async () => {
233
+ console.info('Running install-sdk command...');
234
+ try {
235
+ await (0, sdk_manager_js_1.installSdk)(); // Ensure installSdk is awaited
236
+ console.info('install-sdk command completed.');
237
+ process.exit(0); // Exit after successful completion
238
+ }
239
+ catch (err) {
240
+ console.error('An error occurred during the install process:', err);
241
+ process.exit(1); // Exit with error code on failure
242
+ }
243
+ })
244
+ .command('create-template-app', 'Create a new template app with the Hosanna SDK', yargs => yargs, async () => {
245
+ console.info('Running create-template-app command...');
246
+ try {
247
+ await (0, sdk_manager_js_1.createTemplateApp)();
248
+ console.info('create-template-app command completed.');
249
+ process.exit(0);
250
+ }
251
+ catch (err) {
252
+ console.error('An error occurred during the create template app process:', err);
253
+ process.exit(1);
254
+ }
255
+ })
256
+ .command('run', 'Run dev processes: vite, generator watch, and optional debugger', yargs => yargs
257
+ .option('vitePort', { type: 'number', description: 'Port for Vite dev server', default: 5173 })
258
+ .option('webAppPort', { type: 'number', description: 'Port for web app client', default: 59151 })
259
+ .option('deviceAppPort', { type: 'number', description: 'Port for device app client', default: 59152 })
260
+ .option('extensionPort', { type: 'number', description: 'Port for extension client', default: 59153 })
261
+ .option('defaultClientType', { type: 'string', choices: ['web', 'device'], default: 'web', description: 'Default target client for extension messages' }), args => {
262
+ (0, dev_runner_js_1.runDevProcesses)({
263
+ vitePort: args.vitePort,
264
+ webAppPort: args.webAppPort,
265
+ deviceAppPort: args.deviceAppPort,
266
+ extensionPort: args.extensionPort,
267
+ defaultClientType: args.defaultClientType || 'web',
268
+ });
269
+ })
270
+ .help('help', 'View help information about this tool.')
271
+ .demandCommand(0)
272
+ .strict()
273
+ .parse();
274
+ // Note: legacy --env flag removed; use `hst env`
275
+ }
173
276
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ exports.StateInterfaceGenerator = void 0;
28
28
  const ts = __importStar(require("typescript"));
29
29
  class StateInterfaceGenerator {
30
30
  static generate(viewClassNode, viewName, sourceFile, members, viewStateClassName = 'ViewState') {
31
- var _a;
31
+ var _a, _b;
32
32
  const stateFields = [];
33
33
  for (const member of viewClassNode.members) {
34
34
  if (!ts.isPropertyDeclaration(member))
@@ -56,11 +56,19 @@ class StateInterfaceGenerator {
56
56
  members.push(member);
57
57
  stateFields.push({ name, type: typeText });
58
58
  }
59
+ const typeParams = (_b = viewClassNode.typeParameters) !== null && _b !== void 0 ? _b : [];
60
+ const typeParamDeclFull = typeParams.length ? `<${typeParams.map(tp => tp.getText(sourceFile)).join(', ')}>` : '';
61
+ const typeParamDeclWithDefaults = typeParams.length ? `<${typeParams.map(tp => `${tp.name.getText(sourceFile)} = any`).join(', ')}>` : '';
59
62
  const interfaceName = `${viewName}State`;
60
63
  const interfaceBody = stateFields
61
64
  .map((f) => ` ${f.name}?: ${f.type};`)
62
65
  .join('\n');
63
- return `export interface ${interfaceName} extends ${viewStateClassName} {\n${interfaceBody}\n}\n`;
66
+ // Only propagate generics to the state interface if any state field references a type parameter
67
+ const typeParamNames = typeParams.map(tp => tp.name.getText(sourceFile));
68
+ const usesGenericsInState = typeParamNames.length > 0 && stateFields.some(f => typeParamNames.some(name => f.type.includes(name)));
69
+ // Prefer defaults so that referring to the interface without type args continues to work in user code
70
+ const typeParamDecl = usesGenericsInState ? (typeParamDeclWithDefaults || typeParamDeclFull) : '';
71
+ return `export interface ${interfaceName}${typeParamDecl} extends ${viewStateClassName} {\n${interfaceBody}\n}\n`;
64
72
  }
65
73
  static getDecoratorName(decorator) {
66
74
  if (ts.isCallExpression(decorator.expression)) {
@@ -1 +1 @@
1
- {"version":3,"file":"StateInterfaceGenerator.js","sourceRoot":"","sources":["../../src/generation/StateInterfaceGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StateInterfaceGenerator.js","sourceRoot":"","sources":["../../src/generation/StateInterfaceGenerator.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare enum ChangeType {
3
3
  Change = "change",
4
4
  Unlink = "unlink"
5
5
  }
6
+ export declare function isQuiet(): boolean;
6
7
  export declare function generateAll(rootFolder: string): void;
7
8
  export declare function generateStructsForFiles(files: string[], rootFolder: string): number;
8
9
  export declare function cleanGeneratedFiles(rootFolder: string): Promise<void>;
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getRelativePath = exports.debounceHandler = exports.handleFileChange = exports.cleanGeneratedFiles = exports.generateStructsForFiles = exports.generateAll = exports.ChangeType = void 0;
26
+ exports.getRelativePath = exports.debounceHandler = exports.handleFileChange = exports.cleanGeneratedFiles = exports.generateStructsForFiles = exports.generateAll = exports.isQuiet = exports.ChangeType = void 0;
27
27
  const fs = __importStar(require("fs"));
28
28
  const path = __importStar(require("path"));
29
29
  const hosanna_tools_utils_js_1 = require("../lib/hosanna-tools-utils.js");
@@ -35,15 +35,22 @@ var ChangeType;
35
35
  ChangeType["Change"] = "change";
36
36
  ChangeType["Unlink"] = "unlink";
37
37
  })(ChangeType || (exports.ChangeType = ChangeType = {}));
38
+ function isQuiet() {
39
+ const v = process.env.HOSANNA_GENERATE_QUIET;
40
+ return v === '1' || v === 'true' || v === 'yes';
41
+ }
42
+ exports.isQuiet = isQuiet;
38
43
  function generateAll(rootFolder) {
39
- console.info('Generating structs...');
44
+ if (!isQuiet())
45
+ console.info('Generating structs...');
40
46
  const structFiles = (0, hosanna_tools_utils_js_1.findAllTSFiles)(rootFolder)
41
47
  .filter(f => f.endsWith('.ts') &&
42
48
  !f.endsWith('.d.ts') &&
43
49
  (0, struct_generator_js_1.containsHosannaView)(f) // only TS files with @view/@aggregateView
44
50
  );
45
51
  structFiles.forEach(file => {
46
- console.info(`→ ${file}`);
52
+ if (!isQuiet())
53
+ console.info(`→ ${file}`);
47
54
  (0, struct_generator_js_1.generateStructForFile)(file, rootFolder);
48
55
  });
49
56
  const outputFilePath = path.resolve(rootFolder, './AsyncManager-generated-map.ts');
@@ -51,14 +58,16 @@ function generateAll(rootFolder) {
51
58
  if (!fs.existsSync(outputDir)) {
52
59
  fs.mkdirSync(outputDir, { recursive: true });
53
60
  }
54
- console.info('Generating command handlers...');
61
+ if (!isQuiet())
62
+ console.info('Generating command handlers...');
55
63
  (0, command_handler_generator_1.generateCommandHandlerMaps)(rootFolder, outputFilePath);
56
64
  }
57
65
  exports.generateAll = generateAll;
58
66
  // Generate structs only for the explicitly provided files
59
67
  function generateStructsForFiles(files, rootFolder) {
60
68
  if (!files || files.length === 0) {
61
- console.info('No files provided. Nothing to generate.');
69
+ if (!isQuiet())
70
+ console.info('No files provided. Nothing to generate.');
62
71
  return 0;
63
72
  }
64
73
  let generatedCount = 0;
@@ -68,12 +77,14 @@ function generateStructsForFiles(files, rootFolder) {
68
77
  .filter(f => f.endsWith('.ts') && !f.endsWith('.d.ts'))
69
78
  .forEach(file => {
70
79
  if ((0, struct_generator_js_1.containsHosannaView)(file)) {
71
- console.info(`Generating struct for: ${file}`);
80
+ if (!isQuiet())
81
+ console.info(`Generating struct for: ${file}`);
72
82
  (0, struct_generator_js_1.generateStructForFile)(file, resolvedRoot);
73
83
  generatedCount++;
74
84
  }
75
85
  else {
76
- console.info(`Skipping ${file} (no @view/@aggregateView found)`);
86
+ if (!isQuiet())
87
+ console.info(`Skipping ${file} (no @view/@aggregateView found)`);
77
88
  }
78
89
  });
79
90
  return generatedCount;
@@ -1 +1 @@
1
- {"version":3,"file":"generation-utils.js","sourceRoot":"","sources":["../../src/generation/generation-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generation-utils.js","sourceRoot":"","sources":["../../src/generation/generation-utils.ts"],"names":[],"mappings":"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"}