ember-codemod-v1-to-v2
Version:
Codemod to convert Ember addons to v2 addon format
77 lines (76 loc) • 2.13 kB
JavaScript
import { copyFiles, findFiles, mapFilePaths, moveFiles, removeFiles, } from '@codemod-utils/files';
function copyToAddon(options) {
const { locations, projectRoot } = options;
const files = ['LICENSE.md', 'README.md'];
const filePaths = findFiles(files, {
projectRoot,
});
const filePathMap = mapFilePaths(filePaths, {
from: '',
to: locations.addon,
});
copyFiles(filePathMap, options);
}
function moveToAddonAndTestApp(options) {
const { locations, projectRoot } = options;
const files = ['package.json'];
const filePaths = findFiles(files, {
projectRoot,
});
let filePathMap = mapFilePaths(filePaths, {
from: '',
to: locations.addon,
});
copyFiles(filePathMap, options);
filePathMap = mapFilePaths(filePaths, {
from: '',
to: locations.testApp,
});
copyFiles(filePathMap, options);
removeFiles(filePaths, options);
}
function moveToTestApp(options) {
const { locations, projectRoot } = options;
const files = [
'.ember-cli',
'.gitignore',
'.watchmanconfig',
'ember-cli-build.js',
'testem.js',
];
const filePaths = findFiles(files, {
projectRoot,
});
const filePathMap = mapFilePaths(filePaths, {
from: '',
to: locations.testApp,
});
moveFiles(filePathMap, options);
}
function removeFromProjectRoot(options) {
const { projectRoot } = options;
const files = [
'.eslintignore',
'.eslintrc.{cjs,js}',
'.npmignore',
'.prettierignore',
'.prettierrc.{cjs,js}',
'.stylelintignore',
'.stylelintrc.{cjs,js,mjs}',
'.template-lintrc.{cjs,js}',
'eslint.config.mjs',
'index.js',
'prettier.config.mjs',
'tsconfig.json',
];
const filePaths = findFiles(files, {
projectRoot,
});
removeFiles(filePaths, options);
}
export function moveProjectRootFiles(options) {
copyToAddon(options);
moveToAddonAndTestApp(options);
moveToTestApp(options);
removeFromProjectRoot(options);
}