fiberx-backend-toolkit
v0.0.57
Published
A TypeScript backend toolkit providing shared domain logic, infrastructure helpers, and utilities for FiberX server-side applications and services.
Readme
FiberX Backend Toolkit
A comprehensive TypeScript backend toolkit providing shared domain logic, infrastructure helpers, and utilities for FiberX server-side applications and services.
Overview
The FiberX Backend Toolkit is a centralized library designed to streamline backend development across FiberX services. It provides database abstraction layers, migration management, utilities for common operations, and TypeScript type definitions for consistency across the ecosystem.
Features
- Database Management: Multi-connector support with Sequelize integration for ORM operations
- Schema Migration System: Automated schema management, migration generation, and execution
- Seeding Support: Database seeder generation and execution tools
- Utility Functions:
- Input validation and transformation
- Environment variable management
- SQL formatting and query building
- Structured logging with file persistence
- TypeScript Support: Fully typed exports for schema, migration, and utility types
- Flexible Exports: Modular exports for
utils,types, anddatabasemodules
Installation
npm install fiberx-backend-toolkitRequirements
- Node.js 20.x or higher
- npm or yarn package manager
Quick Start
Import Types
import type { SchemaInterface, MigrationInterface } from "fiberx-backend-toolkit/types";Import Utilities
import { LoggerUtil, InputValidatorUtil, EnvManagerUtil } from "fiberx-backend-toolkit/utils";
// Initialize logger
const logger = new LoggerUtil("my-module");
logger.info("Application started");
// Use environment manager
const apiKey = EnvManagerUtil.get("API_KEY");Database Operations
import { SequelizeConnector, MigrationRunnerScript } from "fiberx-backend-toolkit/database";
// Initialize database connector
const connector = new SequelizeConnector(config);
// Run migrations
const migrationRunner = new MigrationRunnerScript(connector);
await migrationRunner.run();Core Modules
Utilities (/src/utils)
- LoggerUtil: Structured logging with file-based persistence
- InputValidatorUtil: Input validation and sanitization
- InputTransformerUtil: Data transformation utilities
- EnvManagerUtil: Environment variable management and parsing
- SqlFormatterUtil: SQL query formatting and beautification
Database (/src/database)
Connectors
- BaseConnector: Abstract base class for database connections
- SequelizeConnector: Sequelize ORM connector implementation
Schema Utilities
- SchemaDiffUtil: Compare database schemas and detect changes
- SchemaNormalizerUtil: Normalize schema definitions for consistency
Scripts
- CreateSchemaScript: Generate initial database schema
- MakeMigrationsScript: Auto-generate migration files from schema changes
- MigrationRunnerScript: Execute pending database migrations
- CreateSeederScript: Generate seeder files for initial data
- SeederRunnerScript: Execute database seeders
Types (/src/types)
- SchemaInterface: Database schema type definitions
- MigrationInterface: Migration type definitions
- UtilInterface: Utility function types
Module Exports
The toolkit provides structured exports for easy integration:
// Main exports (all modules)
import * as toolkit from "fiberx-backend-toolkit";
// Utils only
import { LoggerUtil, InputValidatorUtil } from "fiberx-backend-toolkit/utils";
// Database only
import { SequelizeConnector, MigrationRunnerScript } from "fiberx-backend-toolkit/database";
// Types only
import type { SchemaInterface } from "fiberx-backend-toolkit/types";Configuration
The toolkit uses standardized directory conventions:
project_root/
├── logs/ # Log files directory
├── environment_variables/ # Environment variable files
├── src/database/
│ ├── schemas/ # Schema definitions
│ ├── schema_snapshots/ # Schema snapshots for comparison
│ ├── models/ # Sequelize models
│ ├── migrations/ # Database migrations
│ └── seeders/ # Database seedersDependencies
Core Dependencies
- sequelize: ^6.37.7 - SQL ORM
- sequelize-typescript: ^2.1.6 - TypeScript decorators for Sequelize
- axios: ^1.11.0 - HTTP client
- bcrypt: ^6.0.0 - Password hashing
- jsonwebtoken: ^9.0.2 - JWT handling
- dayjs: ^1.11.18 - Date/time utilities
- js-yaml: ^4.1.0 - YAML parsing
- uuid: ^12.0.0 - UUID generation
Build
npm run buildThe build process uses tsup for optimized TypeScript bundling.
API Documentation
LoggerUtil
const logger = new LoggerUtil("module-name");
logger.info("Information message");
logger.warn("Warning message");
logger.error("Error message");
logger.debug("Debug message");Logs are stored locally in the configured LOG_DIR.
InputValidatorUtil
Validates and sanitizes user inputs with built-in rules and custom validators.
EnvManagerUtil
const dbHost = EnvManagerUtil.get("DB_HOST", "localhost");
const dbPort = EnvManagerUtil.getAsNumber("DB_PORT", 5432);SequelizeConnector
Provides abstraction over Sequelize for database operations with connection pooling and query management.
Project Structure
fiberx-backend-toolkit/
├── src/
│ ├── code_templates/ # Code generation templates
│ ├── config/ # Configuration constants
│ ├── database/ # Database module
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions
│ └── index.ts # Main entry point
├── package.json
├── tsconfig.json
├── tsup.config.ts # Build configuration
└── README.mdLicense
ISC
Author
David Matt-Ojo
Repository
GitHub - fiberx-backend-toolkit
Support
For issues, bugs, or feature requests, please visit the issues page.
