Releases: dharayush7/fireclass-js
Release list
v2.0.9
fireclass-js v2.0.9
@dharayush7/fireclass-js v2.0.9 aligns the npm package page with
the complete Node.js and Express documentation on the Fireclass website.
What changed
- Added the Fireclass logo and package navigation without shield badges.
- Added complete Firebase Admin credential and initialization guidance.
- Documented app-bound Fireclass setup, validated models, CRUD, typed queries,
AdminAdapter capabilities, and direct SDK import ownership. - Added exact Express middleware options and JSON error responses.
- Expanded the migration path from deprecated
@dharayush7/fireclass. - Expanded npm keywords for Node.js, Express, Firebase Admin, Firestore ODM,
typed CRUD, queries, serverless runtimes, and error middleware. - Added changelog and release notes to the published package contents.
Runtime compatibility
No runtime API or behavior changed. The package remains compatible with
@dharayush7/fireclass-core ^2.0.8.
Verify
npm run typecheck
npm test
npm run build
npm pack --dry-runDocumentation: https://fireclass.ayushdhar.com/docs/api/js
v2.0.8
fireclass-js v2.0.8
@dharayush7/fireclass-js — the first public release of the Fireclass suite's firebase-admin runtime, for Node.js and Express.
It wraps @dharayush7/fireclass-core with a firebase-admin adapter and re-exports the whole core, so you define type-safe Firestore models as classes and get typed CRUD, query building, and class-validator validation on the server. It replaces the deprecated @dharayush7/fireclass (v0.2.12).
Highlights
createFireclass(firestore)— bind Fireclass to afirebase-adminFirestore and get back{ BaseModel, adapter }.AdminAdapter— implements the coreFirestoreAdapteroverfirebase-admin, includingbatchDelete(500-write batches) and aggregatecount.fireclassErrorHandler()— Express error middleware that turnsValidationFailedErrorinto a400with field-level details (noexpressdependency).getBaseModel(firestore)— a drop-in alias for the deprecated package's entry point.- Re-exports the full core — decorators,
QueryOptions, errors,defineBaseModel— so you install one package.
Install
npm install @dharayush7/fireclass-js firebase-admin class-validator class-transformerfirebase-admin, class-validator, and class-transformer are peer dependencies. @dharayush7/fireclass-core is a regular dependency (^2.0.8) — installed automatically. Enable decorators in tsconfig.json:
{ "compilerOptions": { "experimentalDecorators": true, "emitDecoratorMetadata": true } }Quick look
import "reflect-metadata";
import { getFirestore } from "firebase-admin/firestore";
import { createFireclass, Collection } from "@dharayush7/fireclass-js";
import { IsEmail, IsInt, Min } from "class-validator";
const { BaseModel } = createFireclass(getFirestore());
@Collection("users")
class User extends BaseModel<User> {
@IsEmail() email!: string;
@IsInt() @Min(0) age!: number;
constructor(data?: Partial<User>) { super(data); Object.assign(this, data); }
}
const id = await new User({ email: "ada@example.com", age: 36 }).save();
const adults = await User.findMany({ where: { age: { gte: 18 } }, orderBy: { age: "desc" } });A complete Express CRUD API is in examples/express-api.
Migration from @dharayush7/fireclass
- import { getBaseModel } from "@dharayush7/fireclass";
+ import { getBaseModel } from "@dharayush7/fireclass-js";getBaseModel(firestore) still works. Note the query operator is equals (the old docs incorrectly showed equal).
Quality
- 19 tests, including an end-to-end suite that drives the full core model API through the real
AdminAdapteragainst an in-memoryfirebase-adminmock (no emulator). - Verified live against a real Firestore project — full CRUD cycle passes.
- Dual ESM + CJS build with type declarations. Core is kept external (a shared dependency), not bundled, so the suite uses a single copy.
The Fireclass suite
| Package | Runtime | For |
|---|---|---|
@dharayush7/fireclass-core |
none (pure TS) | shared modeling core |
@dharayush7/fireclass-js |
firebase-admin | Node / Express — this package |
@dharayush7/fireclass-ssr |
firebase-admin | Next.js (App Router) |
@dharayush7/fireclass-react |
firebase client SDK | React (realtime hooks) |
Docs: https://fireclass.ayushdhar.com
Full API and examples: see the README. Changelog: see CHANGELOG.md.