CallExpression()

in desktop/babel-transformer/src/electron-requires-main.tsx [16:41]


    CallExpression(path: NodePath<CallExpression>) {
      const node = path.node;
      if (
        node.type === 'CallExpression' &&
        node.callee.type === 'Identifier' &&
        node.callee.name === 'require' &&
        node.arguments.length === 1 &&
        node.arguments[0].type === 'StringLiteral'
      ) {
        const source = node.arguments[0].value;
        if (!source.startsWith('./') && !source.startsWith('../')) {
          node.callee.name = 'electronRequire';
        }
      }
      if (
        node.callee.type === 'MemberExpression' &&
        node.callee.object.type === 'Identifier' &&
        node.callee.object.name === 'require' &&
        node.callee.property.type === 'Identifier' &&
        node.callee.property.name === 'resolve' &&
        node.arguments.length === 1 &&
        node.arguments[0].type == 'StringLiteral'
      ) {
        node.callee.object.name = 'electronRequire';
      }
    },