Add comments to non-obvious code
This commit is contained in:
parent
7491d2aa1c
commit
0f30573180
@ -1,5 +1,12 @@
|
|||||||
import { Request, Response, NextFunction } from 'express';
|
import { Request, Response, NextFunction } from 'express';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A wrapper for controller functions that return a Promise, enabling them to be used with Express
|
||||||
|
* Without this wrapper, Promise rejections caused by an error in the controller will not be passed properly
|
||||||
|
* to subsequent middleware layers.
|
||||||
|
* @param fn the async controller function to be wrapped
|
||||||
|
* @returns controller function which handles async errors correctly
|
||||||
|
*/
|
||||||
function asyncController(fn: (req: Request, res: Response, next: NextFunction) => Promise<any>) {
|
function asyncController(fn: (req: Request, res: Response, next: NextFunction) => Promise<any>) {
|
||||||
return (req: Request, res: Response, next: NextFunction) => {
|
return (req: Request, res: Response, next: NextFunction) => {
|
||||||
Promise.resolve(fn(req, res, next))
|
Promise.resolve(fn(req, res, next))
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* A function to be passed to JSON.parse as a JSON reviver, in order to transform date values
|
||||||
|
* (which don't have a native JSON representation and therefore are serialized as strings)
|
||||||
|
* back to a JavaScript Date object.
|
||||||
|
* This works by first checking if a string value complies with a date format
|
||||||
|
* and then converting to a Date if and only if that's the case
|
||||||
|
* @param name name of the JSON field to revive
|
||||||
|
* @param value value of the JSON field to revive
|
||||||
|
*/
|
||||||
export function dateReviver(name, value) {
|
export function dateReviver(name, value) {
|
||||||
if (typeof value === "string" && /^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d.\d\d\dZ$/.test(value)) {
|
if (typeof value === "string" && /^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d.\d\d\dZ$/.test(value)) {
|
||||||
return new Date(value);
|
return new Date(value);
|
||||||
|
Loading…
Reference in New Issue
Block a user