ballrush-core
v0.7.4
Published
⚠️ **Note:** This library is for **personal use** in the Ballrush project.
Maintainers
Readme
ballrush-core
⚠️ Note: This library is for personal use in the Ballrush project.
Shared core library for Ballrush.
Includes TypeScript types, domain entities, repository ports & Mongo implementations, Mongoose schema factories (no models), and utils.
Features
- 🧠 Domain:
User,Group,Event,EventTemplate - 🔌 Ports: repository interfaces (DDD)
- 🗄️ Mongo adapters: ready-to-use repository implementations (accept Mongoose Models)
- 🏗 Schema factories:
createXSchema()(withoutmodel()) - 🧰 Utils: small reusable helpers (e.g., rating utils)
Install
npm install ballrush-coreExports (subpaths)
ballrush-core/typesballrush-core/domainballrush-core/portsballrush-core/mongoballrush-core/repositoriesballrush-core/utils
Quick start
1) Create Mongoose models in your app
import { connection } from "mongoose";
import { createUserSchema, UserDoc } from "ballrush-core/mongo";
export const UserModel = connection.model<UserDoc>("User", createUserSchema());2) Use Mongo repositories (bot or API)
import { MongoUsersRepository } from "ballrush-core/repositories";
import type { UsersRepository } from "ballrush-core/ports";
const usersRepo: UsersRepository = new MongoUsersRepository(UserModel);3) Work with domain entities
import { User } from "ballrush-core/domain";
const user = User.create({
userId: 1,
firstName: "Alex",
username: "alex"
});4) Utils
import { addRating, getCurrentRating } from "ballrush-core/utils";License
MIT © 2025 Serhii Zghama