@dwp/govuk-casa
Version:
A framework for building GOVUK Collect-And-Submit-Applications
88 lines (87 loc) • 2.82 kB
TypeScript
/**
* @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
* @access private
*/
/**
* @typedef {object} DateObjectConfigOptions
* @property {ErrorMessageConfig} errorMsg Error message config
* @property {object} [afterOffsetFromNow] Offset from now
* @property {ErrorMessageConfig} [errorMsgAfterOffset] Error if date is after
* this offset
* @property {object} [beforeOffsetFromNow] Offset from now
* @property {ErrorMessageConfig} [errorMsgBeforeOffset] Error if date is before
* this offset
* @property {boolean} [allowMonthNames=false] Allow "Jan", "January", etc.
* Default is `false`
* @property {boolean} [allowSingleDigitDay=false] Allow "1" rather than "01".
* Default is `false`
* @property {boolean} [allowSingleDigitMonth=false] Allow "1" rather than "01".
* Default is `false`
* @property {DateTime} [now=false] Override the notion of "now" (useful for
* testing). Default is `false`
*/
/**
* Date object format: { dd: <string>, mm: <string>, yyyy: <string> }.
*
* Note that the time part will be zero'ed, as we are only interested in the
* date component (minimum day resolution).
*
* See {@link DateObjectConfigOptions} for `make()` options.
*
* @memberof Validators
* @augments ValidatorFactory
*/
export default class DateObject extends ValidatorFactory {
/** @property {string} name Validator name ("dateObject") */
name: string;
validate(value: any, dataContext?: {}): ValidationError[];
sanitise(value: any): any;
}
export type ErrorMessageConfig = import("../../casa").ErrorMessageConfig;
export type DateObjectConfigOptions = {
/**
* Error message config
*/
errorMsg: ErrorMessageConfig;
/**
* Offset from now
*/
afterOffsetFromNow?: object | undefined;
/**
* Error if date is after
* this offset
*/
errorMsgAfterOffset?: import("../../casa").ErrorMessageConfig | undefined;
/**
* Offset from now
*/
beforeOffsetFromNow?: object | undefined;
/**
* Error if date is before
* this offset
*/
errorMsgBeforeOffset?: import("../../casa").ErrorMessageConfig | undefined;
/**
* Allow "Jan", "January", etc.
* Default is `false`
*/
allowMonthNames?: boolean | undefined;
/**
* Allow "1" rather than "01".
* Default is `false`
*/
allowSingleDigitDay?: boolean | undefined;
/**
* Allow "1" rather than "01".
* Default is `false`
*/
allowSingleDigitMonth?: boolean | undefined;
/**
* Override the notion of "now" (useful for
* testing). Default is `false`
*/
now?: DateTime<boolean> | undefined;
};
import ValidatorFactory from "../ValidatorFactory.js";
import ValidationError from "../ValidationError.js";
import { DateTime } from "luxon";