From e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 28 Jun 2025 17:26:46 -0700 Subject: initial commit: scaffolding --- .../date-fns/esm/closestIndexTo/index.d.ts | 4 ++ node_modules/date-fns/esm/closestIndexTo/index.js | 61 ++++++++++++++++++++++ .../date-fns/esm/closestIndexTo/index.js.flow | 55 +++++++++++++++++++ .../date-fns/esm/closestIndexTo/package.json | 4 ++ 4 files changed, 124 insertions(+) create mode 100644 node_modules/date-fns/esm/closestIndexTo/index.d.ts create mode 100644 node_modules/date-fns/esm/closestIndexTo/index.js create mode 100644 node_modules/date-fns/esm/closestIndexTo/index.js.flow create mode 100644 node_modules/date-fns/esm/closestIndexTo/package.json (limited to 'node_modules/date-fns/esm/closestIndexTo') diff --git a/node_modules/date-fns/esm/closestIndexTo/index.d.ts b/node_modules/date-fns/esm/closestIndexTo/index.d.ts new file mode 100644 index 0000000..672d132 --- /dev/null +++ b/node_modules/date-fns/esm/closestIndexTo/index.d.ts @@ -0,0 +1,4 @@ +// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. + +import { closestIndexTo } from 'date-fns' +export default closestIndexTo diff --git a/node_modules/date-fns/esm/closestIndexTo/index.js b/node_modules/date-fns/esm/closestIndexTo/index.js new file mode 100644 index 0000000..a7c3a8f --- /dev/null +++ b/node_modules/date-fns/esm/closestIndexTo/index.js @@ -0,0 +1,61 @@ +import toDate from "../toDate/index.js"; +import requiredArgs from "../_lib/requiredArgs/index.js"; +/** + * @name closestIndexTo + * @category Common Helpers + * @summary Return an index of the closest date from the array comparing to the given date. + * + * @description + * Return an index of the closest date from the array comparing to the given date. + * + * @param {Date | Number} dateToCompare - the date to compare with + * @param {Array | Array} datesArray - the array to search + * @returns {Number | undefined} an index of the date closest to the given date or undefined if no valid value is given + * @throws {TypeError} 2 arguments required + * + * @example + * // Which date is closer to 6 September 2015? + * const dateToCompare = new Date(2015, 8, 6) + * const datesArray = [ + * new Date(2015, 0, 1), + * new Date(2016, 0, 1), + * new Date(2017, 0, 1) + * ] + * const result = closestIndexTo(dateToCompare, datesArray) + * //=> 1 + */ +export default function closestIndexTo(dirtyDateToCompare, dirtyDatesArray) { + requiredArgs(2, arguments); + var dateToCompare = toDate(dirtyDateToCompare); + if (isNaN(Number(dateToCompare))) return NaN; + var timeToCompare = dateToCompare.getTime(); + var datesArray; + // `dirtyDatesArray` is undefined or null + if (dirtyDatesArray == null) { + datesArray = []; + + // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method + } else if (typeof dirtyDatesArray.forEach === 'function') { + datesArray = dirtyDatesArray; + + // If `dirtyDatesArray` is Array-like Object, convert to Array. Otherwise, make it empty Array + } else { + datesArray = Array.prototype.slice.call(dirtyDatesArray); + } + var result; + var minDistance; + datesArray.forEach(function (dirtyDate, index) { + var currentDate = toDate(dirtyDate); + if (isNaN(Number(currentDate))) { + result = NaN; + minDistance = NaN; + return; + } + var distance = Math.abs(timeToCompare - currentDate.getTime()); + if (result == null || distance < Number(minDistance)) { + result = index; + minDistance = distance; + } + }); + return result; +} \ No newline at end of file diff --git a/node_modules/date-fns/esm/closestIndexTo/index.js.flow b/node_modules/date-fns/esm/closestIndexTo/index.js.flow new file mode 100644 index 0000000..a8dadb4 --- /dev/null +++ b/node_modules/date-fns/esm/closestIndexTo/index.js.flow @@ -0,0 +1,55 @@ +// @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, + formatRelative?: (...args: Array) => any, + localize?: { + ordinalNumber: (...args: Array) => any, + era: (...args: Array) => any, + quarter: (...args: Array) => any, + month: (...args: Array) => any, + day: (...args: Array) => any, + dayPeriod: (...args: Array) => any, + }, + formatLong?: { + date: (...args: Array) => any, + time: (...args: Array) => any, + dateTime: (...args: Array) => any, + }, + match?: { + ordinalNumber: (...args: Array) => any, + era: (...args: Array) => any, + quarter: (...args: Array) => any, + month: (...args: Array) => any, + day: (...args: Array) => any, + dayPeriod: (...args: Array) => 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: ( + dateToCompare: Date | number, + datesArray: (Date | number)[] +) => ?number diff --git a/node_modules/date-fns/esm/closestIndexTo/package.json b/node_modules/date-fns/esm/closestIndexTo/package.json new file mode 100644 index 0000000..b109f05 --- /dev/null +++ b/node_modules/date-fns/esm/closestIndexTo/package.json @@ -0,0 +1,4 @@ +{ + "sideEffects": false, + "typings": "../../typings.d.ts" +} \ No newline at end of file -- cgit v1.2.3