| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- const { getLastImport } = require('./utils')
- module.exports = function (fileInfo, api) {
- const j = api.jscodeshift
- const root = j(fileInfo.source)
- const body = root.get().value.program.body
- // Fix mongodb-legacy import
- root
- .find(j.ImportDeclaration, {
- source: { value: 'mongodb-legacy' },
- specifiers: [{ imported: { name: 'ObjectId' } }],
- })
- .forEach(path => {
- // Create new import declaration
- const newImport = j.importDeclaration(
- [j.importDefaultSpecifier(j.identifier('mongodb'))],
- j.literal('mongodb-legacy')
- )
- // Create new constant declaration
- const newConst = j.variableDeclaration('const', [
- j.variableDeclarator(
- j.objectPattern([
- j.property(
- 'init',
- j.identifier('ObjectId'),
- j.identifier('ObjectId')
- ),
- ]),
- j.identifier('mongodb')
- ),
- ])
- // Replace the old import with the new import
- j(path).replaceWith(newImport)
- // Insert the new constant declaration after the last import
- const lastImportIndex = getLastImport(body)
- body.splice(lastImportIndex + 1, 0, newConst)
- })
- return root.toSource({
- quote: 'single',
- })
- }
|