ОШИБКА {...} не соответствует строке типа при добавлении выражения с помощью jscodeshift

Я пробую jscodeshift и продолжаю получать следующую ошибку всякий раз, когда я пытаюсь вставить новое выражение

{operator: ==, left: [object Object], right: [object Object], loc: null, type: BinaryExpression, comments: null} does not match type string

Это то, что в моем маленьком тесте:

  var testBinary = j.binaryExpression("==", j.literal(2), j.literal(3))

  return j(file.source)
    .find(j.IfStatement)
    .insertBefore(testBinary)
    .toSource();

Вы можете попробовать это здесь https://astexplorer.net/

если я использую j(file.source).find().replaceWith(), это работает без проблем.

Что я здесь не так делаю?

1 ответ

Использование:

var testBinary = j.binaryExpression("==", j.literal(2), j.literal(3)),
  root = j(j(file.source);


    j(root.find(j.IfStatement).at(0).get())
    .insertBefore(testBinary);

    return root.toSource();
Другие вопросы по тегам