diff --git a/packages/use-i18n/src/formatUnit.ts b/packages/use-i18n/src/formatUnit.ts index c02129c66..c66becd76 100644 --- a/packages/use-i18n/src/formatUnit.ts +++ b/packages/use-i18n/src/formatUnit.ts @@ -81,8 +81,9 @@ const formatShortUnit = ( shortenedUnit = symbols.short.octet } - return `${exponent.symbol}${shortenedUnit}${compoundUnit ? compoundUnitsSymbols[compoundUnit] : '' - }` + return `${exponent.symbol}${shortenedUnit}${ + compoundUnit ? compoundUnitsSymbols[compoundUnit] : '' + }` } const formatLongUnit = ( @@ -99,21 +100,22 @@ const formatLongUnit = ( ) { translation = localesWhoFavorOctetOverByte[ - locale as keyof typeof localesWhoFavorOctetOverByte + locale as keyof typeof localesWhoFavorOctetOverByte ] } - return `${exponent.name}${formatters - .getTranslationFormat( - `{amount, plural, + return `${exponent.name}${ + formatters + .getTranslationFormat( + `{amount, plural, =0 {${translation.singular}} =1 {${translation.singular}} other {${translation.plural}} }`, - locale, - ) - .format({ amount }) as string - }` + locale, + ) + .format({ amount }) as string + }` } const format = @@ -128,71 +130,73 @@ const format = exponent?: Exponent humanize?: boolean }) => - ( - locale: string, - amount: number, - { - maximumFractionDigits, - minimumFractionDigits, - short = true, - base = 10, - }: { - maximumFractionDigits?: number - minimumFractionDigits?: number - short?: boolean - base?: 2 | 10 - }, - ): string => { - let computedExponent = exponent - let computedValue = amount + ( + locale: string, + amount: number, + { + maximumFractionDigits, + minimumFractionDigits, + short = true, + base = 10, + }: { + maximumFractionDigits?: number + minimumFractionDigits?: number + short?: boolean + base?: 2 | 10 + }, + ): string => { + let computedExponent = exponent + let computedValue = amount - if (humanize) { - if (computedExponent) { - const value = filesize(amount, { - base, - exponent: exponents.findIndex( - exp => exp.name === (computedExponent as Exponent).name, - ), - output: 'object', - round: maximumFractionDigits, - }) + if (humanize) { + if (computedExponent) { + const value = filesize(amount, { + base, + exponent: exponents.findIndex( + exp => exp.name === (computedExponent as Exponent).name, + ), + output: 'object', + round: maximumFractionDigits, + }) - computedValue = Number.parseFloat(value.value.toString()) - } else { - const value = filesize(amount, { - base, - output: 'object', - round: maximumFractionDigits, - }) + computedValue = Number.parseFloat(value.value.toString()) + } else { + const value = filesize(amount, { + base, + output: 'object', + round: maximumFractionDigits, + }) - computedExponent = exponents[value.exponent] - computedValue = Number.parseFloat(value.value.toString()) - } + computedExponent = exponents[value.exponent] + computedValue = Number.parseFloat(value.value.toString()) } + } - return `${new Intl.NumberFormat(locale, { - maximumFractionDigits, - minimumFractionDigits, - }).format(computedValue)} ${short + return `${new Intl.NumberFormat(locale, { + maximumFractionDigits, + minimumFractionDigits, + }).format(computedValue)} ${ + short ? formatShortUnit( - locale, - computedExponent as Exponent, - unit, - compoundUnit, - ) + locale, + computedExponent as Exponent, + unit, + compoundUnit, + ) : formatLongUnit( - locale, - computedExponent as Exponent, - unit, - computedValue, - ) - }` - } + locale, + computedExponent as Exponent, + unit, + computedValue, + ) + }` + } type SimpleUnits = `${ExponentName}${Unit}${'-humanized' | ''}` type ComplexUnits = `${Unit}${'s' | ''}${'-humanized' | ''}` -// eslint-disable-next-line @stylistic/space-infix-ops -type PerSecondUnit = `${ExponentName | ''}bit${'s' | ''}${'-per-second' | ''}${| '-humanized' | ''}` + +type PerSecondUnit = + `${ExponentName | ''}bit${'s' | ''}${'-per-second' | ''}${'-humanized' | ''}` type SupportedUnits = SimpleUnits | ComplexUnits | PerSecondUnit export const supportedUnits: Partial< diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70fd79e98..210c79a64 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,8 +25,8 @@ catalogs: specifier: 7.27.1 version: 7.27.1 '@biomejs/biome': - specifier: 2.1.2 - version: 2.1.2 + specifier: 2.2.2 + version: 2.2.2 '@changesets/changelog-github': specifier: 0.5.1 version: 0.5.1 @@ -247,7 +247,7 @@ importers: version: 7.27.1(@babel/core@7.28.3) '@biomejs/biome': specifier: 'catalog:' - version: 2.1.2 + version: 2.2.2 '@changesets/changelog-github': specifier: 'catalog:' version: 0.5.1 @@ -1194,55 +1194,55 @@ packages: resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} - '@biomejs/biome@2.1.2': - resolution: {integrity: sha512-yq8ZZuKuBVDgAS76LWCfFKHSYIAgqkxVB3mGVVpOe2vSkUTs7xG46zXZeNPRNVjiJuw0SZ3+J2rXiYx0RUpfGg==} + '@biomejs/biome@2.2.2': + resolution: {integrity: sha512-j1omAiQWCkhuLgwpMKisNKnsM6W8Xtt1l0WZmqY/dFj8QPNkIoTvk4tSsi40FaAAkBE1PU0AFG2RWFBWenAn+w==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.1.2': - resolution: {integrity: sha512-leFAks64PEIjc7MY/cLjE8u5OcfBKkcDB0szxsWUB4aDfemBep1WVKt0qrEyqZBOW8LPHzrFMyDl3FhuuA0E7g==} + '@biomejs/cli-darwin-arm64@2.2.2': + resolution: {integrity: sha512-6ePfbCeCPryWu0CXlzsWNZgVz/kBEvHiPyNpmViSt6A2eoDf4kXs3YnwQPzGjy8oBgQulrHcLnJL0nkCh80mlQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.1.2': - resolution: {integrity: sha512-Nmmv7wRX5Nj7lGmz0FjnWdflJg4zii8Ivruas6PBKzw5SJX/q+Zh2RfnO+bBnuKLXpj8kiI2x2X12otpH6a32A==} + '@biomejs/cli-darwin-x64@2.2.2': + resolution: {integrity: sha512-Tn4JmVO+rXsbRslml7FvKaNrlgUeJot++FkvYIhl1OkslVCofAtS35MPlBMhXgKWF9RNr9cwHanrPTUUXcYGag==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.1.2': - resolution: {integrity: sha512-qgHvafhjH7Oca114FdOScmIKf1DlXT1LqbOrrbR30kQDLFPEOpBG0uzx6MhmsrmhGiCFCr2obDamu+czk+X0HQ==} + '@biomejs/cli-linux-arm64-musl@2.2.2': + resolution: {integrity: sha512-/MhYg+Bd6renn6i1ylGFL5snYUn/Ct7zoGVKhxnro3bwekiZYE8Kl39BSb0MeuqM+72sThkQv4TnNubU9njQRw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@2.1.2': - resolution: {integrity: sha512-NWNy2Diocav61HZiv2enTQykbPP/KrA/baS7JsLSojC7Xxh2nl9IczuvE5UID7+ksRy2e7yH7klm/WkA72G1dw==} + '@biomejs/cli-linux-arm64@2.2.2': + resolution: {integrity: sha512-JfrK3gdmWWTh2J5tq/rcWCOsImVyzUnOS2fkjhiYKCQ+v8PqM+du5cfB7G1kXas+7KQeKSWALv18iQqdtIMvzw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@2.1.2': - resolution: {integrity: sha512-xlB3mU14ZUa3wzLtXfmk2IMOGL+S0aHFhSix/nssWS/2XlD27q+S6f0dlQ8WOCbYoXcuz8BCM7rCn2lxdTrlQA==} + '@biomejs/cli-linux-x64-musl@2.2.2': + resolution: {integrity: sha512-ZCLXcZvjZKSiRY/cFANKg+z6Fhsf9MHOzj+NrDQcM+LbqYRT97LyCLWy2AS+W2vP+i89RyRM+kbGpUzbRTYWig==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@2.1.2': - resolution: {integrity: sha512-Km/UYeVowygTjpX6sGBzlizjakLoMQkxWbruVZSNE6osuSI63i4uCeIL+6q2AJlD3dxoiBJX70dn1enjQnQqwA==} + '@biomejs/cli-linux-x64@2.2.2': + resolution: {integrity: sha512-Ogb+77edO5LEP/xbNicACOWVLt8mgC+E1wmpUakr+O4nKwLt9vXe74YNuT3T1dUBxC/SnrVmlzZFC7kQJEfquQ==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@2.1.2': - resolution: {integrity: sha512-G8KWZli5ASOXA3yUQgx+M4pZRv3ND16h77UsdunUL17uYpcL/UC7RkWTdkfvMQvogVsAuz5JUcBDjgZHXxlKoA==} + '@biomejs/cli-win32-arm64@2.2.2': + resolution: {integrity: sha512-wBe2wItayw1zvtXysmHJQoQqXlTzHSpQRyPpJKiNIR21HzH/CrZRDFic1C1jDdp+zAPtqhNExa0owKMbNwW9cQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.1.2': - resolution: {integrity: sha512-9zajnk59PMpjBkty3bK2IrjUsUHvqe9HWwyAWQBjGLE7MIBjbX2vwv1XPEhmO2RRuGoTkVx3WCanHrjAytICLA==} + '@biomejs/cli-win32-x64@2.2.2': + resolution: {integrity: sha512-DAuHhHekGfiGb6lCcsT4UyxQmVwQiBCBUMwVra/dcOSs9q8OhfaZgey51MlekT3p8UwRqtXQfFuEJBhJNdLZwg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -5879,39 +5879,39 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@biomejs/biome@2.1.2': + '@biomejs/biome@2.2.2': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.1.2 - '@biomejs/cli-darwin-x64': 2.1.2 - '@biomejs/cli-linux-arm64': 2.1.2 - '@biomejs/cli-linux-arm64-musl': 2.1.2 - '@biomejs/cli-linux-x64': 2.1.2 - '@biomejs/cli-linux-x64-musl': 2.1.2 - '@biomejs/cli-win32-arm64': 2.1.2 - '@biomejs/cli-win32-x64': 2.1.2 + '@biomejs/cli-darwin-arm64': 2.2.2 + '@biomejs/cli-darwin-x64': 2.2.2 + '@biomejs/cli-linux-arm64': 2.2.2 + '@biomejs/cli-linux-arm64-musl': 2.2.2 + '@biomejs/cli-linux-x64': 2.2.2 + '@biomejs/cli-linux-x64-musl': 2.2.2 + '@biomejs/cli-win32-arm64': 2.2.2 + '@biomejs/cli-win32-x64': 2.2.2 - '@biomejs/cli-darwin-arm64@2.1.2': + '@biomejs/cli-darwin-arm64@2.2.2': optional: true - '@biomejs/cli-darwin-x64@2.1.2': + '@biomejs/cli-darwin-x64@2.2.2': optional: true - '@biomejs/cli-linux-arm64-musl@2.1.2': + '@biomejs/cli-linux-arm64-musl@2.2.2': optional: true - '@biomejs/cli-linux-arm64@2.1.2': + '@biomejs/cli-linux-arm64@2.2.2': optional: true - '@biomejs/cli-linux-x64-musl@2.1.2': + '@biomejs/cli-linux-x64-musl@2.2.2': optional: true - '@biomejs/cli-linux-x64@2.1.2': + '@biomejs/cli-linux-x64@2.2.2': optional: true - '@biomejs/cli-win32-arm64@2.1.2': + '@biomejs/cli-win32-arm64@2.2.2': optional: true - '@biomejs/cli-win32-x64@2.1.2': + '@biomejs/cli-win32-x64@2.2.2': optional: true '@changesets/apply-release-plan@7.0.12': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 019b763d9..7c1b8e2a9 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -8,7 +8,7 @@ catalog: '@babel/preset-env': 7.28.3 '@babel/preset-react': 7.27.1 '@babel/preset-typescript': 7.27.1 - '@biomejs/biome': 2.1.2 + '@biomejs/biome': 2.2.2 '@changesets/changelog-github': 0.5.1 '@changesets/cli': 2.29.6 '@commitlint/cli': 19.8.1