removes requirements for AudioMetadata

This commit is contained in:
Ollie Taylor
2023-02-24 23:29:41 +00:00
parent 34f708b1fa
commit b73cfe49bc
2 changed files with 19 additions and 11 deletions
+17 -9
View File
@@ -10,7 +10,7 @@ import {
audio_start_at, audio_start_at,
} from '$lib/context/audio-internals'; } from '$lib/context/audio-internals';
import { user_preferences } from '$lib/context/user-preferences'; import { user_preferences } from '$lib/context/user-preferences';
import type { AudioMetadata } from '$lib/types'; import type { AudioLoadData, AudioLoadOptions, AudioMetadata } from '$lib/types';
import { secondsToTimestamp } from '$lib/utility/seconds-to-timestamp'; import { secondsToTimestamp } from '$lib/utility/seconds-to-timestamp';
import { derived, writable } from 'svelte/store'; import { derived, writable } from 'svelte/store';
@@ -22,15 +22,23 @@ export const time = derived([audio_current_time, audio_ended], ([$seconds, $ende
export const metadata = writable<AudioMetadata | null>(null); export const metadata = writable<AudioMetadata | null>(null);
export const data = derived([audio_src, metadata], ([$src, $metadata]) => ({ export const data = derived(
...$metadata, [audio_src, metadata],
src: $src, ([$src, $metadata]) =>
})); ({
...$metadata,
src: $src,
} satisfies AudioLoadData),
);
export const options = derived([audio_start_at, audio_autoplay], ([$start_at, $autoplay]) => ({ export const options = derived(
start_at: $start_at, [audio_start_at, audio_autoplay],
autoplay: $autoplay, ([$start_at, $autoplay]) =>
})); ({
start_at: $start_at,
autoplay: $autoplay,
} satisfies AudioLoadOptions),
);
export const duration = { subscribe: audio_duration.subscribe }; export const duration = { subscribe: audio_duration.subscribe };
export const loading = { subscribe: audio_loading.subscribe }; export const loading = { subscribe: audio_loading.subscribe };
+2 -2
View File
@@ -1,9 +1,9 @@
export type AudioPlayerElement = HTMLAudioElement | undefined; export type AudioPlayerElement = HTMLAudioElement | undefined;
export interface AudioMetadata { export type AudioMetadata = Partial<{
title: string; title: string;
artwork: string; artwork: string;
} }>;
export interface AudioLoadData extends AudioMetadata { export interface AudioLoadData extends AudioMetadata {
src: string; src: string;