Files
flipper/desktop/babel-transformer/src/dynamic-requires.tsx
Anton Kastritskiy 844728d9dc rename babel-transformer files from ts to tsx
Summary: group files rename

Reviewed By: passy

Differential Revision: D33889860

fbshipit-source-id: 888e173fc72b5e126c1e41324b6cae6be29274c5
2022-01-31 06:14:59 -08:00

34 lines
865 B
TypeScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import {CallExpression, identifier} from '@babel/types';
import {NodePath} from '@babel/traverse';
function isDynamicRequire(node: CallExpression) {
return (
node.type === 'CallExpression' &&
node.callee.type === 'Identifier' &&
node.callee.name === 'require' &&
(node.arguments.length !== 1 || node.arguments[0].type !== 'StringLiteral')
);
}
module.exports = () => ({
name: 'replace-dynamic-requires',
visitor: {
CallExpression(path: NodePath<CallExpression>) {
path.node;
if (!isDynamicRequire(path.node)) {
return;
}
path.replaceWith(identifier('triggerDynamicRequireError'));
},
},
});