@boltz.one/sdk-core
v0.1.1
Published
Core SDK (isomorphic): logger, result, errors, ids, time, events, config, iam-policy engine, api-client
Readme
@boltz.one/sdk-core
Core SDK isomorphic (chạy cả Node/Bun lẫn browser) của Boltz One: các tiện ích
nền tảng dùng chung cho cả backend (@boltz.one/sdk-server)
và frontend (@boltz.one/sdk-web).
Cài đặt
bun add @boltz.one/sdk-core @boltz.one/contracts zodEntry points
| Import | Nội dung |
| --- | --- |
| @boltz.one/sdk-core | Re-export: result, errors, ids, time, events, logger (adapter) |
| @boltz.one/sdk-core/result | Result/Ok/Err, ok/err, map/mapErr, unwrap/unwrapOr, isOk/isErr |
| @boltz.one/sdk-core/errors | DomainError, Errors |
| @boltz.one/sdk-core/ids | ulid, uuid, shortId, fnv1a |
| @boltz.one/sdk-core/time | now, isoNow, addSeconds/Minutes/Hours, diffSeconds, isExpired |
| @boltz.one/sdk-core/events | EventEmitter (event bus in-process) |
| @boltz.one/sdk-core/logger | Logger pino-style (createLogger, defaultLogger) — đọc process.env, dùng phía Node |
| @boltz.one/sdk-core/logger/structured | Logger sink-based (createLogger, createConsoleSink) — browser-safe |
| @boltz.one/sdk-core/logger/node | Sink ghi file NDJSON (Node-only) |
| @boltz.one/sdk-core/iam-policy | Policy engine: parser, compiler, evaluator, simulator, validators |
| @boltz.one/sdk-core/api-client | HTTP client (ApiClient) — problem-details, retry, idempotency, bearer token |
Sử dụng
import { ok, err, isOk } from '@boltz.one/sdk-core/result';
import { ulid } from '@boltz.one/sdk-core/ids';
const r = ok({ id: ulid() });
if (isOk(r)) console.log(r.value.id);Logger — chọn entry theo môi trường:
// Browser / isomorphic
import { createLogger, createConsoleSink } from '@boltz.one/sdk-core/logger/structured';
const log = createLogger({ service: 'web', sinks: [createConsoleSink()] });
// Node (pino-style, đọc process.env)
import { defaultLogger } from '@boltz.one/sdk-core/logger';Policy engine:
import { PolicyCompiler, PolicyEvaluator } from '@boltz.one/sdk-core/iam-policy';Browser-safe: entry chính và đa số subpath không import API Node. Các phần Node-only được tách riêng (
./logger,./logger/node) nên không lọt vào bundle browser.
License
MIT
