sveltekit-remote-functions by spences10/svelte-skills-kit
npx skills add https://github.com/spences10/svelte-skills-kit --skill sveltekit-remote-functions文件命名: 远程函数文件使用 *.remote.ts
选择哪种函数? 一次性操作 → command() | 重复读取 → query() | 表单处理 → form()
// actions.remote.ts
import { command } from "$app/server";
import * as v from "valibot";
export const delete_user = command(
v.object({ id: v.string() }),
async ({ id }) => {
await db.users.delete(id);
return { success: true };
},
);
// 从客户端调用:await delete_user({ id: '123' });
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
getRequestEvent() 访问 cookies/headersquery() 可与 {#await} 配合使用。带参数的查询配合 $derived 会返回 Query 对象 —— 使用 .ready/.current 或在实验性异步模式下使用 $derived(await ...)<svelte:boundary> + {@const await} 在使用共享查询时会导致无限导航循环 (sveltejs/svelte#17717)query().refresh() - 无闪烁更新query().refresh() 时务必使用 .catch() —— 错误会拒绝 Promise 并将查询从缓存中逐出每周安装量
183
代码仓库
GitHub 星标数
58
首次出现
2026年1月20日
安全审计
安装于
opencode155
gemini-cli137
codex136
github-copilot129
cursor121
claude-code116
File naming: *.remote.ts for remote function files
Which function? One-time action → command() | Repeated reads → query() | Forms → form()
// actions.remote.ts
import { command } from "$app/server";
import * as v from "valibot";
export const delete_user = command(
v.object({ id: v.string() }),
async ({ id }) => {
await db.users.delete(id);
return { success: true };
},
);
// Call from client: await delete_user({ id: '123' });
getRequestEvent() available for cookies/headers accessquery() works with {#await}. Parameterized queries with $derived return Query objects — use .ready/.current or $derived(await ...) with experimental async<svelte:boundary> + {@const await} causes infinite navigation loops with shared queries ()Weekly Installs
183
Repository
GitHub Stars
58
First Seen
Jan 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykFail
Installed on
opencode155
gemini-cli137
codex136
github-copilot129
cursor121
claude-code116
Flutter应用架构设计指南:分层结构、数据层实现与最佳实践
4,100 周安装
query().refresh() - updates without flicker.catch() on query().refresh() in intervals — errors reject the Promise and evict the query from cache