ember-freshdesk-codemods
Version:
27 lines (23 loc) • 874 B
JavaScript
module.exports = function beautifyImports(source) {
return source.replace(/\bimport.+from/g, (importStatement) => {
let openCurly = importStatement.indexOf('{');
// leave default only imports alone
if (openCurly === -1) {
return importStatement;
}
if (importStatement.length > 50) {
// if the segment is > 50 chars make it multi-line
let result = importStatement.slice(0, openCurly + 1);
let named = importStatement
.slice(openCurly + 1, -6).split(',')
.map(name => `\n ${name.trim()}`);
return result + named.join(',') + '\n} from';
} else {
// if the segment is < 50 chars just make sure it has proper spacing
return importStatement
.replace(/,\s*/g, ', ') // ensure there is a space after commas
.replace(/\{\s*/, '{ ')
.replace(/\s*\}/, ' }');
}
});
}