ember-codemod-v1-to-v2
Version:
Codemod to convert Ember addons to v2 addon format
40 lines (39 loc) • 1.22 kB
JavaScript
import { findFiles } from '@codemod-utils/files';
import { getVersion } from '../utils/blueprints.js';
function getProjectRootDevDependencies(options) {
return {
concurrently: getVersion('concurrently', options),
};
}
function getPublicAssets(options) {
const { packages, projectRoot } = options;
const filePaths = findFiles('public/**/*', {
projectRoot,
});
return filePaths.reduce((accumulator, filePath) => {
const from = `./${filePath}`;
const to = `/${packages.addon.name}/${filePath.replace(/^public\//, '')}`;
accumulator[from] = to;
return accumulator;
}, {});
}
function hasBlueprints(options) {
const { projectRoot } = options;
const filePaths = findFiles('blueprints/**/*', {
projectRoot,
});
return filePaths.length > 0;
}
export function analyzeAddon(options) {
const publicAssets = getPublicAssets(options);
return {
addon: {
hasBlueprints: hasBlueprints(options),
hasPublicAssets: Object.keys(publicAssets).length > 0,
publicAssets,
},
projectRoot: {
devDependencies: getProjectRootDevDependencies(options),
},
};
}