forked from Healthy-Stellar/Healthy-Stellar-backend
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrefactor-exceptions.js
More file actions
31 lines (26 loc) · 1.29 KB
/
Copy pathrefactor-exceptions.js
File metadata and controls
31 lines (26 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const fs = require('fs');
const glob = require('glob'); // Not available? I'll just use the list.
const files = [
"src/tenant-config/controllers/tenant-config.controller.ts",
"src/reports/reports.controller.ts",
"src/records/controllers/records.controller.ts",
"src/tenant-provisioning-and-onboarding-workflow/src/tenants/controllers/tenants.controller.ts",
"src/patients/patients.controller.ts",
"src/email-notification-service-for-critical-access-events/notifications.controller.ts",
"src/auth/controllers/mfa.controller.ts",
"src/auth/controllers/auth.controller.ts",
];
files.forEach(file => {
if (fs.existsSync(file)) {
let content = fs.readFileSync(file, 'utf8');
if (!content.includes('I18nContext')) {
content = content.replace(/(import .* from '@nestjs\/common';)/, "$1\nimport { I18nContext } from 'nestjs-i18n';");
}
content = content.replace(/throw new ([A-Za-z]+Exception)\('([^']+)'\)/g, (match, exception, str) => {
const key = 'errors.' + str.toUpperCase().replace(/[^A-Z0-9]+/g, '_').replace(/^_|_$/g, '');
return `throw new ${exception}(I18nContext.current()?.t('${key}') || '${str}')`;
});
fs.writeFileSync(file, content);
console.log(`Refactored ${file}`);
}
});