diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6f80dde..192e3c2d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,21 +17,18 @@ jobs: steps: - uses: actions/checkout@v4 - - - uses: actions/cache@v4 - id: yarn-cache + - uses: oven-sh/setup-bun@v1 with: - path: "**/node_modules" - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} + bun-version: 1.1.3 - name: Install dependencies - run: yarn install + run: bun install - name: Build the library - run: yarn build + run: bun run build - name: Run unit tests - run: yarn test + run: bun test # Only trigger deploy if previous steps pass and branch is main - name: Deploy docs diff --git a/tests/__snapshots__/fixtures.test.ts.snap b/tests/__snapshots__/fixtures.test.ts.snap index 2fff5723..6aba0056 100644 --- a/tests/__snapshots__/fixtures.test.ts.snap +++ b/tests/__snapshots__/fixtures.test.ts.snap @@ -1794,3 +1794,135 @@ export interface AnchorPropsProps extends RestProps { export default class AnchorProps extends SvelteComponentTyped, { default: {} }> {} " `; + +exports[`fixtures (TypeScript) "svg-props/input.svelte" 1`] = ` +"import type { SvelteComponentTyped } from "svelte"; +import type { SvelteHTMLElements } from "svelte/elements"; + +type RestProps = SvelteHTMLElements["svg"]; + +export interface SvgPropsProps extends RestProps { + [key: \`data-${string}\`]: any; +} + +export default class SvgProps extends SvelteComponentTyped, {}> {} +" +`; + +exports[`fixtures (TypeScript) "rest-props/input.svelte" 1`] = ` +"import type { SvelteComponentTyped } from "svelte"; +import type { SvelteHTMLElements } from "svelte/elements"; + +type RestProps = SvelteHTMLElements["h1"]; + +export interface RestPropsProps extends RestProps { + [key: \`data-${string}\`]: any; +} + +export default class RestProps extends SvelteComponentTyped, {}> {} +" +`; + +exports[`fixtures (TypeScript) "rest-props-multiple/input.svelte" 1`] = ` +"import type { SvelteComponentTyped } from "svelte"; +import type { SvelteHTMLElements } from "svelte/elements"; + +type RestProps = SvelteHTMLElements["h1"] & SvelteHTMLElements["span"]; + +export interface RestPropsMultipleProps extends RestProps { + /** + * @default false + */ + edit?: boolean; + + /** + * @default false + */ + heading?: boolean; + + [key: \`data-${string}\`]: any; +} + +export default class RestPropsMultiple extends SvelteComponentTyped, {}> {} +" +`; + +exports[`fixtures (TypeScript) "anchor-props/input.svelte" 1`] = ` +"import type { SvelteComponentTyped } from "svelte"; +import type { SvelteHTMLElements } from "svelte/elements"; + +type RestProps = SvelteHTMLElements["a"]; + +export interface AnchorPropsProps extends RestProps { + [key: \`data-${string}\`]: any; +} + +export default class AnchorProps extends SvelteComponentTyped, { default: {} }> {} +" +`; + +exports[`fixtures (TypeScript) "svg-props/input.svelte" 1`] = ` +"import type { SvelteComponentTyped } from "svelte"; +import type { SvelteHTMLElements } from "svelte/elements"; + +type RestProps = SvelteHTMLElements["svg"]; + +export interface SvgPropsProps extends RestProps { + [key: \`data-${string}\`]: any; +} + +export default class SvgProps extends SvelteComponentTyped, {}> {} +" +`; + +exports[`fixtures (TypeScript) "rest-props/input.svelte" 1`] = ` +"import type { SvelteComponentTyped } from "svelte"; +import type { SvelteHTMLElements } from "svelte/elements"; + +type RestProps = SvelteHTMLElements["h1"]; + +export interface RestPropsProps extends RestProps { + [key: \`data-${string}\`]: any; +} + +export default class RestProps extends SvelteComponentTyped, {}> {} +" +`; + +exports[`fixtures (TypeScript) "rest-props-multiple/input.svelte" 1`] = ` +"import type { SvelteComponentTyped } from "svelte"; +import type { SvelteHTMLElements } from "svelte/elements"; + +type RestProps = SvelteHTMLElements["h1"] & SvelteHTMLElements["span"]; + +export interface RestPropsMultipleProps extends RestProps { + /** + * @default false + */ + edit?: boolean; + + /** + * @default false + */ + heading?: boolean; + + [key: \`data-${string}\`]: any; +} + +export default class RestPropsMultiple extends SvelteComponentTyped, {}> {} +" +`; + +exports[`fixtures (TypeScript) "anchor-props/input.svelte" 1`] = ` +"import type { SvelteComponentTyped } from "svelte"; +import type { SvelteHTMLElements } from "svelte/elements"; + +type RestProps = SvelteHTMLElements["a"]; + +export interface AnchorPropsProps extends RestProps { + [key: \`data-${string}\`]: any; +} + +export default class AnchorProps extends SvelteComponentTyped, { default: {} }> {} +" +`;