[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Array](https://evolu.dev/docs/api-reference/common/Array) › sortArray

## Call Signature

```ts
function sortArray<T>(
  array: readonly [T, T],
  compareFn?: (a: T, b: T) => number,
): readonly [T, T];
```

Defined in: [packages/common/src/Array.ts:755](https://github.com/evoluhq/evolu/blob/ca15b4661c40fedb9f47434497086039cbdea38e/packages/common/src/Array.ts#L755)

Returns a new sorted readonly array.

Wraps native `toSorted`. Preserves non-empty type.

### Sorting without mutation

```ts

const values: NonEmptyReadonlyArray<number> = [3, 1, 2];
const sorted = sortArray(values, (a, b) => a - b);
expect(sorted).toEqual([1, 2, 3]);
expectTypeOf(sorted).toEqualTypeOf<NonEmptyReadonlyArray<number>>();
```

## Call Signature

```ts
function sortArray<T>(
  array: readonly T[],
  compareFn?: (a: T, b: T) => number,
): readonly T[];
```

Defined in: [packages/common/src/Array.ts:760](https://github.com/evoluhq/evolu/blob/ca15b4661c40fedb9f47434497086039cbdea38e/packages/common/src/Array.ts#L760)

Possibly empty array.