diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:26:46 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:43:56 -0700 |
| commit | e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch) | |
| tree | 06284a538a6008eca75051399e47db4e5d50301c /node_modules/date-fns/addMonths | |
initial commit: scaffolding
Diffstat (limited to 'node_modules/date-fns/addMonths')
| -rw-r--r-- | node_modules/date-fns/addMonths/index.d.ts | 4 | ||||
| -rw-r--r-- | node_modules/date-fns/addMonths/index.js | 69 | ||||
| -rw-r--r-- | node_modules/date-fns/addMonths/index.js.flow | 52 | ||||
| -rw-r--r-- | node_modules/date-fns/addMonths/package.json | 5 |
4 files changed, 130 insertions, 0 deletions
diff --git a/node_modules/date-fns/addMonths/index.d.ts b/node_modules/date-fns/addMonths/index.d.ts new file mode 100644 index 0000000..1308e13 --- /dev/null +++ b/node_modules/date-fns/addMonths/index.d.ts @@ -0,0 +1,4 @@ +// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. + +import { addMonths } from 'date-fns' +export default addMonths diff --git a/node_modules/date-fns/addMonths/index.js b/node_modules/date-fns/addMonths/index.js new file mode 100644 index 0000000..6bb9c8c --- /dev/null +++ b/node_modules/date-fns/addMonths/index.js @@ -0,0 +1,69 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = addMonths; +var _index = _interopRequireDefault(require("../_lib/toInteger/index.js")); +var _index2 = _interopRequireDefault(require("../toDate/index.js")); +var _index3 = _interopRequireDefault(require("../_lib/requiredArgs/index.js")); +/** + * @name addMonths + * @category Month Helpers + * @summary Add the specified number of months to the given date. + * + * @description + * Add the specified number of months to the given date. + * + * @param {Date|Number} date - the date to be changed + * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. + * @returns {Date} the new date with the months added + * @throws {TypeError} 2 arguments required + * + * @example + * // Add 5 months to 1 September 2014: + * const result = addMonths(new Date(2014, 8, 1), 5) + * //=> Sun Feb 01 2015 00:00:00 + */ +function addMonths(dirtyDate, dirtyAmount) { + (0, _index3.default)(2, arguments); + var date = (0, _index2.default)(dirtyDate); + var amount = (0, _index.default)(dirtyAmount); + if (isNaN(amount)) { + return new Date(NaN); + } + if (!amount) { + // If 0 months, no-op to avoid changing times in the hour before end of DST + return date; + } + var dayOfMonth = date.getDate(); + + // The JS Date object supports date math by accepting out-of-bounds values for + // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and + // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we + // want except that dates will wrap around the end of a month, meaning that + // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So + // we'll default to the end of the desired month by adding 1 to the desired + // month and using a date of 0 to back up one day to the end of the desired + // month. + var endOfDesiredMonth = new Date(date.getTime()); + endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0); + var daysInMonth = endOfDesiredMonth.getDate(); + if (dayOfMonth >= daysInMonth) { + // If we're already at the end of the month, then this is the correct date + // and we're done. + return endOfDesiredMonth; + } else { + // Otherwise, we now know that setting the original day-of-month value won't + // cause an overflow, so set the desired day-of-month. Note that we can't + // just set the date of `endOfDesiredMonth` because that object may have had + // its time changed in the unusual case where where a DST transition was on + // the last day of the month and its local time was in the hour skipped or + // repeated next to a DST transition. So we use `date` instead which is + // guaranteed to still have the original time. + date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth); + return date; + } +} +module.exports = exports.default;
\ No newline at end of file diff --git a/node_modules/date-fns/addMonths/index.js.flow b/node_modules/date-fns/addMonths/index.js.flow new file mode 100644 index 0000000..f568f0d --- /dev/null +++ b/node_modules/date-fns/addMonths/index.js.flow @@ -0,0 +1,52 @@ +// @flow +// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. + +export type Interval = { + start: Date | number, + end: Date | number, +} + +export type Locale = { + code?: string, + formatDistance?: (...args: Array<any>) => any, + formatRelative?: (...args: Array<any>) => any, + localize?: { + ordinalNumber: (...args: Array<any>) => any, + era: (...args: Array<any>) => any, + quarter: (...args: Array<any>) => any, + month: (...args: Array<any>) => any, + day: (...args: Array<any>) => any, + dayPeriod: (...args: Array<any>) => any, + }, + formatLong?: { + date: (...args: Array<any>) => any, + time: (...args: Array<any>) => any, + dateTime: (...args: Array<any>) => any, + }, + match?: { + ordinalNumber: (...args: Array<any>) => any, + era: (...args: Array<any>) => any, + quarter: (...args: Array<any>) => any, + month: (...args: Array<any>) => any, + day: (...args: Array<any>) => any, + dayPeriod: (...args: Array<any>) => any, + }, + options?: { + weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6, + firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7, + }, +} + +export type Duration = { + years?: number, + months?: number, + weeks?: number, + days?: number, + hours?: number, + minutes?: number, + seconds?: number, +} + +export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6 + +declare module.exports: (date: Date | number, amount: number) => Date diff --git a/node_modules/date-fns/addMonths/package.json b/node_modules/date-fns/addMonths/package.json new file mode 100644 index 0000000..f3c9c79 --- /dev/null +++ b/node_modules/date-fns/addMonths/package.json @@ -0,0 +1,5 @@ +{ + "sideEffects": false, + "module": "../esm/addMonths/index.js", + "typings": "../typings.d.ts" +}
\ No newline at end of file |
