Shared TypeScript utilities for removing repeated code across Sovereignbase codebases.
- Runtimes: modern JavaScript runtimes; the repository includes runtime compatibility tests for Node, Bun, Deno, Cloudflare Workers, Edge Runtime, and browsers.
- Module format: ESM and CommonJS.
- Required globals / APIs:
structuredCloneis required for successfulsafeStructuredClone()results. - Browser capability checks:
browserHasSovereignbaseDependencies()resolves tofalseoutside secure browser contexts and when required browser APIs are missing. - TypeScript: bundled types.
- Remove repeated utility code from Sovereignbase repositories.
- Keep shared helpers small, explicit, and side-effect free.
- Validate behavior across the runtimes used in Sovereignbase projects.
npm install @sovereignbase/utils
# or
pnpm add @sovereignbase/utils
# or
yarn add @sovereignbase/utils
# or
bun add @sovereignbase/utils
# or
deno add jsr:@sovereignbase/utils
# or
vlt install jsr:@sovereignbase/utilsimport { prototype } from '@sovereignbase/utils'
prototype(null) // 'null'
prototype({ ok: true }) // 'record'
prototype(new URL('https://sovereignbase.dev')) // 'url'Returns a normalized lowercase runtime tag for common primitives, serializable built-ins, and selected platform objects.
import { isUuidV7 } from '@sovereignbase/utils'
const value = '018f0d1e-6c82-7d4b-91c1-8a7b5e2f4a10'
if (isUuidV7(value)) {
value // string, confirmed UUID v7
}Checks that a value is a syntactically valid UUID version 7 string.
import { safeStructuredClone } from '@sovereignbase/utils'
const result = safeStructuredClone({ ok: true, nested: { count: 1 } })
if (result[0]) {
const clone = result[1]
clone // deep cloned value
}Attempts a structured clone and returns a tuple instead of throwing on unsupported values.
import {
type ISO31661Alpha2,
getISO31661Alpha2CountryCodeSet,
} from '@sovereignbase/country-codes'
function epicFunction1(countryCode: ISO31661Alpha2) {
const countryCodes = getISO31661Alpha2CountryCodeSet()
const isCountryCode = countryCodes.has(countryCode)
if (!isCountryCode) throw new Error('THAT IS NOT A COUNTRY CODE DUDE!')
console.log('EPIC COUNTRY CODE MOMENT:', countryCode)
}Returns a fresh Set containing all supported ISO 3166-1 alpha-2 country codes.
import { browserHasSovereignbaseDependencies } from '@sovereignbase/utils'
if (await browserHasSovereignbaseDependencies()) {
console.log('browser runtime supports Sovereignbase dependencies')
}Checks whether the current browser environment exposes the secure-context, storage, worker, notification, Web Crypto, and WebAuthn APIs required by Sovereignbase browser features.
import { afterIdleFor } from '@sovereignbase/utils'
const saveAfterTypingStops = afterIdleFor(500, () => {
console.log('save draft')
})
document.addEventListener('input', saveAfterTypingStops)Creates a function that resets a timer on every call and runs the callback after the requested idle timeout.
- Latest local
npm run testrun passed on Nodev22.14.0. - Node unit suite:
11/11passed. - Node integration suite:
2/2passed. - Coverage:
100%statements, branches, functions, and lines. - Runtime E2E: Node ESM
12/12passed. - Runtime E2E: Node CJS
12/12passed. - Runtime E2E: Bun ESM
12/12passed. - Runtime E2E: Bun CJS
12/12passed. - Runtime E2E: Deno ESM
12/12passed. - Runtime E2E: Cloudflare Workers ESM
12/12passed. - Runtime E2E: Edge Runtime ESM
12/12passed. - Browser E2E:
5/5Playwright projects passed (chromium,firefox,webkit,mobile-chrome,mobile-safari).
- Latest local
npm run benchrun: Nodev22.14.0onwin32 x64. prototype(record):13,677,842 ops/sec(146.2 ms).prototype(url):6,227,323 ops/sec(321.2 ms).isUuidV7(valid):6,074,829 ops/sec(164.6 ms).isUuidV7(invalid):6,717,126 ops/sec(148.9 ms).getISO31661Alpha2CountryCodeSet():82,029 ops/sec(609.5 ms).safeStructuredClone(record):197,265 ops/sec(1267.3 ms).safeStructuredClone(function):49,716 ops/sec(5028.6 ms).afterIdleFor(callback):3,160,526 ops/sec(31.6 ms).- Results vary by machine.
Apache-2.0