@yandex/ui
Version:
Yandex UI components
39 lines (34 loc) • 1.96 kB
JavaScript
import { removeProps } from './utils/removeProps';
import { removeImport } from './utils/removeImport';
import { removeTypeReference } from './utils/removeTypeReference';
import { removeUsage } from './utils/removeUsage';
import { findDeprecatedImport } from './utils/findDeprecated';
function removeTones(root, j) {
removeImport(root, j, '@yandex-lego/components', 'Tone');
removeUsage(root, j, 'Tone');
removeTypeReference(root, j, 'Tone');
removeProps(root, j, 'tone');
}
function removeViewClassic(root, j) {
removeImport(root, j, '@yandex-lego/components', 'ViewClassic');
removeUsage(root, j, 'ViewClassic');
removeTypeReference(root, j, 'ViewClassic');
removeProps(root, j, 'view', 'classic');
}
function getMigrationMessage(path, size) {
return `${path}: Рекомендуем использовать размер ${size}. Кнопка поддерживает только S, M, L\n` +
'Если по каким-то причинам вы не можете использовать другой размер. Напиши на проектом уровне модификатор для компонента\n' +
'https://github.yandex-team.ru/search-interfaces/frontend/blob/master/packages/lego-components/docs/MODIFIERS.md';
}
module.exports = (fileInfo, { jscodeshift: j }) => {
const path = fileInfo.path;
const root = j(fileInfo.source);
removeTones(root, j);
removeViewClassic(root, j);
findDeprecatedImport(root, j, '@yandex-lego/components', 'withSizeN', getMigrationMessage(path, 'M'));
findDeprecatedImport(root, j, '@yandex-lego/components/Button', 'withSizeHead', getMigrationMessage(path, 'S'));
findDeprecatedImport(root, j, '@yandex-lego/components/Button', 'withSizeNs', getMigrationMessage(path, 'S'));
findDeprecatedImport(root, j, '@yandex-lego/components/Button', 'withSizeXs', getMigrationMessage(path, 'S'));
return root
.toSource();
};