Skip to content

sovereignbase/utils

npm version CI codecov license

utils

Shared TypeScript utilities for removing repeated code across Sovereignbase codebases.

Compatibility

  • 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: structuredClone is required for successful safeStructuredClone() results.
  • Browser capability checks: browserHasSovereignbaseDependencies() resolves to false outside secure browser contexts and when required browser APIs are missing.
  • TypeScript: bundled types.

Goals

  • 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.

Installation

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/utils

Usage

prototype()

import { 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.

isUuidV7()

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.

safeStructuredClone()

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.

getISO31661Alpha2CountryCodeSet()

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.

browserHasSovereignbaseDependencies()

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.

afterIdleFor()

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.

Tests

  • Latest local npm run test run passed on Node v22.14.0.
  • Node unit suite: 11/11 passed.
  • Node integration suite: 2/2 passed.
  • Coverage: 100% statements, branches, functions, and lines.
  • Runtime E2E: Node ESM 12/12 passed.
  • Runtime E2E: Node CJS 12/12 passed.
  • Runtime E2E: Bun ESM 12/12 passed.
  • Runtime E2E: Bun CJS 12/12 passed.
  • Runtime E2E: Deno ESM 12/12 passed.
  • Runtime E2E: Cloudflare Workers ESM 12/12 passed.
  • Runtime E2E: Edge Runtime ESM 12/12 passed.
  • Browser E2E: 5/5 Playwright projects passed (chromium, firefox, webkit, mobile-chrome, mobile-safari).

Benchmarks

  • Latest local npm run bench run: Node v22.14.0 on win32 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.

License

Apache-2.0

About

Shared TypeScript utilities for removing repeated code across Sovereignbase codebases.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors