UNPKG

ember-codemod-pod-to-octane

Version:

Codemod to un-pod Ember apps, addons, and engines

53 lines (52 loc) 1.78 kB
import { findFiles, parseFilePath } from '@codemod-utils/files'; import { renamePodPath } from '../../../../../utils/files/index.js'; function getFileName(filePath) { const { name } = parseFilePath(filePath); return name; } export function mapRoutes(options) { const { projectRoot } = options; const podDir = 'addon'; const filePathsForController = findFiles(`${podDir}/**/controller.{js,ts}`, { projectRoot, }); const filePathsForRoute = findFiles(`${podDir}/**/route.{js,ts}`, { projectRoot, }); const filePathsForStylesheet = findFiles(`${podDir}/**/styles.{css,scss}`, { ignoreList: ['addon/components/**'], projectRoot, }); const filePathsForTemplate = findFiles(`${podDir}/**/template.hbs`, { ignoreList: ['addon/components/**'], projectRoot, }); return [ ...filePathsForController, ...filePathsForRoute, ...filePathsForStylesheet, ...filePathsForTemplate, ].map((oldFilePath) => { const fileName = getFileName(oldFilePath); const newFilePath = renamePodPath(oldFilePath, { podDir, replace: (dir) => { switch (fileName) { case 'controller': { return `addon/controllers/${dir}`; } case 'route': { return `addon/routes/${dir}`; } case 'styles': { return `addon/styles/${dir}`; } case 'template': { return `addon/templates/${dir}`; } } }, }); return [oldFilePath, newFilePath]; }); }