From fdbbcd2dd250b47f3f17f392e084dee2c932e3d8 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:26:04 +0200 Subject: [PATCH] add vite-plugin-bundle-audioworklet and use it both from website and superdough --- packages/superdough/package.json | 3 ++- packages/superdough/vite.config.js | 2 +- .../package.json | 19 +++++++++++++++++++ .../vite-plugin-bundle-audioworklet.js | 6 ++++-- pnpm-lock.yaml | 17 ++++++++++++++--- website/astro.config.mjs | 2 ++ website/package.json | 3 ++- 7 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 packages/vite-plugin-bundle-audioworklet/package.json rename packages/{superdough => vite-plugin-bundle-audioworklet}/vite-plugin-bundle-audioworklet.js (89%) diff --git a/packages/superdough/package.json b/packages/superdough/package.json index dd0ed52b..79c4349e 100644 --- a/packages/superdough/package.json +++ b/packages/superdough/package.json @@ -32,7 +32,8 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "devDependencies": { - "vite": "^6.0.11" + "vite": "^6.0.11", + "vite-plugin-bundle-audioworklet": "workspace:*" }, "dependencies": { "nanostores": "^0.11.3" diff --git a/packages/superdough/vite.config.js b/packages/superdough/vite.config.js index a38b9b22..10ac0f06 100644 --- a/packages/superdough/vite.config.js +++ b/packages/superdough/vite.config.js @@ -1,7 +1,7 @@ import { defineConfig } from 'vite'; import { dependencies } from './package.json'; import { resolve } from 'path'; -import { bundleAudioWorkletPlugin } from './vite-plugin-bundle-audioworklet'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; // https://vitejs.dev/config/ export default defineConfig({ diff --git a/packages/vite-plugin-bundle-audioworklet/package.json b/packages/vite-plugin-bundle-audioworklet/package.json new file mode 100644 index 00000000..82dc2f1d --- /dev/null +++ b/packages/vite-plugin-bundle-audioworklet/package.json @@ -0,0 +1,19 @@ +{ + "name": "vite-plugin-bundle-audioworklet", + "main": "./vite-plugin-bundle-audioworklet.js", + "version": "0.1.0", + "description": "", + "keywords": [ + "tidalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Felix Roos ", + "license": "AGPL-3.0-or-later", + "type": "module", + "devDependencies": { + "vite": "^6.0.11" + } +} diff --git a/packages/superdough/vite-plugin-bundle-audioworklet.js b/packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet.js similarity index 89% rename from packages/superdough/vite-plugin-bundle-audioworklet.js rename to packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet.js index 13351cc5..4c5634ba 100644 --- a/packages/superdough/vite-plugin-bundle-audioworklet.js +++ b/packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet.js @@ -2,12 +2,12 @@ import { createLogger, build } from 'vite'; const end = '?audioworklet'; -export function bundleAudioWorkletPlugin() /* : PluginOption */ { +function bundleAudioWorkletPlugin() /* : PluginOption */ { let viteConfig /* : UserConfig */; return { name: 'vite-plugin-bundle-audioworklet', - apply: 'build', + /* apply: 'build', */ enforce: 'post', config(config) { @@ -44,3 +44,5 @@ export function bundleAudioWorkletPlugin() /* : PluginOption */ { }, }; } + +export default bundleAudioWorkletPlugin; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32fd711e..e8667c5d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,7 +41,7 @@ importers: version: 2.2.7 '@vitest/coverage-v8': specifier: 3.0.4 - version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0)) + version: 3.0.4(vitest@3.0.4) '@vitest/ui': specifier: ^3.0.4 version: 3.0.4(vitest@3.0.4) @@ -476,6 +476,9 @@ importers: vite: specifier: ^6.0.11 version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../vite-plugin-bundle-audioworklet packages/tidal: dependencies: @@ -540,6 +543,12 @@ importers: specifier: ^3.0.4 version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + packages/vite-plugin-bundle-audioworklet: + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + packages/web: dependencies: '@strudel/core': @@ -780,6 +789,9 @@ importers: sharp: specifier: ^0.33.5 version: 0.33.5 + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../packages/vite-plugin-bundle-audioworklet workbox-window: specifier: ^7.3.0 version: 7.3.0 @@ -7561,7 +7573,6 @@ packages: workbox-google-analytics@7.0.0: resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} - deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained workbox-navigation-preload@7.0.0: resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} @@ -10248,7 +10259,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0))': + '@vitest/coverage-v8@3.0.4(vitest@3.0.4)': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 63158422..151c48fc 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -5,6 +5,7 @@ import remarkToc from 'remark-toc'; import rehypeSlug from 'rehype-slug'; import rehypeAutolinkHeadings from 'rehype-autolink-headings'; import rehypeUrls from 'rehype-urls'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; import tailwind from '@astrojs/tailwind'; import AstroPWA from '@vite-pwa/astro'; @@ -134,6 +135,7 @@ export default defineConfig({ site, base, vite: { + plugins: [bundleAudioWorkletPlugin()], ssr: { // Example: Force a broken package to skip SSR processing, if needed // external: ['fraction.js'], // https://github.com/infusion/Fraction.js/issues/51 diff --git a/website/package.json b/website/package.json index 257ff643..8e980f1c 100644 --- a/website/package.json +++ b/website/package.json @@ -73,6 +73,7 @@ "@vite-pwa/astro": "^0.5.0", "html-escaper": "^3.0.3", "sharp": "^0.33.5", - "workbox-window": "^7.3.0" + "workbox-window": "^7.3.0", + "vite-plugin-bundle-audioworklet": "workspace:*" } }