diff --git a/scripts/why.ce b/scripts/why.ce index dcd9aa84..7298e5f7 100644 --- a/scripts/why.ce +++ b/scripts/why.ce @@ -9,6 +9,9 @@ if (!args || args.length < 1) { var target = args[0] log.console("Searching for '" + target + "'...") +var target_clean = target +if (target_clean.startsWith('/')) target_clean = target_clean.substring(1) + var found = false // DFS to find paths @@ -31,11 +34,20 @@ function search(current_pkg, stack) { var canon = parsed.path + var locator_clean = locator + if (locator.includes('@')) locator_clean = locator.split('@')[0] + // Check if match // 1. Alias matches - // 2. Canonical path ends with target - // 3. Canonical path is target - var match = (alias == target) || (parsed.name == target) || (canon == target) + // 2. Package name matches + // 3. Canonical path matches (exact or clean) + // 4. Locator matches (exact or clean) + var match = (alias == target) || + (parsed.name == target) || + (canon == target) || + (canon == target_clean) || + (locator == target) || + (locator_clean == target) var node = { alias: alias, pkg: canon, locator: locator } var new_stack = stack.concat([node])