@primexop/pbk v1.0.10
Primexop Backend Kit (PBK) š
A powerful TypeScript utility for managing backend projects with features like B2F Portal integration, cross-project validation, and Next.js support.
š¦ Features
- š§ Project configuration management with TypeScript support
- š B2F Portal integration support
- š Cross-project import validation
- š» VSCode integration with JSON schema validation
- š ļø CLI tools for project management
- ā” Next.js patch support for specific sections
- š Shared backend path configuration
š Quick Start
Installation
npm install @primexop/pbk --save-devBasic Usage
import { pbkInit } from '@primexop/pbk';
// Initialize with default config path (pbk.config.json in current directory)
const config = pbkInit();
// Or specify a custom config path
const config = pbkInit({ configPath: './custom/path/config.json' });š Requirements
- Node.js >= 16.0.0
- TypeScript >= 5.8.3
āļø Configuration
Create a pbk.config.json file in your project root:
{
"projects": [
{
"projectName": "My Project",
"projectBaseDirPath": "/path/to/project",
"sharedBackendPath": "/path/to/shared-backend",
"sections": [
{
"sectionName": "API",
"repository": {
"name": "my-api",
"path": "https://github.com/organization/my-api"
},
"localPath": "/path/to/api",
"isZodCreator": true,
"needNextJsPatch": false
}
]
}
],
"b2fPortal": false,
"checkCrossProjectImports": true
}š Configuration Options
Project Configuration
projectName: Name of your projectprojectBaseDirPath: Base directory path for the projectsharedBackendPath: (Optional) Path to shared backend codesections: Array of project sections
Section Configuration
sectionName: Name of the sectionrepository: Repository informationname: Repository namepath: Repository URL
localPath: Local path where the section code residesisZodCreator: Whether the section uses Zod for validationneedNextJsPatch: (Optional) Whether the section needs Next.js patch
Global Configuration
b2fPortal: Enable/disable B2F Portal integrationcheckCrossProjectImports: Enable/disable cross-project import validation
š§ VSCode Integration
This package includes JSON schema validation for your configuration file. To enable auto-completion and validation in VSCode:
- Install the "JSON Language Support" extension in VSCode
- Add this to your VSCode settings.json:
{
"json.schemas": [
{
"fileMatch": ["pbk.config.json"],
"url": "./node_modules/@primexop/pbk/pbk.schema.json"
}
],
"files.associations": {
"pbk.config.json": "jsonc"
}
}š” Benefits
- ⨠Auto-completion for all available options
- ā Validation to ensure your configuration is correct
- š Hover documentation for each field
- ā ļø Error highlighting for invalid configurations
š Features in Detail
B2F Portal Integration
When b2fPortal is set to true in the configuration, the kit will initialize B2F Portal specific features.
Cross-Project Import Validation
When checkCrossProjectImports is enabled, the kit will validate imports between different projects to ensure proper dependency management.
Next.js Patch Support
Sections can be configured with needNextJsPatch: true to apply Next.js specific patches.
š ļø CLI Commands
PBK comes with several CLI commands to help you manage your projects:
# Initialize a pbk.config.json file
npx @primexop/pbk init
# Fix JSON file formatting
npx @primexop/pbk fix-config-file
# Delete b2fPortal directory in all repositories
npx @primexop/pbk delete-all-repos
# Deploy all repositories
npx @primexop/pbk deploy-all-repos
# Add, commit, and push changes in all repositories
npx @primexop/pbk git-acp-all-repos
# Push b2fPortal changes in all repositories
npx @primexop/pbk git-push-all-repos
# Transfer project files to shared backend repositories
npx @primexop/pbk transfer-2-shared
# Create a shell script to initialize workspaces
npx @primexop/pbk create-init-workspace-shell-file
# Update package.json to use local development version
npx @primexop/pbk add-dev-version
# Update package.json to use published production version
npx @primexop/pbk add-prod-versionDevelopment and Production Versioning
PBK provides commands to easily switch between development and production versions:
add-dev-versionupdates your project to use the local development version fromC:/primexopRepos/pbkadd-prod-versionreverts back to using the published npm version (latest by default)
Examples:
# Switch to local development version
npx @primexop/pbk add-dev-version
# Switch back to latest published version
npx @primexop/pbk add-prod-version
# Switch to a specific published version
npx @primexop/pbk add-prod-version --version "1.0.7"
# Apply to a different directory
npx @primexop/pbk add-prod-version --dir ../other-projectWorkspace Initialization Script
The create-init-workspace-shell-file command generates a shell script (initWorkspace.sh) that helps you:
- Select your preferred editor (VSCode, Cursor, or Trae)
- Open all your project directories in the selected editor
- Navigate between project sections easily
After generating the script, make it executable:
chmod +x initWorkspace.shThen run it:
./initWorkspace.shš©āš» Development
Available Scripts
npm run dev- Start development mode with watchnpm run build- Build the projectnpm test- Run testsnpm run test:watch- Run tests in watch modenpm run lint- Run TypeScript type checkingnpm run clean- Clean build artifactsnpm run release:patch- Release a patch version
Project Structure
src/
āāā bin/ # CLI entry points
āāā cli/ # CLI command implementations
āāā configs/ # Configuration related code
āāā helpers/ # Helper functions
āāā utils/ # Utility functions
āāā b2fPortalV3/ # B2F Portal specific implementations
āāā types.ts # TypeScript type definitionsš License
ISC
š¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
š Support
For support, please open an issue in the GitHub repository.