| /** |
| * Extractor function for an UpdateExpression type value node. |
| * An update expression is an expression with an update operator. |
| * For example, foo++ will evaluate to foo + 1. |
| * |
| * @param - value - AST Value object with type `UpdateExpression` |
| * @returns - The extracted value converted to correct type. |
| */ |
| export default function extractValueFromUpdateExpression(value) { |
| // eslint-disable-next-line global-require |
| const getValue = require('./index.js').default; |
| const { operator, argument, prefix } = value; |
| |
| let val = getValue(argument); |
| |
| switch (operator) { |
| case '++': |
| return prefix ? ++val : val++; // eslint-disable-line no-plusplus |
| case '--': |
| return prefix ? --val : val--; // eslint-disable-line no-plusplus |
| default: |
| return undefined; |
| } |
| } |