Skip to content

Helpers ​

Standalone utility classes for infrastructure concerns - extend BaseHelper for scoped logging, and inject them wherever you need them.

Every peer dependency below is optional. You install one only when you use the helper that needs it.

HelperWhat it doesWhen you reach for itPeer dependency
TypesShared utility typesYou need IGNIS's shared TypeScript utility typesNone
CronScheduled tasksYou run code on a cron schedulecron
CryptoEncryption and signingYou hash, encrypt, or sign dataNone
EnvironmentEnv var managementYou need typed, validated env var accessNone
ErrorError utilitiesYou throw or handle an errorNone
Secrets & VaultSecrets and credentialsYou read config or credentials from Vault or a vaulted .envnode-vault or @dotenvx/dotenvx
InversionDI containerYou build custom bindings or providersNone
LoggerLoggingYou need scoped, leveled loggingwinston or pino
NetworkHTTP/TCP/UDP clientsYou call another service over HTTP, TCP, or UDPaxios, for the Axios client only
KafkaKafka messagingYou publish or consume Kafka topics@platformatic/kafka
QueueJob queuesYou need background or delayed workbullmq or mqtt
RedisRedis clientYou need a Redis connection - cache, pub/sub, locksioredis
Socket.IOSocket.IO serverYou build a custom real-time featuresocket.io
WebSocketWebSocket serverYou build a custom real-time featureNone
StorageFile storageYou read/write files to S3 or disk directlynone - the S3 backend uses Bun's own client
TemporalDates in a time zoneYou parse, format, or add a month to a date in a named zoneNone - you pass in your own date library
UIDSnowflake IDsYou need unique, sortable IDsNone
Worker ThreadWorker poolsYou move CPU-heavy work off the main threadNone

Subpath imports ​

A helper with an optional peer dependency ships from its own subpath, so a bundler never pulls in a peer you don't use.

Import fromRequires
@venizia/ignis-helpers/croncron
@venizia/ignis-helpers/axiosaxios
@venizia/ignis-helpers/kafka@platformatic/kafka
@venizia/ignis-helpers/bullmqbullmq
@venizia/ignis-helpers/mqttmqtt
@venizia/ignis-helpers/socket-iosocket.io; socket.io-client only for SocketIOClientHelper, loaded when it configures
@venizia/ignis-helpers/miniominio
@venizia/ignis-helpers/bun-s3none - Bun native
@venizia/ignis-helpers/hashicorp-vaultnode-vault
@venizia/ignis-helpers/dotenv-vault@dotenvx/dotenvx
@venizia/ignis-helpers/winstonwinston
@venizia/ignis-helpers/pinopino

Four more subpaths are of a different kind. They isolate no peer dependency - they expose the parts of this package that are already browser-safe.

Import fromHolds
@venizia/ignis-helpers/commonConstants and pure types: HTTP, GRPC, TConstValue, the duration and mime tables, the redaction helpers
@venizia/ignis-helpers/coreBrowser-safe runtime classes: BaseHelper, the error module, RetryHelper, TemporalHelper, TreeBuilder, TreeWalker, SlugHelper, UrlPolicy, BuildInfoRegistry, ProjectRootRegistry, and the parse utilities
@venizia/ignis-helpers/temporalTemporalHelper and its adapters alone
@venizia/ignis-helpers/uuiduuidV4, uuidV5, uuidV7 and UuidHelper alone - see UID

Import one of them when your code has to bundle for a browser.

The root barrel cannot: it re-exports every module, so reaching one constant through it pulls in 14 node builtins - node:fs, node:net, node:tls, node:worker_threads among them. A guard test bundles both entry points for a browser target and fails if that ever changes.

/core is hand-curated one symbol at a time, never export * from a module barrel. ./modules/env carries applicationEnvironment, which reads process.env, so only EnvironmentNames crosses over. UrlPolicy crosses, its UrlIngest sibling does not, because UrlIngest reaches node:dns.

typescript
import { HTTP } from '@venizia/ignis-helpers/common';
import { RetryHelper } from '@venizia/ignis-helpers/core';

See also ​