Skip to content

Commit b1aa00c

Browse files
committed
feat: remove number to words formatter and update related components
1 parent b0b0b86 commit b1aa00c

File tree

3 files changed

+8
-49
lines changed

3 files changed

+8
-49
lines changed

src/lib/utils/formatters.ts

-43
Original file line numberDiff line numberDiff line change
@@ -8,46 +8,3 @@ export function percentageFormatter(value: number, maximumFractionDigits: number
88
export function capitalizeFirstLetter(sentence: string): string {
99
return sentence.length ? sentence.charAt(0).toUpperCase() + sentence.slice(1) : sentence;
1010
}
11-
12-
export function numberToWords(num: number): string {
13-
if (num < 0 || num > 999) throw new Error('Number out of range (0–999)');
14-
15-
const ones = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
16-
const teens = [
17-
'eleven',
18-
'twelve',
19-
'thirteen',
20-
'fourteen',
21-
'fifteen',
22-
'sixteen',
23-
'seventeen',
24-
'eighteen',
25-
'nineteen'
26-
];
27-
const tens = [
28-
'ten',
29-
'twenty',
30-
'thirty',
31-
'forty',
32-
'fifty',
33-
'sixty',
34-
'seventy',
35-
'eighty',
36-
'ninety'
37-
];
38-
39-
if (num < 10) return ones[num];
40-
if (num > 10 && num < 20) return teens[num - 11];
41-
if (num >= 10 && num < 100) {
42-
return num % 10 === 0
43-
? tens[Math.floor(num / 10) - 1]
44-
: `${tens[Math.floor(num / 10) - 1]}-${ones[num % 10]}`;
45-
}
46-
47-
// Handling 100–999
48-
const hundredPart = ones[Math.floor(num / 100)] + ' hundred';
49-
const remainder = num % 100;
50-
51-
if (remainder === 0) return hundredPart;
52-
return `${hundredPart} and ${numberToWords(remainder)}`;
53-
}

src/routes/team/[team]/+page.svelte

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import { Alert, Heading } from '@nais/ds-svelte-community';
1010
1111
import WorkloadLink from '$lib/components/WorkloadLink.svelte';
12-
import { numberToWords } from '$lib/utils/formatters';
1312
import type { PageProps } from './$houdini';
1413
1514
let { data }: PageProps = $props();
@@ -42,7 +41,7 @@
4241
rel="noopener noreferrer">Read more in Nais announcement</a
4342
>.
4443
<p>
45-
{teamSlug} currently has {numberToWords(deprecatedImages.length)}
44+
{teamSlug} currently has {deprecatedImages.length}
4645
workload{deprecatedImages.length === 1 ? '' : 's'} using
4746
{deprecatedImages.length === 1
4847
? 'a deprecated image registry'

src/routes/team/[team]/overview/+page.svelte

+7-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import TeamUtilizationAndOverage from '$lib/components/TeamUtilizationAndOverage.svelte';
88
import VulnerabilitySummaryNew from '$lib/components/VulnerabilitySummaryNew.svelte';
99
import { envTagVariant } from '$lib/envTagVariant';
10-
import { capitalizeFirstLetter, numberToWords } from '$lib/utils/formatters';
1110
import type { PageData } from './$houdini';
1211
1312
interface Props {
@@ -54,8 +53,10 @@
5453
<Heading level="4" size="small" spacing>Todos</Heading>
5554
{#if workloadsVulnerable?.length}
5655
<BodyShort>
57-
{capitalizeFirstLetter(numberToWords(workloadsVulnerable?.length))} of your workload's risk
58-
score exceeds the acceptable threshold of 100. Please keep your dependencies up to date.
56+
{workloadsVulnerable?.length} of your workload's risk scores exceed{workloadsVulnerable?.length ===
57+
0
58+
? ''
59+
: 's'} the acceptable threshold of 100. Please keep your dependencies up to date.
5960
</BodyShort>
6061
<ul>
6162
{#each workloadsVulnerable as workload (workload.id)}
@@ -80,7 +81,9 @@
8081

8182
{#if workloadWithoutSbom?.length}
8283
<BodyShort>
83-
{capitalizeFirstLetter(numberToWords(workloadWithoutSbom?.length))} of your workloads does
84+
{workloadWithoutSbom?.length} of your workloads {workloadWithoutSbom?.length === 1
85+
? 'does'
86+
: 'do'}
8487
not have a registered Software Bill of Materials (SBOM). Refer to the Nais documentation
8588
for instructions on how to resolve this.
8689
<ul>

0 commit comments

Comments
 (0)