docklet
v1.0.0
Published
Cross-runtime Base URL utility: resolve and build base URLs for Browser/Node/Bun/Deno.
Downloads
9
Maintainers
Readme
Docklet – Cross-Runtime Base URL Utilities
Docklet is a tiny, zero-dependency TypeScript library for resolving and building base URLs across runtimes — Browser, Node, Bun, and Deno.
It’s framework-agnostic, deterministic, and supports optional adapters for import.meta.env.
Installation
# Using Bun
bun add docklet
# Using npm
npm i dockletQuick Start
import { getBaseUrl, buildUrl } from "docklet"
// KAZVIZIAN_BASE_URL=https://api.example.com
const url = buildUrl(getBaseUrl(), "v1", "users")API Overview
setBaseUrl(url?)/getBaseUrl(preferred?)setBaseUrlFor(name, url?)/getBaseUrlFor(name, preferred?)buildUrl(base, ...parts)createBaseUrlManager(initial?)setBaseUrlFromImportMetaEnv(env, options?)
Resolution Order
- Preferred argument
- In-memory override
globalThis.KAZVIZIAN_BASE_URLS- Environment variables (
NAME_BASE_URL,KAZVIZIAN_BASE_URL,BASE_URL) - Adapter (
import.meta.env) - Fallback: empty string
Examples
Vite
import { setBaseUrlFromImportMetaEnv } from "docklet"
setBaseUrlFromImportMetaEnv(import.meta.env)Multiple Services
import { setBaseUrlFor, getBaseUrlFor, buildUrl } from "docklet"
setBaseUrlFor("content", "https://content.example.com")
const url = buildUrl(getBaseUrlFor("content"), "assets", "logo.png")CI/CD
Automated versioning and publishing are handled via GitHub Actions:
- Automatic release on push/merge to
mainusingsemantic-release - Manual release via workflow dispatch (
release-manual.yml) with dry-run and dist-tag options
Prerequisites
- Repository secrets:
NPM_TOKEN(automation token) andGITHUB_TOKEN - Use Conventional Commits for semantic versioning
Local Development
bun run build
bun test
bun x semantic-release --dry-runLicense
MIT © KazViz
