@multisystemsuite/timezone-engine-node
v5.0.0
Published
Node.js and Express utilities for @multisystemsuite/timezone-engine
Maintainers
Readme
@multisystemsuite/timezone-engine-node
Node.js and Express utilities for timezone-aware APIs, middleware, and server–client sync.
What it is used for
- Express middleware — resolve timezone from header, cookie, or query param
- API responses with timezone-aware timestamps
- Server–client timezone sync for SPA and mobile clients
- Cron / batch jobs running in site timezones
- Backend services: admin, QC, shopfloor, ERP, HRMS, manufacturing APIs
Install
npm install @multisystemsuite/timezone-engine-nodePeer dependency (optional): express >= 4
Usage
Express middleware
import express from "express";
import {
timezoneMiddleware,
formatDate,
buildSyncPayload,
} from "@multisystemsuite/timezone-engine-node";
const app = express();
app.use(timezoneMiddleware({ defaultTimezone: "UTC" }));
app.get("/api/time", (req, res) => {
const tz = req.timezone ?? "UTC";
res.json({
timezone: tz,
time: formatDate(new Date(), { format: "ISO", timezone: tz }),
});
});
app.get("/api/sync", (req, res) => {
const clientTz = req.headers["x-timezone"] as string;
res.json(buildSyncPayload(clientTz ?? "UTC"));
});DB sanitisation
import { sanitizeTimezoneForDB, formatDateForSite } from "@multisystemsuite/timezone-engine-node";
site.TimeZone = sanitizeTimezoneForDB(req.body.TimeZone);Key exports
| Export | Purpose |
| ------------------------- | -------------------------------------------- |
| timezoneMiddleware() | Inject resolved timezone into req.timezone |
| buildSyncPayload() | Server vs client offset sync payload |
| formatApiResponse() | Add _meta.timezone to API JSON |
| computeCronRunAt() | Cron run time in a timezone |
| safeSchedule() | Validated schedule in timezone |
| syncServerTime() | Server/client sync + drift |
| businessHoursEngine() | Regional business hours |
| createAuditTimestamp() | Audit-safe timestamps |
| validateTimezoneInput() | Security validation for headers |
| safeTimezone() | Normalise + validate with fallback |
Related packages
@multisystemsuite/timezone-engine-core— underlying engine@multisystemsuite/timezone-engine-scheduler— meeting and shift scheduling
Keywords
timezone, nodejs, express, middleware, server, utc, typescript, enterprise
License
MIT
