From 13cc53cdc358b10a2cf8d13b62c47c9a4e7395d3 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 29 Jun 2022 10:31:46 +0200 Subject: [PATCH] rename interfcace, rename file, better generic names, never instead of unknown --- tsd.js => generate-type-definitions.js | 2 +- package.json | 2 +- src/runtime/internal/dev.ts | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) rename tsd.js => generate-type-definitions.js (90%) diff --git a/tsd.js b/generate-type-definitions.js similarity index 90% rename from tsd.js rename to generate-type-definitions.js index ad3e74f95c..6cad31807f 100644 --- a/tsd.js +++ b/generate-type-definitions.js @@ -10,4 +10,4 @@ execSync('tsc -p src/compiler --emitDeclarationOnly && tsc -p src/runtime --emit // We can't use `export type` syntax either because the TS version we're on doesn't have this feature yet. const path = 'types/runtime/index.d.ts'; const content = readFileSync(path, 'utf8'); -writeFileSync(path, content.replace('SvelteComponentTyped', 'SvelteComponentTyped, ComponentType, ComponentConstructorParams, ComponentProps')); +writeFileSync(path, content.replace('SvelteComponentTyped', 'SvelteComponentTyped, ComponentType, ComponentConstructorOptions, ComponentProps')); diff --git a/package.json b/package.json index 000f4cd2e7..a1c9ae9a5d 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "pretest": "npm run build", "posttest": "agadoo internal/index.mjs", "prepublishOnly": "node check_publish_env.js && npm run lint && npm test", - "tsd": "node ./tsd.js", + "tsd": "node ./generate-type-definitions.js", "lint": "eslint \"{src,test}/**/*.{ts,js}\"" }, "repository": { diff --git a/src/runtime/internal/dev.ts b/src/runtime/internal/dev.ts index d6987990c6..afc8f261bf 100644 --- a/src/runtime/internal/dev.ts +++ b/src/runtime/internal/dev.ts @@ -128,7 +128,7 @@ export interface SvelteComponentDev { $destroy(): void; [accessor: string]: any; } -export interface ComponentConstructorParams = Record> { +export interface ComponentConstructorOptions = Record> { target: Element | ShadowRoot; anchor?: Element; props?: Props; @@ -164,7 +164,7 @@ export class SvelteComponentDev extends SvelteComponent { */ $$slot_def: any; - constructor(options: ComponentConstructorParams) { + constructor(options: ComponentConstructorOptions) { if (!options || (!options.target && !options.$$inline)) { throw new Error("'target' is a required option"); } @@ -256,7 +256,7 @@ export class SvelteComponentTyped< */ $$slot_def: Slots; - constructor(options: ComponentConstructorParams) { + constructor(options: ComponentConstructorOptions) { super(options); } } @@ -280,8 +280,8 @@ export class SvelteComponentTyped< * * ``` */ -export type ComponentType> = - new (p: ComponentConstructorParams ? X : any>) => T; +export type ComponentType> = + new (p: ComponentConstructorOptions ? Props : any>) => Component; /** * Convenience type to get the properties the given component expects. Example: @@ -294,9 +294,9 @@ export type ComponentType * ``` */ -export type ComponentProps = T extends SvelteComponentTyped +export type ComponentProps = Component extends SvelteComponentTyped ? Props - : unknown; + : never; export function loop_guard(timeout) { const start = Date.now();