@wearesage/schema
Version:
A flexible schema definition and validation system for TypeScript with multi-database support
38 lines (31 loc) • 1.2 kB
JavaScript
const fs = require('fs');
const path = require('path');
const entitiesDir = '/Users/zach/dev/@wearesage/core/schema/test-entities';
const entityFiles = fs.readdirSync(entitiesDir).filter(f => f.endsWith('.ts'));
entityFiles.forEach(file => {
const filePath = path.join(entitiesDir, file);
let content = fs.readFileSync(filePath, 'utf8');
const lines = content.split('\n');
const imports = new Set();
const nonImportLines = [];
let inImportSection = true;
lines.forEach(line => {
if (line.startsWith('import ')) {
imports.add(line);
} else if (line.trim() === '' && inImportSection) {
// Skip empty lines in import section
} else {
if (inImportSection) {
inImportSection = false;
nonImportLines.push(''); // Add empty line after imports
}
nonImportLines.push(line);
}
});
// Combine unique imports with rest of file
const uniqueImports = Array.from(imports).sort();
const newContent = uniqueImports.join('\n') + '\n' + nonImportLines.join('\n');
fs.writeFileSync(filePath, newContent, 'utf8');
console.log(`Fixed duplicates in ${file}`);
});
console.log('Done! All duplicate imports removed.');