Package Exports
- budget-control-fm-core
Readme
budget-control-fm-core
Core functionality for the Budget Control Financial Management system.
This package provides shared domain logic and foundational utilities used by the Budget Control ecosystem. It is intended to be consumed by other packages such as ingestion pipelines, classification engines, and runtime adapters.
This package is ESM-only.
Requirements
- Node.js 20 or later (LTS recommended)
- An ESM-compatible environment
If your project still uses CommonJS, you must migrate it to ESM before using this library.
Installation
npm install budget-control-fm-core
Usage
Example usage in a TypeScript or ESM project:
import { hello } from "budget-control-fm-core";
console.log(hello());
Output:
Hi budget-control-fm-core
API
hello(): string
Returns a greeting string.
Example:
hello();
Returns:
"Hi budget-control-fm-core"
Development
Clone the repository:
git clone https://github.com/budget-control-fm/budget-control-fm-core.git cd budget-control-fm-core
Install dependencies:
npm install
Available scripts:
npm run dev → Run entrypoint using tsx npm run lint → Lint project using Biome npm run lint:fix → Automatically fix lint issues npm run typecheck → Run TypeScript type checking npm test → Run unit tests npm run test:coverage → Run tests with coverage npm run build → Compile the project npm run clean → Remove build output npm run sonar → Run Sonar analysis npm run format → Format source files
Release Process
This project uses Changesets for versioning and automated publishing.
To create a release:
npx changeset
Commit the generated changeset file and open a pull request.
When the PR is merged:
- The Release workflow creates a
Version Packagespull request. - That PR updates
package.jsonandCHANGELOG.md. - When the release PR is merged, the package is automatically published to npm.
Contributing
- Create a branch
- Make your changes
- Run the checks:
npm run lint npm run typecheck npm test npm run build
- If the change should be released, create a changeset:
npx changeset
- Open a pull request to
main.
Changelog
See CHANGELOG.md.
This file is automatically generated by Changesets during the release process.
License
ISC