UNPKG

@yandex/ui

Version:

Yandex UI components

39 lines (34 loc) 1.96 kB
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(); };