UNPKG

@storybook/codemod

Version:

A collection of codemod scripts written with JSCodeshift

30 lines (25 loc) 974 B
export default function transformer(file, api) { const j = api.jscodeshift; const createImportDeclaration = (specifiers, source) => j.importDeclaration(specifiers.map(s => j.importSpecifier(j.identifier(s))), j.literal(source)); const deprecates = { action: [['action'], '@storybook/addon-actions'], linkTo: [['linkTo'], '@storybook/addon-links'], }; const transform = j(file.source) .find(j.ImportDeclaration) .filter(i => i.value.source.value === '@storybook/react') .forEach(i => { const importStatement = i.value; importStatement.specifiers = importStatement.specifiers.filter(specifier => { const item = deprecates[specifier.local.name]; if (item) { const [specifiers, moduleName] = item; i.insertAfter(createImportDeclaration(specifiers, moduleName)); return false; } return specifier; }); }); return transform.toSource({ quote: 'single' }); }