Consistent sorting of output

This commit is contained in:
Christoph Hagen
2025-01-27 07:56:36 +01:00
parent 09b1f48aea
commit 82c40cc080
6 changed files with 23 additions and 6 deletions

View File

@ -13,14 +13,17 @@ struct AudioPlayerScript: HtmlProducer {
let items: [AmplitudeSong]
private let encoder = JSONEncoder()
init(items: [AmplitudeSong]) {
self.items = items
encoder.outputFormatting = [.prettyPrinted, .sortedKeys]
}
func populate(_ result: inout String) {
result += "<script>\nwindow.onload = () => { "
result += "Amplitude.init({ songs: "
let songData = try! JSONEncoder().encode(items)
let songData = try! encoder.encode(items)
result += String(data: songData, encoding: .utf8)!
result += "}); };\n" // Close Amplitude.init and window.onload
result += "function playEntry(index) { Amplitude.playSongAtIndex(index) };"