'use strict';
import { nodeTypes } from '@flint/infra/analysis/function-analysis';
import { isIdentifier, isMemberCallExpression } from '@flint/infra/analysis/node-type-type-guards';

var __defProp=Object['defineProperty'],__name=(_0x389206,_0x5accc8)=>__defProp(_0x389206,'name',{'value':_0x5accc8,'configurable':!![]});function isOptionalLikeParameter(_0x44ec44){let _0x5a6077=![];if(isIdentifier(_0x44ec44))_0x5a6077=_0x44ec44['optional'];else {if(_0x44ec44['type']===nodeTypes['assignmentPattern'])_0x5a6077=!![];else _0x44ec44['type']===nodeTypes['TSParameterProperty']&&(_0x5a6077=isOptionalLikeParameter(_0x44ec44['parameter']));}return _0x5a6077;}__name(isOptionalLikeParameter,'isOptionalLikeParameter');function getDefaultValueExpression(_0x1e3aca){let _0x4a865f;if(_0x1e3aca['type']===nodeTypes['assignmentPattern'])_0x4a865f=_0x1e3aca['right'];else _0x1e3aca['type']===nodeTypes['TSParameterProperty']&&(_0x4a865f=getDefaultValueExpression(_0x1e3aca['parameter']));return _0x4a865f;}__name(getDefaultValueExpression,'getDefaultValueExpression');function getParameterName(_0x2f76a1){let _0x51ba96;if(isIdentifier(_0x2f76a1))_0x51ba96=_0x2f76a1['name'];else {if(_0x2f76a1['type']===nodeTypes['assignmentPattern']&&isIdentifier(_0x2f76a1['left']))_0x51ba96=_0x2f76a1['left']['name'];else _0x2f76a1['type']===nodeTypes['TSParameterProperty']&&(_0x51ba96=getParameterName(_0x2f76a1['parameter']));}return _0x51ba96;}__name(getParameterName,'getParameterName');function isMethodCallExpression(_0x10bc3a,_0x3bf8d6){return isMemberCallExpression(_0x10bc3a)&&isIdentifier(_0x10bc3a['callee']['property'])&&_0x10bc3a['callee']['property']['name']===_0x3bf8d6;}__name(isMethodCallExpression,'isMethodCallExpression');

export { getDefaultValueExpression, getParameterName, isMethodCallExpression, isOptionalLikeParameter };
