import { hasNode, isObject } from '../utils/astHelpers'; export const hasFsWriteFileSyncCall = (node: unknown): boolean => { return hasNode(node, (value) => { if (value.type !== 'CallExpression') { return false; } const callee = value.callee; if (!isObject(callee) || callee.type !== 'MemberExpression' || callee.computed === true) { return false; } const objectNode = callee.object; const propertyNode = callee.property; return ( isObject(objectNode) && objectNode.type === 'Identifier' && objectNode.name === 'fs' && isObject(propertyNode) && propertyNode.type === 'Identifier' && propertyNode.name === 'writeFileSync' ); }); }; export const hasFsReadFileSyncCall = (node: unknown): boolean => { return hasNode(node, (value) => { if (value.type !== 'CallExpression') { return false; } const callee = value.callee; if (!isObject(callee) || callee.type !== 'MemberExpression' || callee.computed === true) { return false; } const objectNode = callee.object; const propertyNode = callee.property; return ( isObject(objectNode) && objectNode.type === 'Identifier' && objectNode.name === 'fs' && isObject(propertyNode) && propertyNode.type === 'Identifier' && propertyNode.name === 'readFileSync' ); }); }; export const hasFsRenameSyncCall = (node: unknown): boolean => { return hasNode(node, (value) => { if (value.type !== 'CallExpression') { return false; } const callee = value.callee; if (!isObject(callee) || callee.type !== 'MemberExpression' || callee.computed === true) { return false; } const objectNode = callee.object; const propertyNode = callee.property; return ( isObject(objectNode) && objectNode.type === 'Identifier' && objectNode.name === 'fs' && isObject(propertyNode) && propertyNode.type === 'Identifier' && propertyNode.name === 'renameSync' ); }); }; export const hasFsCopyFileSyncCall = (node: unknown): boolean => { return hasNode(node, (value) => { if (value.type !== 'CallExpression') { return false; } const callee = value.callee; if (!isObject(callee) || callee.type !== 'MemberExpression' || callee.computed === true) { return false; } const objectNode = callee.object; const propertyNode = callee.property; return ( isObject(objectNode) && objectNode.type === 'Identifier' && objectNode.name === 'fs' && isObject(propertyNode) && propertyNode.type === 'Identifier' && propertyNode.name === 'copyFileSync' ); }); };