# core/selectors/code.selector.ts

> 7 lines of code and 2 definitions.

Tree: GovLab Patterns
Language: typescript
Layer: application
Canonical: https://banes-lab.com/anatomy/patterns#file-patterns-core-selectors-code-selector-ts
Source text: https://banes-lab.com/source/patterns/core/selectors/code.selector.ts.txt

Listed in [core/selectors](https://banes-lab.com/api/source/patterns/core/selectors.md), before [core/selectors/counter.selector.ts](https://banes-lab.com/source/patterns/core/selectors/counter.selector.ts.md).

## Definitions

- `sortedEdges` (lexical_declaration, line 3, exported)
- `unresolvedNames` (lexical_declaration, line 7, exported)

## Contained in

- [core/selectors](https://banes-lab.com/anatomy/patterns/folder-patterns-core-selectors.md)

## Used by

- [core/coordinators/package.coordinator.ts](https://banes-lab.com/source/patterns/core/coordinators/package.coordinator.ts.md)

## Linked from

- [core/coordinators](https://banes-lab.com/anatomy/patterns/folder-patterns-core-coordinators.md)

## Source

```typescript
import type { CallEdge, CodeGraph } from "#types/code.types";

export const sortedEdges = function sortedEdges(graph: CodeGraph): CallEdge[] {
    return [...graph.edges].sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b)));
};

export const unresolvedNames = function unresolvedNames(graph: CodeGraph): string[] {
    return [...new Set(graph.external.map((call) => call.name))].sort((a, b) => a.localeCompare(b));
};
```
