From b74f1c15fbab2ea6d2bdfa443598efbf0de8e2c2 Mon Sep 17 00:00:00 2001 From: Ollie Taylor <13766232+OllieJT@users.noreply.github.com> Date: Fri, 24 Feb 2023 13:27:53 +0000 Subject: [PATCH] improve package logs --- src/lib/context/audio.ts | 29 ++++++++++------------------- src/lib/utility/package/log.ts | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+), 19 deletions(-) create mode 100644 src/lib/utility/package/log.ts diff --git a/src/lib/context/audio.ts b/src/lib/context/audio.ts index a3f691f..5cd080b 100644 --- a/src/lib/context/audio.ts +++ b/src/lib/context/audio.ts @@ -1,18 +1,9 @@ -import { dev } from '$app/environment'; import type { PlayerElement, PlayerMetadata } from '$lib/types/types'; +import { info, warn } from '$lib/utility/package/log'; import { secondsToTimestamp } from '$lib/utility/seconds-to-timestamp'; import clamp from 'just-clamp'; import { derived, writable } from 'svelte/store'; -function log(...val: (string | number | boolean)[]) { - if (!dev) return; - console.info('🎶 ', ...val); -} -function warn(...val: (string | number | boolean)[]) { - if (!dev) return; - console.warn('🎶 ', ...val); -} - export const __internal_audio_current_time = writable(0); export const __internal_audio_src = writable(null); export const __internal_audio_element = writable(); @@ -38,7 +29,7 @@ const state = derived( type HandleType = 'toggle' | 'set'; function play(type: HandleType = 'set') { - log('play: ', type); + info('play: ', type); return __internal_audio_element.subscribe((el) => { if (!el) return warn('no audio element'); if (type === 'toggle') { @@ -49,7 +40,7 @@ function play(type: HandleType = 'set') { })(); } function pause(type: HandleType = 'set') { - log('pause: ', type); + info('pause: ', type); return __internal_audio_element.subscribe((el) => { if (!el) return warn('no audio element'); if (type === 'toggle') { @@ -61,7 +52,7 @@ function pause(type: HandleType = 'set') { } function mute(type: HandleType = 'set') { - log('mute: ', type); + info('mute: ', type); return __internal_audio_element.subscribe((el) => { if (!el) return warn('no audio element'); if (type === 'toggle') { @@ -72,7 +63,7 @@ function mute(type: HandleType = 'set') { })(); } function unmute(type: HandleType = 'set') { - log('unmute: ', type); + info('unmute: ', type); return __internal_audio_element.subscribe((el) => { if (!el) return warn('no audio element'); if (type === 'toggle') { @@ -84,7 +75,7 @@ function unmute(type: HandleType = 'set') { } function load(src: string) { - log('load: ', src); + info('load: ', src); __internal_audio_src.set(src); return __internal_audio_element.subscribe((el) => { if (!el) return warn('no audio element'); @@ -93,12 +84,12 @@ function load(src: string) { })(); } function unload() { - log('unload: '); + info('unload: '); __internal_audio_src.set(null); } function setPlaybackRate(rate: number) { - log('setPlaybackRate: ', rate); + info('setPlaybackRate: ', rate); return __internal_audio_element.subscribe((el) => { if (!el) return warn('no audio element'); el.playbackRate = clamp(0, 10, rate); @@ -106,7 +97,7 @@ function setPlaybackRate(rate: number) { } function seek(seconds: number, from: 'from-start' | 'from-end' = 'from-start') { - log('seek: ', seconds, from); + info('seek: ', seconds, from); return __internal_audio_element.subscribe((el) => { if (!el) return warn('no audio element'); if (from === 'from-end') { @@ -118,7 +109,7 @@ function seek(seconds: number, from: 'from-start' | 'from-end' = 'from-start') { } function skip(seconds: number, type: 'forward' | 'backward' = 'forward') { - log('skip: ', seconds, type); + info('skip: ', seconds, type); return __internal_audio_element.subscribe((el) => { if (!el) return warn('no audio element'); if (type === 'backward') { diff --git a/src/lib/utility/package/log.ts b/src/lib/utility/package/log.ts new file mode 100644 index 0000000..072eae4 --- /dev/null +++ b/src/lib/utility/package/log.ts @@ -0,0 +1,21 @@ +import { dev } from '$app/environment'; + +const useLogger = { + error: console.error, + info: console.info, + warn: console.warn, +}; + +export type Logger = keyof typeof useLogger; + +export function log(type: Logger, ...content: unknown[]) { + const logger = useLogger[type]; + + if (type === 'info' && !dev) return; + + logger('🔊 svelte-podcast: ', content); +} + +export const info = (...content: unknown[]) => log('info', ...content); +export const warn = (...content: unknown[]) => log('warn', content); +export const error = (...content: unknown[]) => log('error', content);