diff --git a/package-lock.json b/package-lock.json index f34b756..414e415 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@gulluth/oddments", - "version": "0.98.0", + "version": "0.98.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@gulluth/oddments", - "version": "0.98.0", + "version": "0.98.1", "dependencies": { "@skeletonlabs/skeleton": "^4.15.2", "@skeletonlabs/skeleton-svelte": "^4.15.2", diff --git a/package.json b/package.json index 626ab87..ad652fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gulluth/oddments", - "version": "0.98.0", + "version": "0.98.1", "private": false, "type": "module", "bin": { diff --git a/scripts/cli.js b/scripts/cli.js index 039b5ad..65ecd45 100755 --- a/scripts/cli.js +++ b/scripts/cli.js @@ -25,6 +25,12 @@ function cleanup() { } } +function cleanCache() { + for (const item of ['build', '.svelte-kit', ...EPHEMERAL]) { + rmSync(join(cwd, item), { recursive: true, force: true }) + } +} + function resolveBin(name) { for (const base of [cwd, packageRoot]) { const p = join(base, 'node_modules', '.bin', name) @@ -79,6 +85,12 @@ switch (command) { break } + case 'clean': { + cleanCache() + console.log('Removed Oddments build cache.') + break + } + case 'init': { const templateDir = join(packageRoot, 'starter-template') @@ -162,6 +174,6 @@ switch (command) { } default: - console.error('Usage: oddments ') + console.error('Usage: oddments ') process.exit(1) } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index b9c54e8..ace7cd0 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -55,6 +55,17 @@ options: (o: object) => Promise } | null = null + async function importPagefind() { + const primary = asset('/pagefind/pagefind.js') + try { + return await import(/* @vite-ignore */ primary) + } catch (error) { + const assetBase = asset('/').replace(/\/$/, '') + if (!assetBase || !primary.startsWith(`${assetBase}/`)) throw error + return await import(/* @vite-ignore */ primary.slice(assetBase.length)) + } + } + function resultToExhibit(r: PagefindResultData): Exhibit { const slug = r.url.replace(/^.*\/exhibit\//, '').replace(/\/$/, '') return { @@ -110,7 +121,7 @@ return } try { - pagefind = await import(/* @vite-ignore */ asset('/pagefind/pagefind.js')) + pagefind = await importPagefind() const baseUrl = resolve('/').replace(/\/$/, '') if (baseUrl) await pagefind!.options({ baseUrl }) await pagefind!.init() diff --git a/starter-template/README.md b/starter-template/README.md index 78d218b..d3a2595 100644 --- a/starter-template/README.md +++ b/starter-template/README.md @@ -17,6 +17,7 @@ A filterable card catalog built with [Oddments](https://github.com/gulluth/oddme git clone your-repo npm install npm run dev # preview at http://localhost:5173 +npm run clean # remove build cache if preview/build state gets stale ``` ### Codespaces or Dev Containers @@ -32,6 +33,7 @@ CLI commands work there too: ```bash npx oddments import template.csv --dry-run npx oddments covers --dry-run +npx oddments clean ``` ## Adding content diff --git a/starter-template/package.json b/starter-template/package.json index 988e050..983bfa5 100644 --- a/starter-template/package.json +++ b/starter-template/package.json @@ -5,10 +5,11 @@ "private": true, "scripts": { "build": "oddments build", + "clean": "oddments clean", "dev": "oddments dev", "preview": "oddments preview" }, "dependencies": { - "@gulluth/oddments": "^0.98.0" + "@gulluth/oddments": "^0.98.1" } }