···55 import Player from './components/Player.svelte'
66 import Sidebar from './components/Sidebar.svelte'
77 import Queue from './components/Queue.svelte'
88- import TrackInfo, { TrackInfoList } from './components/TrackInfo.svelte'
88+ import TrackInfo, { type TrackInfoList } from './components/TrackInfo.svelte'
99 import PlaylistInfoModal from './components/PlaylistInfo.svelte'
1010 import { queueVisible } from './lib/queue'
1111 import { ipcListen, ipcRenderer } from '@/lib/window'
1212- import { isMac, importTracks, PlaylistInfo, methods } from './lib/data'
1212+ import { isMac, importTracks, type PlaylistInfo, methods } from './lib/data'
1313 import { playPause } from './lib/player'
1414 import DragGhost from './components/DragGhost.svelte'
1515 import ItunesImport from './components/ItunesImport.svelte'
+1-1
src/components/PlaylistInfo.svelte
···11<script lang="ts">
22 import { checkShortcut } from '../lib/helpers'
33- import { newPlaylist, PlaylistInfo, updatePlaylist } from '../lib/data'
33+ import { newPlaylist, type PlaylistInfo, updatePlaylist } from '../lib/data'
44 import Modal from './Modal.svelte'
55 import Button from './Button.svelte'
66
+1-1
src/components/Queue.svelte
···77 moveIndexes,
88 prependToUserQueue,
99 queue,
1010- Queue,
1010+ type Queue,
1111 } from '../lib/queue'
1212 import { page, paths } from '../lib/data'
1313 import { onDestroy } from 'svelte'
+5-1
src/components/Sidebar.svelte
···11<script lang="ts">
22- import SidebarItems, { hideFolder, showFolder, SidebarItemHandle } from './SidebarItems.svelte'
22+ import SidebarItems, {
33+ hideFolder,
44+ showFolder,
55+ type SidebarItemHandle,
66+ } from './SidebarItems.svelte'
37 import Filter from './Filter.svelte'
48 import { isMac, trackListsDetailsMap, page, movePlaylist } from '../lib/data'
59 import { ipcRenderer } from '../lib/window'
+1-1
src/components/SidebarItems.svelte
···30303131<script lang="ts">
3232 import type { TrackListDetails } from 'ferrum-addon'
3333- import { Writable, writable } from 'svelte/store'
3333+ import { type Writable, writable } from 'svelte/store'
3434 import { createEventDispatcher, SvelteComponent } from 'svelte'
3535 import { getContext } from 'svelte'
3636 import { dragged } from '../lib/drag-drop'
+1-1
src/electron/menubar.ts
···11-import { App, BrowserWindow, Menu, shell } from 'electron'
11+import { type App, BrowserWindow, Menu, shell } from 'electron'
22import { ipcMain } from './typed_ipc'
33import type { MenuItemConstructorOptions } from 'electron/common'
44import is from './is'
+1-1
src/lib/helpers.ts
···11-import { Updater, Writable, writable } from 'svelte/store'
11+import { type Updater, type Writable, writable } from 'svelte/store'
22import type { TrackListDetails } from 'ferrum-addon'
3344export function getDuration(dur: number) {
+2-17
tsconfig.json
···11{
22+ "extends": "@tsconfig/svelte/tsconfig.json",
23 "compilerOptions": {
33- "moduleResolution": "node",
44 "target": "ESNext",
55 "useDefineForClassFields": true,
66 "module": "ESNext",
77-88- // svelte-preprocess can't tell if you're importing a value or
99- // type, so require 'import type' instead of 'import' for types
1010- "importsNotUsedAsValues": "error",
1111-1212- // To have svelte warnings/errors correct position
1313- "sourceMap": true,
1414-1515- // Prevent type errors
1616- "types": ["svelte", "node", "wicg-mediasession"],
1717-77+ "resolveJsonModule": true,
188 "isolatedModules": true,
1919- "resolveJsonModule": true,
2020- "strict": true,
2121- "esModuleInterop": true,
2222- "skipLibCheck": true,
2323- "forceConsistentCasingInFileNames": true,
249 "baseUrl": ".",
2510 "paths": {
2611 "@/*": ["src/*"]
+3-5
vite.config.mjs
···11import { resolve } from 'path'
22import { viteExternalsPlugin } from 'vite-plugin-externals'
33import { defineConfig } from 'vite'
44-import { svelte } from '@sveltejs/vite-plugin-svelte'
55-import sveltePreprocess from 'svelte-preprocess' // using vitePreprocess results in an error
44+import { svelte, vitePreprocess } from '@sveltejs/vite-plugin-svelte'
65import electron from 'vite-plugin-electron'
7687export default defineConfig({
···1615 build: {
1716 outDir: './build/web',
1817 emptyOutDir: true,
1919- minify: false,
2018 sourcemap: true,
2121- target: ['chrome64', 'edge79', 'firefox62', 'safari11.1'],
1919+ target: 'chrome93',
2220 },
2321 plugins: [
2422 viteExternalsPlugin({
2523 'ferrum-addon': 'ferrum-addon',
2624 }),
2725 svelte({
2828- preprocess: sveltePreprocess(),
2626+ preprocess: vitePreprocess(),
2927 }),
3028 electron({
3129 entry: ['./src/electron/main.ts', './src/electron/preload.ts'],