From 6b0d09151a1dd14b762c8dd9f75e17de456e6964 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Tue, 25 May 2021 19:50:38 +0200 Subject: [PATCH 1/3] create-svelte: add svelte-check for TS This add svelte-check along with two validate scripts to the package.json if the user selects TS. This uncovered missing type definitions for the cookie package in the default template, which are now added as well if the user selects TS. --- .changeset/seven-bags-sniff.md | 5 +++++ packages/create-svelte/bin.js | 15 +++++++++++++-- .../shared/+default+typescript/package.json | 5 +++++ .../create-svelte/shared/+typescript/package.json | 5 +++++ packages/create-svelte/types/internal.d.ts | 6 ++++-- 5 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 .changeset/seven-bags-sniff.md create mode 100644 packages/create-svelte/shared/+default+typescript/package.json diff --git a/.changeset/seven-bags-sniff.md b/.changeset/seven-bags-sniff.md new file mode 100644 index 000000000000..1e1c948b013a --- /dev/null +++ b/.changeset/seven-bags-sniff.md @@ -0,0 +1,5 @@ +--- +'create-svelte': patch +--- + +Add svelte-check to TS templates diff --git a/packages/create-svelte/bin.js b/packages/create-svelte/bin.js index 0dea68b0d536..ca02e73de111 100755 --- a/packages/create-svelte/bin.js +++ b/packages/create-svelte/bin.js @@ -184,8 +184,8 @@ function write_common_files(cwd, options) { const pkg = /** @type {any} */ (JSON.parse(fs.readFileSync(pkg_file, 'utf-8'))); files.forEach((file) => { - const include = file.include.every((condition) => options[condition]); - const exclude = file.exclude.some((condition) => options[condition]); + const include = file.include.every((condition) => matchesCondition(condition, options)); + const exclude = file.exclude.some((condition) => matchesCondition(condition, options)); if (exclude || !include) return; @@ -205,6 +205,17 @@ function write_common_files(cwd, options) { fs.writeFileSync(pkg_file, JSON.stringify(pkg, null, ' ')); } +/** + * @param {import('./types/internal').Condition} condition + * @param {import('./types/internal').Options} options + * @returns {boolean} + */ +function matchesCondition(condition, options) { + return condition === 'default' || condition === 'skeleton' + ? options.template === condition + : options[condition]; +} + /** * @param {any} target * @param {any} source diff --git a/packages/create-svelte/shared/+default+typescript/package.json b/packages/create-svelte/shared/+default+typescript/package.json new file mode 100644 index 000000000000..9e7682209403 --- /dev/null +++ b/packages/create-svelte/shared/+default+typescript/package.json @@ -0,0 +1,5 @@ +{ + "devDependencies": { + "@types/cookie": "^0.4.0" + } +} diff --git a/packages/create-svelte/shared/+typescript/package.json b/packages/create-svelte/shared/+typescript/package.json index 343a1d723cb6..a529d59a093d 100644 --- a/packages/create-svelte/shared/+typescript/package.json +++ b/packages/create-svelte/shared/+typescript/package.json @@ -1,7 +1,12 @@ { + "scripts": { + "validate": "svelte-check --tsconfig ./tsconfig.json", + "validate:watch": "svelte-check --tsconfig ./tsconfig.json --watch" + }, "devDependencies": { "typescript": "^4.0.0", "tslib": "^2.0.0", + "svelte-check": "^1.6.0", "svelte-preprocess": "^4.0.0" } } diff --git a/packages/create-svelte/types/internal.d.ts b/packages/create-svelte/types/internal.d.ts index c5e70871a7ae..81a10b96fd07 100644 --- a/packages/create-svelte/types/internal.d.ts +++ b/packages/create-svelte/types/internal.d.ts @@ -10,11 +10,13 @@ export type File = { contents: string; }; +export type Condition = 'eslint' | 'prettier' | 'typescript' | 'skeleton' | 'default'; + export type Common = { files: Array<{ name: string; - include: Array<'eslint' | 'prettier' | 'typescript'>; - exclude: Array<'eslint' | 'prettier' | 'typescript'>; + include: Array; + exclude: Array; contents: string; }>; }; From b53b0fcccf4bdb333f313a18ed4940883facb8a6 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Wed, 26 May 2021 10:45:38 +0200 Subject: [PATCH 2/3] check instead of validate --- packages/create-svelte/shared/+typescript/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/create-svelte/shared/+typescript/package.json b/packages/create-svelte/shared/+typescript/package.json index a529d59a093d..95b2e370e6ab 100644 --- a/packages/create-svelte/shared/+typescript/package.json +++ b/packages/create-svelte/shared/+typescript/package.json @@ -1,7 +1,7 @@ { "scripts": { - "validate": "svelte-check --tsconfig ./tsconfig.json", - "validate:watch": "svelte-check --tsconfig ./tsconfig.json --watch" + "check": "svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch" }, "devDependencies": { "typescript": "^4.0.0", From 0098df52d9ab6c3e757ec1a86fd48b0882cbeccb Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Fri, 28 May 2021 12:33:18 +0200 Subject: [PATCH 3/3] use svelte-check v2 --- packages/create-svelte/shared/+typescript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-svelte/shared/+typescript/package.json b/packages/create-svelte/shared/+typescript/package.json index 95b2e370e6ab..334b96b584bf 100644 --- a/packages/create-svelte/shared/+typescript/package.json +++ b/packages/create-svelte/shared/+typescript/package.json @@ -6,7 +6,7 @@ "devDependencies": { "typescript": "^4.0.0", "tslib": "^2.0.0", - "svelte-check": "^1.6.0", + "svelte-check": "^2.0.0", "svelte-preprocess": "^4.0.0" } }