Some checks failed
Verify / Install node dependencies (push) Failing after 2s
Verify / Build packages (push) Has been skipped
Verify / Check linting & formatting (push) Has been skipped
Verify / Run unit tests (push) Has been skipped
Verify / Run e2e tests (shard 1/4) (push) Has been skipped
Verify / Run e2e tests (shard 2/4) (push) Has been skipped
Verify / Run e2e tests (shard 3/4) (push) Has been skipped
Verify / Run e2e tests (shard 4/4) (push) Has been skipped
Publish / Resolve publish config (push) Failing after 2s
Publish / Send notification to Slack (push) Has been skipped
Publish / Send failure notification to Slack (push) Failing after 8s
Verify / Merge e2e reports (push) Has been skipped
Publish / Build (push) Has been skipped
Publish / Bump Versions OR Release to Registry (push) Has been skipped
34 lines
1000 B
TypeScript
34 lines
1000 B
TypeScript
import type { Codemod, Edit } from 'codemod:ast-grep'
|
|
import type JSON from 'codemod:ast-grep/langs/json'
|
|
import type JS from 'codemod:ast-grep/langs/javascript'
|
|
import type TS from 'codemod:ast-grep/langs/typescript'
|
|
import type TSX from 'codemod:ast-grep/langs/tsx'
|
|
|
|
const packageSpecifiers = new Map([
|
|
["'@tiptap/vue-3'", "'@tiptap/vue'"],
|
|
['"@tiptap/vue-3"', '"@tiptap/vue"'],
|
|
["'@tiptap/extension-drag-handle-vue-3'", "'@tiptap/extension-drag-handle-vue'"],
|
|
['"@tiptap/extension-drag-handle-vue-3"', '"@tiptap/extension-drag-handle-vue"'],
|
|
])
|
|
|
|
type Language = JS | TS | TSX | JSON
|
|
|
|
const codemod: Codemod<Language> = async root => {
|
|
const edits: Edit[] = []
|
|
|
|
root
|
|
.root()
|
|
.findAll({ rule: { kind: 'string' } })
|
|
.forEach(node => {
|
|
const replacement = packageSpecifiers.get(node.text())
|
|
|
|
if (replacement) {
|
|
edits.push(node.replace(replacement))
|
|
}
|
|
})
|
|
|
|
return edits.length > 0 ? root.root().commitEdits(edits) : null
|
|
}
|
|
|
|
export default codemod
|