/
githubmirror
/
webpack
Обзор
Документация
Войти
/
githubmirror
/
webpack
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v5.103.0
lib/util/traverseDestructuringAssignmentProperties.js
45 строк
1 KB
Gengkun
feat: tree shaking nested exports for destructuring assignment (#19955)
29 сен 2025, 19:43
Не верифицирован
29 сен 2025, 19:43
8c0fa9e
Код
Авторство
О чём код?
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; /** @typedef {import("../javascript/JavascriptParser").DestructuringAssignmentProperties} DestructuringAssignmentProperties */ /** @typedef {import("../javascript/JavascriptParser").DestructuringAssignmentProperty} DestructuringAssignmentProperty */ /** * Deep first traverse the properties of a destructuring assignment. * @param {DestructuringAssignmentProperties} properties destructuring assignment properties * @param {((stack: DestructuringAssignmentProperty[]) => void) | undefined=} onLeftNode on left node callback * @param {((stack: DestructuringAssignmentProperty[]) => void) | undefined=} enterNode enter node callback * @param {((stack: DestructuringAssignmentProperty[]) => void) | undefined=} exitNode exit node callback * @param {DestructuringAssignmentProperty[] | undefined=} stack stack of the walking nodes */ function traverseDestructuringAssignmentProperties( properties, onLeftNode, enterNode, exitNode, stack = [] ) { for (const property of properties) { stack.push(property); if (enterNode) enterNode(stack); if (property.pattern) { traverseDestructuringAssignmentProperties( property.pattern, onLeftNode, enterNode, exitNode, stack ); } else if (onLeftNode) { onLeftNode(stack); } if (exitNode) exitNode(stack); stack.pop(); } } module.exports = traverseDestructuringAssignmentProperties;