ember-codemod-v1-to-v2
Version:
Codemod to convert Ember addons to v2 addon format
45 lines (44 loc) • 1.74 kB
JavaScript
import { convertToMap, convertToObject } from '@codemod-utils/package-json';
import { getLatestVersion } from '../../utils/blueprints.js';
export function updateDevDependencies(packageJson, options) {
const { packages } = options;
const devDependencies = convertToMap(packageJson['devDependencies']);
// Start over
devDependencies.clear();
const packagesToInstall = new Set([
'@babel/core',
'@babel/runtime',
'@embroider/addon-dev',
'@eslint/js',
'@ijlee2-frontend-configs/ember-template-lint',
'@ijlee2-frontend-configs/eslint-config-ember',
'@ijlee2-frontend-configs/prettier',
'@ijlee2-frontend-configs/stylelint',
'@rollup/plugin-babel',
'babel-plugin-ember-template-compilation',
'concurrently',
'ember-template-lint',
'eslint',
'prettier',
'stylelint',
'rollup',
'rollup-plugin-copy',
]);
if (packages.addon.hasTypeScript) {
packagesToInstall.add('@babel/plugin-transform-typescript');
packagesToInstall.add('@tsconfig/ember');
packagesToInstall.add('ember-source');
packagesToInstall.add('typescript');
}
if (packages.addon.hasGlint) {
packagesToInstall.add('@glint/core');
packagesToInstall.add('@glint/environment-ember-loose');
packagesToInstall.add('@glint/environment-ember-template-imports');
packagesToInstall.add('@glint/template');
}
Array.from(packagesToInstall).forEach((packageName) => {
const version = getLatestVersion(packageName);
devDependencies.set(packageName, version);
});
packageJson['devDependencies'] = convertToObject(devDependencies);
}