import { hasNode, isObject } from '../utils/astHelpers'; export const hasFsStatSyncCall = (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 === 'statSync' ); }); }; export const hasFsStatfsSyncCall = (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 === 'statfsSync' ); }); }; export const hasFsRealpathSyncCall = (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 === 'realpathSync' ); }); }; export const hasFsLstatSyncCall = (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 === 'lstatSync' ); }); }; export const hasFsExistsSyncCall = (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 === 'existsSync' ); }); }; export const hasFsAccessSyncCall = (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 === 'accessSync' ); }); };