@voilajsx/appkit
Version:
Minimal and framework agnostic Node.js toolkit designed for AI agentic backend development
97 lines • 4.26 kB
TypeScript
/**
* Ultra-simple utilities that just work
* @module @voilajsx/appkit/util
* @file src/util/index.ts
*
* @llm-rule WHEN: Building apps that need common utility functions (get, chunk, slugify, debounce, etc.)
* @llm-rule AVOID: Manual utility implementation - this provides tested, optimized functions with edge cases handled
* @llm-rule NOTE: Common pattern - utilclass.get() → util.get() → util.chunk() → util.slugify()
* @llm-rule NOTE: 12 essential utilities: get, isEmpty, slugify, chunk, debounce, pick, unique, clamp, formatBytes, truncate, sleep, uuid
*/
import { UtilClass } from './util.js';
import { type UtilConfig } from './defaults.js';
/**
* Get utility instance - the only function you need to learn
* Environment variables parsed once for performance
* @llm-rule WHEN: Starting any utility operation - this is your main entry point
* @llm-rule AVOID: Calling new UtilClass() directly - always use this function
* @llm-rule NOTE: Typical flow - get() → util.get() → util.chunk() → util.slugify()
*/
declare function get(overrides?: Partial<UtilConfig>): UtilClass;
/**
* Reset global instance (useful for testing or config changes)
* @llm-rule WHEN: Testing utility logic with different configurations
* @llm-rule AVOID: Using in production - only for tests and development
*/
declare function reset(newConfig?: Partial<UtilConfig>): UtilClass;
/**
* Clear the cached utility instance
* @llm-rule WHEN: Testing or when you need to reload environment variables
* @llm-rule AVOID: Using in production - only for tests and development
*/
declare function clearCache(): void;
/**
* Get current utility configuration for inspection
* @llm-rule WHEN: Debugging utility behavior or documenting utility configuration
* @llm-rule AVOID: Using for runtime utility decisions - use get() instead
*/
declare function getConfig(): UtilConfig;
/**
* Check if running in development mode (affects utility logging)
* @llm-rule WHEN: Need to conditionally add debug information to utility operations
* @llm-rule AVOID: Manual NODE_ENV checks - use this for consistency
*/
declare function isDevelopment(): boolean;
/**
* Check if running in production mode (affects utility performance optimizations)
* @llm-rule WHEN: Need to conditionally enable performance optimizations
* @llm-rule AVOID: Manual NODE_ENV checks - use this for consistency
*/
declare function isProduction(): boolean;
/**
* Get utility status for health checks and monitoring
* @llm-rule WHEN: Building health check endpoints or utility monitoring
* @llm-rule AVOID: Exposing internal utility details - this only shows availability
*/
declare function getStatus(): {
cacheEnabled: boolean;
performance: boolean;
environment: string;
version: string;
};
/**
* Quick utility setup helper for common patterns
* @llm-rule WHEN: Setting up utilities with custom configuration quickly
* @llm-rule AVOID: Using without understanding - review configuration for your needs
* @llm-rule NOTE: Returns utility instance with optimized settings for common use cases
*/
declare function quickSetup(options?: {
performance?: boolean;
cache?: boolean;
debug?: boolean;
}): UtilClass;
/**
* Validate utility configuration at startup
* @llm-rule WHEN: App startup to ensure utility config is valid
* @llm-rule AVOID: Using in request handlers - expensive validation
* @llm-rule NOTE: Validates performance settings and cache configuration
*/
declare function validateConfig(): void;
/**
* Single utility export with enhanced functionality
*/
export declare const utilClass: {
readonly get: typeof get;
readonly reset: typeof reset;
readonly clearCache: typeof clearCache;
readonly getConfig: typeof getConfig;
readonly isDevelopment: typeof isDevelopment;
readonly isProduction: typeof isProduction;
readonly quickSetup: typeof quickSetup;
readonly validateConfig: typeof validateConfig;
readonly getStatus: typeof getStatus;
};
export type { UtilConfig } from './defaults.js';
export type { GetOptions, ChunkOptions, TruncateOptions, DebounceOptions, FormatBytesOptions, SlugifyOptions, } from './util.js';
export { UtilClass } from './util.js';
//# sourceMappingURL=index.d.ts.map