INNER CODE UNIT · TypeScript
newByName
runvendo/vendo · packages/vendo/src/actions/sync/index.ts:167
const newByName = new Map(next.map((tool) => [tool.name, tool]));
const added = [...newByName.keys()].filter((name) => !oldByName.has(name)).sort();
const removed = [...oldByName.keys()].filter((name) => !newByName.has(name)).sort();
const changed: string[] = [];
const breaking: BreakingChange[] = [];
for (const [name, oldTool] of oldByName) {
const newTool = newByName.get(name);
if (!newTool) continue;
if (descriptorHash(oldTool) !== descriptorHash(newTool) || !sameJson(oldTool.binding, newTool.binding)) {
changed.push(name);
}
if (bindingKey(oldTool) !== bindingKey(newTool)) breaking.push({ tool: name, change: "removed" });
if (inputNarrowed(oldTool, newTool)) breaking.push({ tool: name, change: "input-narrowed" });
}
const addedByBinding = new Map(
added.map((name) => {