UNPKG

mobx-keystone

Version:

A MobX powered state management solution based on data trees with first class support for TypeScript, snapshots, patches and much more

94 lines (75 loc) 1.53 kB
import { failure } from "../utils" /** * @internal */ export interface ImmutableDate extends Omit< Date, | "setTime" | "setMilliseconds" | "setUTCMilliseconds" | "setSeconds" | "setUTCSeconds" | "setMinutes" | "setUTCMinutes" | "setHours" | "setUTCHours" | "setDate" | "setUTCDate" | "setMonth" | "setUTCMonth" | "setFullYear" | "setUTCFullYear" > {} const errMessage = "this Date object is immutable" /** * @internal */ export class ImmutableDate extends Date { // disable mutable methods setTime(): any { throw failure(errMessage) } setMilliseconds(): any { throw failure(errMessage) } setUTCMilliseconds(): any { throw failure(errMessage) } setSeconds(): any { throw failure(errMessage) } setUTCSeconds(): any { throw failure(errMessage) } setMinutes(): any { throw failure(errMessage) } setUTCMinutes(): any { throw failure(errMessage) } setHours(): any { throw failure(errMessage) } setUTCHours(): any { throw failure(errMessage) } setDate(): any { throw failure(errMessage) } setUTCDate(): any { throw failure(errMessage) } setMonth(): any { throw failure(errMessage) } setUTCMonth(): any { throw failure(errMessage) } setFullYear(): any { throw failure(errMessage) } setUTCFullYear(): any { throw failure(errMessage) } }