eslint-plugin-sv-remote
v0.1.0
Published
ESLint rules that encourage SvelteKit remote functions and inline await syntax
Maintainers
Readme
eslint-plugin-sv-remote
Opinionated ESLint rules for SvelteKit projects that prefer remote functions over route loaders and form actions, and inline async expressions over {#await} blocks.
SvelteKit still supports loaders and form actions. This plugin deliberately establishes a stricter project policy so generated and hand-written code reaches for remote functions first.
Install
npm install --save-dev eslint-plugin-sv-remoteAdd the preset after the existing sv create ESLint configuration:
import { defineConfig } from 'eslint/config';
import svRemote from 'eslint-plugin-sv-remote';
export default defineConfig([
// Existing js, TypeScript, and svelte.configs.recommended entries...
svRemote.configs.recommended
]);Use svRemote.configs.advisory to emit warnings instead of errors. Any rule can be overridden normally after the preset.
Rules
sv-remote/require-remote-functions-configsv-remote/prefer-remote-functionssv-remote/prefer-remote-formssv-remote/prefer-inline-await
See When a loader is justified before suppressing the loader rule.
Exceptions
The loader and form rules accept project-relative glob patterns:
{
rules: {
'sv-remote/prefer-remote-functions': [
'error',
{ allowFiles: ['src/routes/map/+page.ts'] }
]
}
}For a single intentional occurrence, use an ESLint comment that records the architectural reason:
// eslint-disable-next-line sv-remote/prefer-remote-functions -- required for route hover preloading
export const load = async ({ params }) => ({
post: await getPost(params.slug)
});Requirements
- ESLint 9.22 or 10 with flat config
eslint-plugin-svelte3.20+- Svelte 5.36+
- SvelteKit 2.27+
Remote functions and async Svelte are currently experimental. The recommended preset verifies their required configuration flags.
Contributing and releases
Development happens on main, with checks running on Node 20.19, 22, and 24. See RELEASING.md for the versioning, tagging, and trusted-publishing process.
