injectUseStore.js 753 B

1234567891011121314151617181920212223242526272829
  1. module.exports = (file, api) => {
  2. const j = api.jscodeshift
  3. const root = j(file.source)
  4. const appRoots = root.find(j.CallExpression, (node) => {
  5. if (j.Identifier.check(node.callee) && node.callee.name === 'createApp') {
  6. return true
  7. }
  8. if (
  9. j.MemberExpression.check(node.callee) &&
  10. j.Identifier.check(node.callee.object) &&
  11. node.callee.object.name === 'Vue' &&
  12. j.Identifier.check(node.callee.property) &&
  13. node.callee.property.name === 'createApp'
  14. ) {
  15. return true
  16. }
  17. })
  18. appRoots.replaceWith(({ node: createAppCall }) => {
  19. return j.callExpression(
  20. j.memberExpression(createAppCall, j.identifier('use')),
  21. [j.identifier('store')]
  22. )
  23. })
  24. return root.toSource()
  25. }