import { LinkedArray } from ".."

interface Person {
    name: string
    age: number
    address: {
        city: string
        zip: number
    }
}

const people = new LinkedArray<Person>(
    { name: "Alice", age: 30, address: { city: "New York", zip: 10001 } },
    { name: "Bob", age: 25, address: { city: "Los Angeles", zip: 90001 } },
    { name: "Charlie", age: 35, address: { city: "Chicago", zip: 60601 } }
)

const sortedPeopleByAgeAsc = people.sorted({ attr: "age" }) // order = 'asc'
console.log(sortedPeopleByAgeAsc)
// [
//     { name: 'Bob', age: 25, address: { city: 'Los Angeles', zip: 90001 } },
//     { name: 'Alice', age: 30, address: { city: 'New York', zip: 10001 } },
//     { name: 'Charlie', age: 35, address: { city: 'Chicago', zip: 60601 } }
// ]

const sortedPeopleByCityAsc = people.sorted({
    order: "desc",
    attr: "address.city",
})
console.log(sortedPeopleByCityAsc)
// [
//     { name: 'Alice', age: 30, address: { city: 'New York', zip: 10001 } },
//     { name: 'Bob', age: 25, address: { city: 'Los Angeles', zip: 90001 } },
//     { name: 'Charlie', age: 35, address: { city: 'Chicago', zip: 60601 } },
// ]
