ember-codemod-add-component-signatures
Version:
Codemod to add component signatures
26 lines (25 loc) • 927 B
JavaScript
import { findFiles, renamePathByDirectory } from '@codemod-utils/files';
import { getExtensionMap } from '../../utils/components.js';
function normalizeComponentNames(extensionMap) {
return new Map(Array.from(extensionMap.entries()).map(([oldName, extensions]) => {
const newName = oldName.replace(/\/index$/, '');
return [newName, extensions];
}));
}
export function findComponents(options) {
const { componentStructure, projectRoot, src } = options;
const filePaths = findFiles(`${src}/**/*.{gjs,gts,hbs,js,ts}`, {
ignoreList: ['**/*.d.ts'],
projectRoot,
}).map((filePath) => {
return renamePathByDirectory(filePath, {
from: src,
to: '',
});
});
const extensionMap = getExtensionMap(filePaths);
if (componentStructure === 'nested') {
return normalizeComponentNames(extensionMap);
}
return extensionMap;
}