123456789101112131415161718192021 |
- import printValue from './printValue.js';
- export default function getParameterName(parameterPath) {
- if (parameterPath.isIdentifier()) {
- return parameterPath.node.name;
- }
- else if (parameterPath.isAssignmentPattern()) {
- return getParameterName(parameterPath.get('left'));
- }
- else if (parameterPath.isObjectPattern() ||
- parameterPath.isArrayPattern()) {
- return printValue(parameterPath);
- }
- else if (parameterPath.isRestElement()) {
- return `...${getParameterName(parameterPath.get('argument'))}`;
- }
- else if (parameterPath.isTSParameterProperty()) {
- return getParameterName(parameterPath.get('parameter'));
- }
- throw new TypeError('Parameter name must be one of Identifier, AssignmentPattern, ArrayPattern, ' +
- `ObjectPattern or RestElement, instead got ${parameterPath.node.type}`);
- }
|