@freelight/core
v0.1.0
Published
Shared utilities for FreeLight applications — DataAccess, permissions, validation, user model, filters, startup.
Downloads
58
Readme
@freelight/core
Shared utilities for FreeLight applications. Consumed by FreeLightDAO and Freelight (campaign platform).
What's in here
| Module | Exports |
|---|---|
| DataAccess | PostgreSQL + Garnet (Redis) connection manager |
| FreeUser | Base user model (IFreeUser, MembershipStatus, avatar generation, validation) |
| Filter | IFilter, IFilterPaged, IFilterSearch, IFilterConditional |
| IAppUtils | Interface for the app utils passed through route handlers |
| permissions | RoutePermission, NewInputType, IResult<T> |
| validator | ValidatorInputType, validateInput(), validateInputArray(), validateEnums(), fromBinaryToUUID(), isStringEmpty() |
Install
npm install /path/to/FreeLightCore
# or once published to a registry:
npm install @freelight/coreUsage
import {
DataAccess,
FreeUser,
IFreeUser,
RoutePermission,
ValidatorInputType,
validateInput,
IFilter,
IFilterPaged
} from "@freelight/core";Consuming Application Setup
FreeLightDAO
In src/DataAccess.ts, replace the local class:
export { DataAccess, IDataAccess } from "@freelight/core";In src/FreeUser.ts, import base types and extend:
import { FreeUser as CoreFreeUser, IFreeUser } from "@freelight/core";
// Add governance-specific methods (getUsersRelationship, etc.)In src/AppAPI.ts, replace local enums/utils:
import { RoutePermission, ValidatorInputType, validateInput, fromBinaryToUUID } from "@freelight/core";Freelight (Campaign Platform)
Same pattern — replace local DataAccess.ts, FreeUser.ts with imports from @freelight/core.
Design Notes
- No governance logic here —
ApprovalStatus,ModeratorFlag,Relationshipstay inFreeLightDAO - No Garnet caching of users — that's application-level.
FreeUser.getFreeUserById()hits the DB directly; callers wrap with their own Garnet logic - No word list —
generateRandomDisplayName()accepts a word list parameter; consuming apps supply their own - No app-specific config —
IAppUtilsis a minimal interface; apps extend it
