amical/apps/electron/scripts/generate-swift-models.ts
Haritabh b01a112102
feat: electron app init & setup (#10)
* feat: electron app init & setup

* fix: swift io bridge naming

* chore: deps fix
2025-05-19 22:54:10 +05:30

43 lines
1.9 KiB
TypeScript

const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
const generatedDir = 'src/helper/swift/KeyTapHelper/Sources/KeyTapHelper/models/generated';
try {
// Remove existing generated models and create the directory
if (fs.existsSync(generatedDir)) {
fs.rmSync(generatedDir, { recursive: true, force: true });
}
fs.mkdirSync(generatedDir, { recursive: true });
console.log('Directory created/cleaned successfully.');
// Generate Swift models from JSON schemas using quicktype
const commands = [
'quicktype --src-lang schema --lang swift ' +
'-o src/helper/swift/KeyTapHelper/Sources/KeyTapHelper/models/generated/models.swift ' +
'generated/schemas/helper-envelopes/rpc-request.schema.json ' +
'generated/schemas/helper-envelopes/rpc-response.schema.json ' +
'generated/schemas/helper-requests/get-accessibility-tree-details-params.schema.json ' +
'generated/schemas/helper-responses/get-accessibility-tree-details-result.schema.json ' +
'generated/schemas/helper-requests/paste-text-params.schema.json ' +
'generated/schemas/helper-responses/paste-text-result.schema.json ' +
'generated/schemas/helper-requests/mute-system-audio-params.schema.json ' +
'generated/schemas/helper-responses/mute-system-audio-result.schema.json ' +
'generated/schemas/helper-requests/restore-system-audio-params.schema.json ' +
'generated/schemas/helper-responses/restore-system-audio-result.schema.json ' +
'generated/schemas/helper-events/key-down-event.schema.json ' +
'generated/schemas/helper-events/key-up-event.schema.json',
];
commands.forEach((command) => {
console.log(`Executing: ${command}`);
execSync(command, { stdio: 'inherit' });
});
console.log('Swift models generated successfully.');
} catch (error) {
console.error('Error generating Swift models:', error);
process.exit(1);
}