diff --git a/.changeset/loud-lies-crash.md b/.changeset/loud-lies-crash.md new file mode 100644 index 000000000..84145b586 --- /dev/null +++ b/.changeset/loud-lies-crash.md @@ -0,0 +1,5 @@ +--- +"sv": patch +--- + +feat(paraglide): disable `AsyncLocalStorage` in serverless environments diff --git a/packages/sv/src/addons/paraglide.ts b/packages/sv/src/addons/paraglide.ts index 6bcde3224..25c83110d 100644 --- a/packages/sv/src/addons/paraglide.ts +++ b/packages/sv/src/addons/paraglide.ts @@ -50,13 +50,20 @@ export default defineAddon({ shortDescription: 'i18n', homepage: 'https://inlang.com/m/gerre34r/library-inlang-paraglideJs', options, - setup: ({ kit, unsupported }) => { + setup: ({ kit, unsupported, runsAfter }) => { if (!kit) unsupported('Requires SvelteKit'); + + runsAfter('sveltekitAdapter'); }, - run: ({ sv, options, files, language, kit }) => { + run: ({ sv, options, files, language, kit, dependencyVersion }) => { if (!kit) throw new Error('SvelteKit is required'); const paraglideOutDir = 'src/lib/paraglide'; + const isServerless = [ + dependencyVersion('@sveltejs/adapter-vercel'), + dependencyVersion('@sveltejs/adapter-cloudflare'), + dependencyVersion('@sveltejs/adapter-netlify') + ].some((value) => value !== undefined); sv.devDependency('@inlang/paraglide-js', '^2.10.0'); @@ -67,9 +74,10 @@ export default defineAddon({ const vitePluginName = 'paraglideVitePlugin'; js.imports.addNamed(ast, { imports: [vitePluginName], from: '@inlang/paraglide-js' }); js.vite.addPlugin(ast, { - code: `${vitePluginName}({ - project: './project.inlang', - outdir: './${paraglideOutDir}' + code: `${vitePluginName}({ + project: './project.inlang', + outdir: './${paraglideOutDir}', + ${isServerless ? 'disableAsyncLocalStorage: true' : ''} })` }); diff --git a/packages/sv/src/cli/tests/snapshots/create-with-all-addons/.gitignore b/packages/sv/src/cli/tests/snapshots/create-with-all-addons/.gitignore index ab1e98f41..699c39af9 100644 --- a/packages/sv/src/cli/tests/snapshots/create-with-all-addons/.gitignore +++ b/packages/sv/src/cli/tests/snapshots/create-with-all-addons/.gitignore @@ -23,8 +23,8 @@ vite.config.js.timestamp-* vite.config.ts.timestamp-* # Playwright test-results +# SQLite +*.db # Paraglide src/lib/paraglide project.inlang/cache/ -# SQLite -*.db