diff --git a/package.json b/package.json index 14e8cf9..89dab73 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,9 @@ "test:examples": "vitest run examples --coverage", "types": "svelte-check", "types:legacy": "svelte-check --tsconfig tsconfig.legacy.json", - "build": "tsc -p tsconfig.build.json && cp src/component-types.d.ts types", + "build": "npm-run-all build:*", + "build:tsc": "tsc -p tsconfig.build.json", + "build:copy-dts": "cp src/core/types.d.ts types/core", "contributors:add": "all-contributors add", "contributors:generate": "all-contributors generate", "preview-release": "./scripts/preview-release", diff --git a/src/core/index.js b/src/core/index.js index 9e41adf..4155764 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -5,15 +5,15 @@ * Will switch to legacy, class-based mounting logic * if it looks like we're in a Svelte <= 4 environment. */ -import * as LegacyCore from './legacy.js' -import * as ModernCore from './modern.svelte.js' -import { createValidateOptions } from './validate-options.js' +import * as MountLegacy from './mount-legacy.js' +import * as MountModern from './mount-modern.svelte.js' +import { createValidateOptions } from './prepare.js' const { mount, unmount, updateProps, allowedOptions } = - ModernCore.IS_MODERN_SVELTE ? ModernCore : LegacyCore + MountModern.IS_MODERN_SVELTE ? MountModern : MountLegacy /** Validate component options. */ const validateOptions = createValidateOptions(allowedOptions) export { mount, unmount, updateProps, validateOptions } -export { UnknownSvelteOptionsError } from './validate-options.js' +export { UnknownSvelteOptionsError } from './prepare.js' diff --git a/src/core/legacy.js b/src/core/mount-legacy.js similarity index 100% rename from src/core/legacy.js rename to src/core/mount-legacy.js diff --git a/src/core/modern.svelte.js b/src/core/mount-modern.svelte.js similarity index 100% rename from src/core/modern.svelte.js rename to src/core/mount-modern.svelte.js diff --git a/src/core/validate-options.js b/src/core/prepare.js similarity index 100% rename from src/core/validate-options.js rename to src/core/prepare.js diff --git a/src/component-types.d.ts b/src/core/types.d.ts similarity index 100% rename from src/component-types.d.ts rename to src/core/types.d.ts diff --git a/src/pure.js b/src/pure.js index 583d063..0ccc4c3 100644 --- a/src/pure.js +++ b/src/pure.js @@ -15,8 +15,8 @@ const componentCache = new Set() /** * Customize how Svelte renders the component. * - * @template {import('./component-types.js').Component} C - * @typedef {import('./component-types.js').Props | Partial>} SvelteComponentOptions + * @template {import('./core/types.js').Component} C + * @typedef {import('./core/types.js').Props | Partial>} SvelteComponentOptions */ /** @@ -32,15 +32,15 @@ const componentCache = new Set() /** * The rendered component and bound testing functions. * - * @template {import('./component-types.js').Component} C + * @template {import('./core/types.js').Component} C * @template {import('@testing-library/dom').Queries} [Q=typeof import('@testing-library/dom').queries] * * @typedef {{ * container: HTMLElement * baseElement: HTMLElement - * component: import('./component-types.js').Exports + * component: import('./core/types.js').Exports * debug: (el?: HTMLElement | DocumentFragment) => void - * rerender: (props: Partial>) => Promise + * rerender: (props: Partial>) => Promise * unmount: () => void * } & { * [P in keyof Q]: import('@testing-library/dom').BoundFunction @@ -50,10 +50,10 @@ const componentCache = new Set() /** * Render a component into the document. * - * @template {import('./component-types.js').Component} C + * @template {import('./core/types.js').Component} C * @template {import('@testing-library/dom').Queries} [Q=typeof import('@testing-library/dom').queries] * - * @param {import('./component-types.js').ComponentType} Component - The component to render. + * @param {import('./core/types.js').ComponentType} Component - The component to render. * @param {SvelteComponentOptions} options - Customize how Svelte renders the component. * @param {RenderOptions} renderOptions - Customize how Testing Library sets up the document and binds queries. * @returns {RenderResult} The rendered component and bound testing functions. diff --git a/tests/render-runes.test-d.ts b/tests/render-runes.test-d.ts index 1e42544..8c69822 100644 --- a/tests/render-runes.test-d.ts +++ b/tests/render-runes.test-d.ts @@ -31,6 +31,7 @@ describe('types', () => { expectTypeOf(result).toExtend<{ container: HTMLElement + baseElement: HTMLElement component: { hello: string } debug: (el?: HTMLElement) => void rerender: (props: { name?: string; count?: number }) => Promise diff --git a/tests/render.test-d.ts b/tests/render.test-d.ts index eb1c639..b4c428e 100644 --- a/tests/render.test-d.ts +++ b/tests/render.test-d.ts @@ -39,6 +39,7 @@ describe('types', () => { expectTypeOf(result).toExtend<{ container: HTMLElement + baseElement: HTMLElement component: { hello: string } debug: (el?: HTMLElement) => void rerender: (props: { name?: string; count?: number }) => Promise