Skip to content

feat(create-rslib): add svelte template and related-doc#1653

Open
elecmonkey wants to merge 20 commits into
mainfrom
feat/create-rslib-svelte-template
Open

feat(create-rslib): add svelte template and related-doc#1653
elecmonkey wants to merge 20 commits into
mainfrom
feat/create-rslib-svelte-template

Conversation

@elecmonkey
Copy link
Copy Markdown
Member

Summary

This PR adds Svelte support to create-rslib, including Svelte 5 TypeScript and JavaScript templates, Rstest integration, local svelte2tsx declaration generation, and Svelte-specific documentation.

Close #1360

Copilot AI review requested due to automatic review settings May 19, 2026 04:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds first-class Svelte library scaffolding to create-rslib and documents the recommended Rslib + Svelte setup (Svelte 5, ESM output, CSS handling, and local .d.ts generation).

Changes:

  • Add svelte-js / svelte-ts templates to create-rslib, including a TS helper plugin that generates .svelte.d.ts via svelte2tsx.
  • Add rstest tool overlays for Svelte templates (JS/TS) with basic component tests running in happy-dom.
  • Add new Svelte solution docs (EN/ZH) and register them in the solution navigation meta.

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
website/docs/zh/guide/solution/svelte.mdx New Chinese Svelte solution guide covering config, output, and d.ts generation.
website/docs/zh/guide/solution/_meta.json Add svelte to solution nav ordering (ZH).
website/docs/en/guide/solution/svelte.mdx New English Svelte solution guide covering config, output, and d.ts generation.
website/docs/en/guide/solution/_meta.json Add svelte to solution nav ordering (EN).
packages/create-rslib/src/index.ts Register Svelte templates in CLI template list and tool mapping.
packages/create-rslib/test/index.test.ts Add create/validate coverage for Svelte templates (with/without rstest).
packages/create-rslib/test/helper.ts Add Svelte-specific assertions for generated project structure/deps/exports.
packages/create-rslib/template-svelte-ts/tsconfig.json TS config for the Svelte TS template (extends @tsconfig/svelte).
packages/create-rslib/template-svelte-ts/svelte.config.ts Svelte TS config using svelte-preprocess.
packages/create-rslib/template-svelte-ts/src/index.ts Svelte TS template entry exporting the example component.
packages/create-rslib/template-svelte-ts/src/Button.svelte Example Svelte 5 component using runes + props callback.
packages/create-rslib/template-svelte-ts/scripts/rslib-plugin-svelte-dts.ts Post-build helper plugin to emit .d.ts via svelte2tsx.emitDts.
packages/create-rslib/template-svelte-ts/rslib.config.ts Rslib config for Svelte TS template (web target, plugin-svelte, custom dts).
packages/create-rslib/template-svelte-ts/package.json Svelte TS template deps/exports/scripts (including check).
packages/create-rslib/template-svelte-js/svelte.config.js Minimal Svelte config for JS template.
packages/create-rslib/template-svelte-js/src/index.js Svelte JS template entry exporting the example component.
packages/create-rslib/template-svelte-js/src/Button.svelte Example Svelte 5 component for JS template.
packages/create-rslib/template-svelte-js/rslib.config.mjs Rslib config for Svelte JS template (web target, plugin-svelte).
packages/create-rslib/template-svelte-js/package.json Svelte JS template deps/exports/scripts.
packages/create-rslib/template-rstest/svelte-ts/tests/index.test.ts Svelte TS rstest overlay tests for the Button component.
packages/create-rslib/template-rstest/svelte-ts/rstest.config.ts rstest config for Svelte TS overlay (happy-dom).
packages/create-rslib/template-rstest/svelte-ts/package.json rstest overlay deps/scripts for Svelte TS.
packages/create-rslib/template-rstest/svelte-js/tests/index.test.js Svelte JS rstest overlay tests for the Button component.
packages/create-rslib/template-rstest/svelte-js/rstest.config.js rstest config for Svelte JS overlay (happy-dom).
packages/create-rslib/template-rstest/svelte-js/package.json rstest overlay deps/scripts for Svelte JS.

Comment thread website/docs/en/guide/solution/svelte.mdx Outdated
Comment thread website/docs/zh/guide/solution/svelte.mdx Outdated
Comment thread packages/create-rslib/template-rstest/svelte-ts/tests/index.test.ts Outdated
Comment thread packages/create-rslib/template-rstest/svelte-js/tests/index.test.js Outdated
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 19, 2026

Deploying rslib with  Cloudflare Pages  Cloudflare Pages

Latest commit: 7b525eb
Status: ✅  Deploy successful!
Preview URL: https://414bd2a3.rslib.pages.dev
Branch Preview URL: https://feat-create-rslib-svelte-tem.rslib.pages.dev

View logs

@elecmonkey elecmonkey requested a review from Timeless0911 May 19, 2026 07:58
Comment thread packages/create-rslib/src/index.ts
Comment thread packages/create-rslib/template-rstest/svelte-js/tests/index.test.js Outdated
Comment thread packages/create-rslib/template-svelte-js/src/Button.svelte

const require = createRequire(import.meta.url);

export interface SvelteDtsPluginOptions {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why directly import EmitDtsConfig type from svelte2tsx

Comment thread packages/create-rslib/template-svelte-ts/scripts/rslib-plugin-svelte-dts.ts Outdated
Comment thread website/docs/zh/guide/solution/svelte.mdx Outdated
Comment thread website/docs/zh/guide/solution/svelte.mdx Outdated
Comment thread website/docs/zh/guide/solution/svelte.mdx
Comment thread website/docs/zh/guide/solution/svelte.mdx Outdated
Comment thread website/docs/zh/guide/solution/svelte.mdx Outdated
Comment thread packages/create-rslib/template-svelte-ts/rslib.config.ts Outdated
@Timeless0911 Timeless0911 force-pushed the feat/create-rslib-svelte-template branch from 01b7812 to 7b525eb Compare May 26, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Svelte library support

3 participants