From fd585030a07c509fd5ef7cc160d3c5a6f96d5ac2 Mon Sep 17 00:00:00 2001 From: hobbes7878 Date: Fri, 18 Apr 2025 21:22:38 +0100 Subject: [PATCH] passes svelte-check --- .../cssVariables/{index.js => index.ts} | 4 +-- .../resizeObserver/{index.js => index.ts} | 6 ++-- .../Analytics/providers/chartbeat.ts | 2 +- src/components/Analytics/providers/ga.ts | 2 +- src/components/Article/Article.svelte | 2 +- src/components/Byline/Byline.svelte | 13 ++++---- .../DatawrapperChart/DatawrapperChart.svelte | 15 ++++----- .../demo/ai2svelte/ai-chart.svelte | 10 +----- src/components/Headline/demo/graphic.svelte | 2 +- .../HeroHeadline/demo/graphics/crash.svelte | 8 +---- .../demo/graphics/quakemap.svelte | 2 +- .../PhotoPack/PhotoPack.stories.svelte | 6 ++-- .../Scroller/ScrollerBase/index.svelte | 15 ++++----- .../components/ai2svelte/ai-foreground.svelte | 5 --- .../components/ai2svelte/ai-scroller-1.svelte | 9 ++---- .../components/ai2svelte/ai-scroller-2.svelte | 4 +-- .../components/ai2svelte/ai-scroller-3.svelte | 4 +-- src/components/SiteFooter/LegalLinks.svelte | 2 +- src/components/Theme/@types/component.ts | 10 +++--- src/components/Theme/Theme.svelte | 5 ++- .../Theme/utils/{flatten.js => flatten.ts} | 18 ++++++++--- src/components/Theme/utils/merge.js | 23 -------------- src/components/Theme/utils/merge.ts | 31 +++++++++++++++++++ src/components/Visible/Visible.mdx | 14 +++++---- .../Visible/stories/snippets/default.svelte | 13 -------- src/globals.d.ts | 2 +- src/index.js | 6 ++-- src/journalize.d.ts | 19 ++++++++++++ tsconfig.json | 2 ++ 29 files changed, 129 insertions(+), 125 deletions(-) rename src/actions/cssVariables/{index.js => index.ts} (80%) rename src/actions/resizeObserver/{index.js => index.ts} (75%) rename src/components/Theme/utils/{flatten.js => flatten.ts} (56%) delete mode 100644 src/components/Theme/utils/merge.js create mode 100644 src/components/Theme/utils/merge.ts delete mode 100644 src/components/Visible/stories/snippets/default.svelte create mode 100644 src/journalize.d.ts diff --git a/src/actions/cssVariables/index.js b/src/actions/cssVariables/index.ts similarity index 80% rename from src/actions/cssVariables/index.js rename to src/actions/cssVariables/index.ts index 177a077d..47b23267 100644 --- a/src/actions/cssVariables/index.js +++ b/src/actions/cssVariables/index.ts @@ -1,11 +1,11 @@ // Shamelessly stolen from: https://github.com/kaisermann/svelte-css-vars -export default (node, props) => { +export default (node: HTMLElement, props: Record) => { Object.entries(props).forEach(([key, value]) => { node.style.setProperty(`--${key}`, value); }); return { - update(newProps) { + update(newProps: Record) { Object.entries(newProps).forEach(([key, value]) => { node.style.setProperty(`--${key}`, value); delete props[key]; diff --git a/src/actions/resizeObserver/index.js b/src/actions/resizeObserver/index.ts similarity index 75% rename from src/actions/resizeObserver/index.js rename to src/actions/resizeObserver/index.ts index b3de9bf2..10cf6991 100644 --- a/src/actions/resizeObserver/index.js +++ b/src/actions/resizeObserver/index.ts @@ -1,8 +1,8 @@ // Shamelessly stolen from https://github.com/sveltejs/svelte/issues/7583#issue-1260717165 -let observer; -let callbacks; +let observer: ResizeObserver; +let callbacks: WeakMap unknown>; -export default (element, onResize) => { +export default (element: HTMLElement, onResize: (el: Element) => unknown) => { if (!observer) { callbacks = new WeakMap(); observer = new ResizeObserver((entries) => { diff --git a/src/components/Analytics/providers/chartbeat.ts b/src/components/Analytics/providers/chartbeat.ts index 8e84f117..aedea3a0 100644 --- a/src/components/Analytics/providers/chartbeat.ts +++ b/src/components/Analytics/providers/chartbeat.ts @@ -12,7 +12,7 @@ const attachScript = () => { e.type = 'text/javascript'; e.async = true; e.src = URL; - n.parentNode.insertBefore(e, n); + n.parentNode!.insertBefore(e, n); }; export default (authors: { name: string }[]) => { diff --git a/src/components/Analytics/providers/ga.ts b/src/components/Analytics/providers/ga.ts index 5de53158..6bd02d1d 100644 --- a/src/components/Analytics/providers/ga.ts +++ b/src/components/Analytics/providers/ga.ts @@ -12,7 +12,7 @@ const attachScript = () => { e.type = 'text/javascript'; e.async = true; e.src = URL; - n.parentNode.insertBefore(e, n); + n.parentNode!.insertBefore(e, n); }; export default () => { diff --git a/src/components/Article/Article.svelte b/src/components/Article/Article.svelte index ee8f8266..56b86043 100644 --- a/src/components/Article/Article.svelte +++ b/src/components/Article/Article.svelte @@ -13,7 +13,7 @@ wider: number; } - import cssVariables from '../../actions/cssVariables/index.js'; + import cssVariables from '../../actions/cssVariables/index'; interface Props { /** Set to true for embeddables. */ embedded?: boolean; diff --git a/src/components/Byline/Byline.svelte b/src/components/Byline/Byline.svelte index 1f5950c3..ae41a269 100644 --- a/src/components/Byline/Byline.svelte +++ b/src/components/Byline/Byline.svelte @@ -1,4 +1,3 @@ - @@ -25,7 +20,6 @@
diff --git a/src/components/HeroHeadline/demo/graphics/crash.svelte b/src/components/HeroHeadline/demo/graphics/crash.svelte index 1fc73b82..ea7ca990 100644 --- a/src/components/HeroHeadline/demo/graphics/crash.svelte +++ b/src/components/HeroHeadline/demo/graphics/crash.svelte @@ -1,6 +1,6 @@ - @@ -18,7 +18,6 @@
@@ -30,7 +29,6 @@
@@ -42,7 +40,6 @@
@@ -54,7 +51,6 @@
@@ -66,7 +62,6 @@
diff --git a/src/components/Scroller/demo/components/ai2svelte/ai-scroller-2.svelte b/src/components/Scroller/demo/components/ai2svelte/ai-scroller-2.svelte index 021c14ec..18a5870f 100644 --- a/src/components/Scroller/demo/components/ai2svelte/ai-scroller-2.svelte +++ b/src/components/Scroller/demo/components/ai2svelte/ai-scroller-2.svelte @@ -1,4 +1,4 @@ - diff --git a/src/components/Scroller/demo/components/ai2svelte/ai-scroller-3.svelte b/src/components/Scroller/demo/components/ai2svelte/ai-scroller-3.svelte index bab2159e..33538e06 100644 --- a/src/components/Scroller/demo/components/ai2svelte/ai-scroller-3.svelte +++ b/src/components/Scroller/demo/components/ai2svelte/ai-scroller-3.svelte @@ -1,4 +1,4 @@ - diff --git a/src/components/SiteFooter/LegalLinks.svelte b/src/components/SiteFooter/LegalLinks.svelte index 0984115f..8a3d485a 100644 --- a/src/components/SiteFooter/LegalLinks.svelte +++ b/src/components/SiteFooter/LegalLinks.svelte @@ -37,7 +37,7 @@

All quotes delayed a minimum of 15 minutes. See here for a complete list of exchanges and delays.

diff --git a/src/components/Theme/@types/component.ts b/src/components/Theme/@types/component.ts index c3a8a6f6..7a0f889f 100644 --- a/src/components/Theme/@types/component.ts +++ b/src/components/Theme/@types/component.ts @@ -1,4 +1,4 @@ -interface Colour { +export interface Colour { background: string; 'text-primary': string; 'text-secondary': string; @@ -8,7 +8,7 @@ interface Colour { 'brand-shadow': string; } -interface FontFamily { +export interface FontFamily { serif: string; 'sans-serif': string; monospace: string; @@ -18,7 +18,7 @@ interface FontFamily { note: string; } -interface FontSize { +export interface FontSize { xxs: string; xs: string; sm: string; @@ -32,12 +32,12 @@ interface FontSize { '6xl': string; } -interface Font { +export interface Font { family: FontFamily; size: FontSize; } -interface CustomFont { +export interface CustomFont { family?: Partial; size?: Partial; } diff --git a/src/components/Theme/Theme.svelte b/src/components/Theme/Theme.svelte index f1d4da89..8185c7e4 100644 --- a/src/components/Theme/Theme.svelte +++ b/src/components/Theme/Theme.svelte @@ -4,15 +4,14 @@ import dark from './themes/dark.js'; /** * Pre-made themes you can import. - * @type {{ light, dark }} */ export const themes = { light, dark }; - - {#if visible} -

Visible!

- {:else} -

Not yet visible.

- {/if} + + {#snippet children(visible)} + {#if visible} +

Visible!

+ {:else} +

Not yet visible.

+ {/if} + {/snippet}
``` diff --git a/src/components/Visible/stories/snippets/default.svelte b/src/components/Visible/stories/snippets/default.svelte deleted file mode 100644 index e84555a3..00000000 --- a/src/components/Visible/stories/snippets/default.svelte +++ /dev/null @@ -1,13 +0,0 @@ - - - - {#snippet children({ visible })} - {#if visible} -

Visible!

- {:else} -

Not yet visible.

- {/if} - {/snippet} -
diff --git a/src/globals.d.ts b/src/globals.d.ts index 95acb207..d39fe602 100644 --- a/src/globals.d.ts +++ b/src/globals.d.ts @@ -32,4 +32,4 @@ declare global { } } -export {}; +export { }; diff --git a/src/index.js b/src/index.js index aaa8a3de..b0504362 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ // Actions -export { default as cssVariables } from './actions/cssVariables/index.js'; -export { default as resizeObserver } from './actions/resizeObserver/index.js'; +export { default as cssVariables } from './actions/cssVariables/index'; +export { default as resizeObserver } from './actions/resizeObserver/index'; // Components export { @@ -28,7 +28,7 @@ export { default as LeaderboardAd } from './components/AdSlot/LeaderboardAd.svel export { default as PaddingReset } from './components/PaddingReset/PaddingReset.svelte'; export { default as PhotoPack } from './components/PhotoPack/PhotoPack.svelte'; export { default as PymChild } from './components/PymChild/PymChild.svelte'; -export { pym } from './components/PymChild/state.svelte.js'; +export { pym } from './components/PymChild/state.svelte'; export { default as ReferralBlock } from './components/ReferralBlock/ReferralBlock.svelte'; export { default as ReutersGraphicsLogo } from './components/ReutersGraphicsLogo/ReutersGraphicsLogo.svelte'; export { default as ReutersLogo } from './components/ReutersLogo/ReutersLogo.svelte'; diff --git a/src/journalize.d.ts b/src/journalize.d.ts new file mode 100644 index 00000000..4f37650c --- /dev/null +++ b/src/journalize.d.ts @@ -0,0 +1,19 @@ +declare module 'journalize' { + /** + * Returns an AP-formatted date string that corresponds with the supplied + * Date. If an `input` is not passed, it will use the result of `new Date();`. + * + * @param date - The supplied Date + * @returns The converted date as a string + */ + export function apdate(date?: Date): string; + + /** + * Alters a string or number to include commas. If `val` is undefined or null, + * an empty string is returned. + * + * @param val The supplied value + * @returns The converted value + */ + export function intcomma(val: number | string): string; +} diff --git a/tsconfig.json b/tsconfig.json index 9e966673..f627b3e6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "./.svelte-kit/tsconfig.json", "compilerOptions": { + "lib": ["DOM", "ESNext"], "module": "ESNext", "target": "ESNext", "declaration": true, @@ -30,6 +31,7 @@ "*.ts", "*.js", "*.cjs", + "src/journalize.d.ts", "src/docs/**/*.css" ], "exclude": ["dist", "eslint.config.js", "bin/newComponent/template/**/*"]