Shared TypeScript utilities, types, and error classes for the Esposter platform. Works in both browser and server environments.
pnpm i @esposter/shared
We highly recommend you take a look at the documentation to level up.
import { InvalidOperationError, NotFoundError, ForbiddenError, NotInitializedError } from "@esposter/shared";
throw new InvalidOperationError(Operation.Read, file.name, zodError.message);
import { takeOne } from "@esposter/shared";
// Safe index access — throws on out-of-bounds instead of returning undefined
const first = takeOne(items, 0);
import type { ToData, DeepOmit, GetPaths } from "@esposter/shared";
// ToData<T> — strips class methods, returns plain data shape
type RawColumn = ToData<Column>;
import { toRawDeep, getRawData } from "@esposter/shared";
// Recursively unwrap Vue reactive proxies
const raw = toRawDeep(reactiveObject);
import { capitalize, truncate, toKebabCase } from "@esposter/shared";
import { getResult, getResultAsync, withFinalizer } from "@esposter/shared";
Run from packages/shared/:
pnpm build # compile to dist/
pnpm test # vitest watch mode
pnpm coverage # vitest run --coverage
pnpm lint:fix # auto-fix lint
pnpm typecheck # type check
This project is licensed under the Apache-2.0 license.