profile
viewpoint
Sasha Koss kossnocorp No Corp Singapore https://koss.nocorp.me/ 👋 Hi, I'm Sasha, an open-source writer, indie maker, and serial strugglepreneur.

esamattis/underscore.string 3356

String manipulation helpers for javascript

ai/autoprefixer-rails 1199

Autoprefixer for Ruby and Ruby on Rails

appjudo/skim 274

Fat-free client-side templates with Slim and CoffeeScript

backupfire/backupfire-firebase 30

👩‍🏭 Backup Fire Firebase agent

gazay/role-haml 19

Role. With Haml support. Just write @something in your Haml template and use full power of role!

date-fns/date-fns-upgrade-codemod 11

Code mods for upgrading date-fns versions

date-fns/date-fns-upgrade 8

A tool for upgrading date-fns versions

kossnocorp/backbone.jwerty 8

jwerty integrated into Backbone.js events

push eventkossnocorp/typeroo

Sasha Koss

commit sha d9f97a0b9b191e42f90d66ab13f8fe0e8bedcb37

Add Nullable

view details

push time in a month

push eventkossnocorp/typeroo

Sasha Koss

commit sha 25dcfe32a6ca20b63a2b336b1cb25bcf247990ac

Fix NullableKeys

view details

push time in a month

push eventkossnocorp/firebase-react-hooks

Sasha Koss

commit sha 09865e9d308024732d5fac439905e747955d0c6a

Commit bunch of old and new changes

view details

push time in a month

push eventkossnocorp/typesaurus-security

Sasha Koss

commit sha 452064406f183dd699cc6739126ed12afa4e52a4

Promote to v0.12.0

view details

push time in 2 months

push eventkossnocorp/typesaurus-security

Sasha Koss

commit sha 567283a87eceaa8ff0109773a7a39561790290b5

Add diff to Map

view details

push time in 2 months

push eventkossnocorp/typesaurus-security

Sasha Koss

commit sha 81c6da53043836b27c521cf30080516f8b60a32a

Remove deprecated writeFields

view details

push time in 2 months

push eventkossnocorp/typesaurus-security

Sasha Koss

commit sha 493c420932ab3fda373e88ebf707ed4efeb988fd

Resolve proxies when stringifing rules

view details

push time in 2 months

Pull request review commentdate-fns/date-fns

Intl format relative2

+import {+  secondsInDay,+  secondsInHour,+  secondsInMinute,+  secondsInMonth,+  secondsInQuarter,+  secondsInWeek,+  secondsInYear,+} from '../constants'+import differenceInCalendarDays from '../differenceInCalendarDays/index'+import differenceInCalendarMonths from '../differenceInCalendarMonths/index'+import differenceInCalendarQuarters from '../differenceInCalendarQuarters/index'+import differenceInCalendarWeeks from '../differenceInCalendarWeeks/index'+import differenceInCalendarYears from '../differenceInCalendarYears/index'+import differenceInHours from '../differenceInHours/index'+import differenceInMinutes from '../differenceInMinutes/index'+import differenceInSeconds from '../differenceInSeconds/index'+import toDate from '../toDate/index'+import type { Unit } from '../types'+import requiredArgs from '../_lib/requiredArgs/index'++/**+ * @name intlFormatDistance+ * @category Common Helpers+ * @summary Enables language-sensitive relative time formatting according to the locale and formatting options+ * of the given Intl.RelativeTimeFormat object.+ * @description+ * The API gets a difference between two given dates and either picks the most appropriate unit+ * depending on the distance (the less the distance the smaller the unit),+ * or allows a user to pass in a unit as well.+ * If a unit is passed in, it will be applied accordingly. Otherwise - see the table below:+ *+ * | Distance between dates       | Result              |+ * |------------------------------|---------------------|+ * |   1 second                   | in 1 second         |+ * |   n seconds                  | in n seconds        |+ * |   1 minute                   | in 1 minute         |+ * |   n minutes                  | in n minutes        |+ * |   1 hour                     | in 1 hour           |+ * |   n hours                    | in n hours          |+ * |   1 day                      | in 1 day            |+ * |   n days                     | in n days           |+ * |   1 week                     | in 1 week           |+ * |   n weeks                    | in n weeks          |+ * |   1 month                    | in 1 month          |+ * |   n months                   | in n months         |+ * |   1 quarter                  | in 1 quarter        |+ * |   n quarters                 | in n quarters       |+ * |   1 year                     | in 1 year           |+ * |   n years                    | in n years          |+ *+ *+ *  With `options.unit = 'hour'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 24 hours          |+ * | 1 week                 | in 168 hours         |+ *+ *+ *  With `options.locale = 'de'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 1 Tag             |+ * | 1 week                 | in 1 Woche           |+ *+ *+ *  With `options.numeric: 'auto' `+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 0 seconds              | now                  |+ * | 1 day                  | tomorrow             |+ *+ *+ * | Other options     | Possible values         |  Result            |+ * |-------------------|-------------------------|--------------------|+ * | localeMatcher     | 'lookup' and 'best fit' | N/A                |+ * |                   |                         |                    |+ * | numeric           | 'always'                | 1 day ago          |+ * |                   | 'auto'                  | yesterday          |+ * |                   |                         |                    |+ * | style             | 'long'                  | in 1 month         |+ * |                   | 'short'                 | in 1 mo.           |+ * |                   | 'narrow'                | in 1 mo.           |+ *+ * @param {Date|Number} date - the date+ * @param {Date|Number} baseDate - the date to compare with.+ * @param {Object} [options] - an object with options.+ * @param {String} [options.unit] - formats the distance with the given unit ('year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second').+ * @param {String|String[]} [options.locale] - the locale to use (BCP 47 language tag). [For the reference see MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation).+ * @param {String} [options.localeMatcher='best fit'] - the locale matching algorithm to use. Other value: "lookup".+ * @param {String} [options.numeric='always'] - the output message format. Other value: "auto".+ * @param {String} [options.style='long'] - the length of the internationalized message. Other values: "short" or "narrow";+ * @returns {String} the distance in words according to language-sensitive relative time formatting.+ * @throws {TypeError} 2 arguments required+ * @throws {RangeError} `date` must not be Invalid Date+ * @throws {RangeError} `baseDate` must not be Invalid Date+ * @throws {RangeError} `options.unit` must not be invalid Unit+ * @throws {RangeError} `options.locale` must not be invalid locale+ * @throws {RangeError} `options.localeMatcher` must not be invalid localeMatcher+ * @throws {RangeError} `options.numeric` must not be invalid numeric+ * @throws {RangeError} `options.style` must not be invalid style+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0)+ * )+ * //=> 'in 1 hour'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0)+ * )+ * //=> 'in 1 year'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in quarters in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'quarter' }+ * )+ * //=> 'in 4 quarters'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in months in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'month' }+ * )+ * //=> 'in 12 months'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in weeks in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'week' }+ * )+ * //=> 'in 52 weeks'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in days in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'day' }+ * )+ * //=> 'in 365 days'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in hours in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'hour' }+ * )+ * //=> 'in 8,760 hours'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in minutes in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute' }+ * )+ * //=> 'in 525,600 minutes'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in seconds in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'second' }+ * )+ * //=> 'in 31,536,000 seconds'+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in minutes in Spanish in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute', locale: 'es' }+ * )+ * //=> 'dentro de 60 minutos'+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in minutes in German in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute', locale: 'de' }+ * )+ * //=> 'in 60 Minuten'+ */+interface Options {+  unit?: Unit+  locale?: Intl.UnicodeBCP47LocaleIdentifier+  localeMatcher?: Intl.RelativeTimeFormatLocaleMatcher+  numeric?: Intl.RelativeTimeFormatNumeric+  style?: Intl.RelativeTimeFormatStyle+}++export default function intlFormatDistance(+  date: Date | number,+  baseDate: Date | number,+  options: Options = { numeric: 'auto' }

I don't think the default options are needed. It is at best misleading, in the worst case it will cause bugs:

intlFormatDistance(new Date(), new Date(), { locale: 'ru' }) // numeric is not undefined
tan75

comment created time in 2 months

Pull request review commentdate-fns/date-fns

Intl format relative2

+/* eslint-env mocha */++import assert from 'assert'+import intlFormatDistance from '.'++describe('intlFormatDistance', function () {

Please modernize the code function () > () =>

tan75

comment created time in 2 months

Pull request review commentdate-fns/date-fns

Intl format relative2

+import {+  secondsInDay,+  secondsInHour,+  secondsInMinute,+  secondsInMonth,+  secondsInQuarter,+  secondsInWeek,+  secondsInYear,+} from '../constants'+import differenceInCalendarDays from '../differenceInCalendarDays/index'+import differenceInCalendarMonths from '../differenceInCalendarMonths/index'+import differenceInCalendarQuarters from '../differenceInCalendarQuarters/index'+import differenceInCalendarWeeks from '../differenceInCalendarWeeks/index'+import differenceInCalendarYears from '../differenceInCalendarYears/index'+import differenceInHours from '../differenceInHours/index'+import differenceInMinutes from '../differenceInMinutes/index'+import differenceInSeconds from '../differenceInSeconds/index'+import toDate from '../toDate/index'+import type { Unit } from '../types'+import requiredArgs from '../_lib/requiredArgs/index'++/**+ * @name intlFormatDistance+ * @category Common Helpers+ * @summary Enables language-sensitive relative time formatting according to the locale and formatting options+ * of the given Intl.RelativeTimeFormat object.+ * @description+ * The API gets a difference between two given dates and either picks the most appropriate unit+ * depending on the distance (the less the distance the smaller the unit),+ * or allows a user to pass in a unit as well.+ * If a unit is passed in, it will be applied accordingly. Otherwise - see the table below:+ *+ * | Distance between dates       | Result              |+ * |------------------------------|---------------------|+ * |   1 second                   | in 1 second         |+ * |   n seconds                  | in n seconds        |+ * |   1 minute                   | in 1 minute         |+ * |   n minutes                  | in n minutes        |+ * |   1 hour                     | in 1 hour           |+ * |   n hours                    | in n hours          |+ * |   1 day                      | in 1 day            |+ * |   n days                     | in n days           |+ * |   1 week                     | in 1 week           |+ * |   n weeks                    | in n weeks          |+ * |   1 month                    | in 1 month          |+ * |   n months                   | in n months         |+ * |   1 quarter                  | in 1 quarter        |+ * |   n quarters                 | in n quarters       |+ * |   1 year                     | in 1 year           |+ * |   n years                    | in n years          |+ *+ *+ *  With `options.unit = 'hour'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 24 hours          |+ * | 1 week                 | in 168 hours         |+ *+ *+ *  With `options.locale = 'de'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 1 Tag             |+ * | 1 week                 | in 1 Woche           |+ *+ *+ *  With `options.numeric: 'auto' `+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 0 seconds              | now                  |+ * | 1 day                  | tomorrow             |+ *+ *+ * | Other options     | Possible values         |  Result            |+ * |-------------------|-------------------------|--------------------|+ * | localeMatcher     | 'lookup' and 'best fit' | N/A                |+ * |                   |                         |                    |+ * | numeric           | 'always'                | 1 day ago          |+ * |                   | 'auto'                  | yesterday          |+ * |                   |                         |                    |+ * | style             | 'long'                  | in 1 month         |+ * |                   | 'short'                 | in 1 mo.           |+ * |                   | 'narrow'                | in 1 mo.           |+ *+ * @param {Date|Number} date - the date+ * @param {Date|Number} baseDate - the date to compare with.+ * @param {Object} [options] - an object with options.+ * @param {String} [options.unit] - formats the distance with the given unit ('year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second').+ * @param {String|String[]} [options.locale] - the locale to use (BCP 47 language tag). [For the reference see MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation).+ * @param {String} [options.localeMatcher='best fit'] - the locale matching algorithm to use. Other value: "lookup".+ * @param {String} [options.numeric='always'] - the output message format. Other value: "auto".+ * @param {String} [options.style='long'] - the length of the internationalized message. Other values: "short" or "narrow";+ * @returns {String} the distance in words according to language-sensitive relative time formatting.+ * @throws {TypeError} 2 arguments required+ * @throws {RangeError} `date` must not be Invalid Date+ * @throws {RangeError} `baseDate` must not be Invalid Date+ * @throws {RangeError} `options.unit` must not be invalid Unit+ * @throws {RangeError} `options.locale` must not be invalid locale+ * @throws {RangeError} `options.localeMatcher` must not be invalid localeMatcher+ * @throws {RangeError} `options.numeric` must not be invalid numeric+ * @throws {RangeError} `options.style` must not be invalid style+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0)+ * )+ * //=> 'in 1 hour'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0)+ * )+ * //=> 'in 1 year'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in quarters in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'quarter' }+ * )+ * //=> 'in 4 quarters'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in months in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'month' }+ * )+ * //=> 'in 12 months'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in weeks in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'week' }+ * )+ * //=> 'in 52 weeks'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in days in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'day' }+ * )+ * //=> 'in 365 days'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in hours in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'hour' }+ * )+ * //=> 'in 8,760 hours'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in minutes in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute' }+ * )+ * //=> 'in 525,600 minutes'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in seconds in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'second' }+ * )+ * //=> 'in 31,536,000 seconds'+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in minutes in Spanish in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute', locale: 'es' }+ * )+ * //=> 'dentro de 60 minutos'+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in minutes in German in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute', locale: 'de' }+ * )+ * //=> 'in 60 Minuten'+ */+interface Options {+  unit?: Unit+  locale?: Intl.UnicodeBCP47LocaleIdentifier+  localeMatcher?: Intl.RelativeTimeFormatLocaleMatcher+  numeric?: Intl.RelativeTimeFormatNumeric+  style?: Intl.RelativeTimeFormatStyle+}++export default function intlFormatDistance(+  date: Date | number,+  baseDate: Date | number,+  options: Options = { numeric: 'auto' }+): String {+  requiredArgs(2, arguments)++  let value: number = 0+  let unit: Intl.RelativeTimeFormatUnit+  let dateLeft = toDate(date)+  let dateRight = toDate(baseDate)++  if (!options?.unit) {+    // Get the unit based on diffInSeconds calculations if no unit passed in+    const diffInSeconds = differenceInSeconds(dateLeft, dateRight) // The smallest unit++    if (Math.abs(diffInSeconds) < secondsInMinute) {+      value = differenceInSeconds(dateLeft, dateRight)+      unit = 'second'+    } else if (Math.abs(diffInSeconds) < secondsInHour) {+      value = differenceInMinutes(dateLeft, dateRight)+      unit = 'minute'+    } else if (Math.abs(diffInSeconds) < secondsInDay) {+      value = differenceInHours(dateLeft, dateRight)+      unit = 'hour'+    } else if (Math.abs(diffInSeconds) < secondsInWeek) {+      value = differenceInCalendarDays(dateLeft, dateRight)+      unit = 'day'+    } else if (Math.abs(diffInSeconds) < secondsInMonth) {+      value = differenceInCalendarWeeks(dateLeft, dateRight)+      unit = 'week'+    } else if (Math.abs(diffInSeconds) < secondsInQuarter) {+      value = differenceInCalendarMonths(dateLeft, dateRight)+      unit = 'month'+    } else if (Math.abs(diffInSeconds) < secondsInYear) {+      if (differenceInCalendarQuarters(dateLeft, dateRight) < 4) {+        // To filter out cases that are less than a year but match 4 quarters+        value = differenceInCalendarQuarters(dateLeft, dateRight)+        unit = 'quarter'+      } else {+        value = differenceInCalendarYears(dateLeft, dateRight)+        unit = 'year'+      }+    } else {+      value = differenceInCalendarYears(dateLeft, dateRight)+      unit = 'year'+    }+  } else {+    // Get the value if unit has been passed in+    unit = options?.unit+    if (unit === 'second') {+      value = differenceInSeconds(dateLeft, dateRight)+    } else if (unit === 'minute') {+      value = differenceInMinutes(dateLeft, dateRight)+    } else if (unit === 'hour') {+      value = differenceInHours(dateLeft, dateRight)+    } else if (unit === 'day') {+      value = differenceInCalendarDays(dateLeft, dateRight)+    } else if (unit === 'week') {+      value = differenceInCalendarWeeks(dateLeft, dateRight)+    } else if (unit === 'month') {+      value = differenceInCalendarMonths(dateLeft, dateRight)+    } else if (unit === 'quarter') {+      value = differenceInCalendarQuarters(dateLeft, dateRight)+    } else if (unit === 'year') {+      value = differenceInCalendarYears(dateLeft, dateRight)+    }+  }++  const rtf = new Intl.RelativeTimeFormat(+    options?.locale || 'en',

We should probably remove the default value. See the chat for further details.

tan75

comment created time in 2 months

Pull request review commentdate-fns/date-fns

Intl format relative2

+import {+  secondsInDay,+  secondsInHour,+  secondsInMinute,+  secondsInMonth,+  secondsInQuarter,+  secondsInWeek,+  secondsInYear,+} from '../constants'+import differenceInCalendarDays from '../differenceInCalendarDays/index'+import differenceInCalendarMonths from '../differenceInCalendarMonths/index'+import differenceInCalendarQuarters from '../differenceInCalendarQuarters/index'+import differenceInCalendarWeeks from '../differenceInCalendarWeeks/index'+import differenceInCalendarYears from '../differenceInCalendarYears/index'+import differenceInHours from '../differenceInHours/index'+import differenceInMinutes from '../differenceInMinutes/index'+import differenceInSeconds from '../differenceInSeconds/index'+import toDate from '../toDate/index'+import type { Unit } from '../types'+import requiredArgs from '../_lib/requiredArgs/index'++/**+ * @name intlFormatDistance+ * @category Common Helpers+ * @summary Enables language-sensitive relative time formatting according to the locale and formatting options+ * of the given Intl.RelativeTimeFormat object.+ * @description+ * The API gets a difference between two given dates and either picks the most appropriate unit+ * depending on the distance (the less the distance the smaller the unit),+ * or allows a user to pass in a unit as well.+ * If a unit is passed in, it will be applied accordingly. Otherwise - see the table below:+ *+ * | Distance between dates       | Result              |+ * |------------------------------|---------------------|+ * |   1 second                   | in 1 second         |+ * |   n seconds                  | in n seconds        |+ * |   1 minute                   | in 1 minute         |+ * |   n minutes                  | in n minutes        |+ * |   1 hour                     | in 1 hour           |+ * |   n hours                    | in n hours          |+ * |   1 day                      | in 1 day            |+ * |   n days                     | in n days           |+ * |   1 week                     | in 1 week           |+ * |   n weeks                    | in n weeks          |+ * |   1 month                    | in 1 month          |+ * |   n months                   | in n months         |+ * |   1 quarter                  | in 1 quarter        |+ * |   n quarters                 | in n quarters       |+ * |   1 year                     | in 1 year           |+ * |   n years                    | in n years          |+ *+ *+ *  With `options.unit = 'hour'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 24 hours          |+ * | 1 week                 | in 168 hours         |+ *+ *+ *  With `options.locale = 'de'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 1 Tag             |+ * | 1 week                 | in 1 Woche           |+ *+ *+ *  With `options.numeric: 'auto' `+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 0 seconds              | now                  |+ * | 1 day                  | tomorrow             |+ *+ *+ * | Other options     | Possible values         |  Result            |+ * |-------------------|-------------------------|--------------------|+ * | localeMatcher     | 'lookup' and 'best fit' | N/A                |+ * |                   |                         |                    |+ * | numeric           | 'always'                | 1 day ago          |+ * |                   | 'auto'                  | yesterday          |+ * |                   |                         |                    |+ * | style             | 'long'                  | in 1 month         |+ * |                   | 'short'                 | in 1 mo.           |+ * |                   | 'narrow'                | in 1 mo.           |+ *+ * @param {Date|Number} date - the date+ * @param {Date|Number} baseDate - the date to compare with.+ * @param {Object} [options] - an object with options.+ * @param {String} [options.unit] - formats the distance with the given unit ('year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second').+ * @param {String|String[]} [options.locale] - the locale to use (BCP 47 language tag). [For the reference see MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation).+ * @param {String} [options.localeMatcher='best fit'] - the locale matching algorithm to use. Other value: "lookup".+ * @param {String} [options.numeric='always'] - the output message format. Other value: "auto".+ * @param {String} [options.style='long'] - the length of the internationalized message. Other values: "short" or "narrow";+ * @returns {String} the distance in words according to language-sensitive relative time formatting.+ * @throws {TypeError} 2 arguments required+ * @throws {RangeError} `date` must not be Invalid Date+ * @throws {RangeError} `baseDate` must not be Invalid Date+ * @throws {RangeError} `options.unit` must not be invalid Unit+ * @throws {RangeError} `options.locale` must not be invalid locale+ * @throws {RangeError} `options.localeMatcher` must not be invalid localeMatcher+ * @throws {RangeError} `options.numeric` must not be invalid numeric+ * @throws {RangeError} `options.style` must not be invalid style+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0)+ * )+ * //=> 'in 1 hour'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0)+ * )+ * //=> 'in 1 year'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in quarters in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'quarter' }+ * )+ * //=> 'in 4 quarters'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in months in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'month' }+ * )+ * //=> 'in 12 months'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in weeks in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'week' }+ * )+ * //=> 'in 52 weeks'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in days in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'day' }+ * )+ * //=> 'in 365 days'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in hours in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'hour' }+ * )+ * //=> 'in 8,760 hours'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in minutes in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute' }+ * )+ * //=> 'in 525,600 minutes'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in seconds in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'second' }+ * )+ * //=> 'in 31,536,000 seconds'+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in minutes in Spanish in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute', locale: 'es' }+ * )+ * //=> 'dentro de 60 minutos'+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in minutes in German in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute', locale: 'de' }+ * )+ * //=> 'in 60 Minuten'+ */+interface Options {

export interface IntlFormatDistanceOptions {
tan75

comment created time in 2 months

Pull request review commentdate-fns/date-fns

Intl format relative2

     "glob-promise": "^2.0.0",     "globby": "^11.0.3",     "gzip-size-cli": "^1.0.0",-    "husky": "^1.0.1",+    "husky": "^7.0.2",

I think this is a mistake, I don't see the change in yarn.lock. Also unrelated.

tan75

comment created time in 2 months

Pull request review commentdate-fns/date-fns

Intl format relative2

+import {+  secondsInDay,+  secondsInHour,+  secondsInMinute,+  secondsInMonth,+  secondsInQuarter,+  secondsInWeek,+  secondsInYear,+} from '../constants'+import differenceInCalendarDays from '../differenceInCalendarDays/index'+import differenceInCalendarMonths from '../differenceInCalendarMonths/index'+import differenceInCalendarQuarters from '../differenceInCalendarQuarters/index'+import differenceInCalendarWeeks from '../differenceInCalendarWeeks/index'+import differenceInCalendarYears from '../differenceInCalendarYears/index'+import differenceInHours from '../differenceInHours/index'+import differenceInMinutes from '../differenceInMinutes/index'+import differenceInSeconds from '../differenceInSeconds/index'+import toDate from '../toDate/index'+import type { Unit } from '../types'+import requiredArgs from '../_lib/requiredArgs/index'++/**+ * @name intlFormatDistance+ * @category Common Helpers+ * @summary Enables language-sensitive relative time formatting according to the locale and formatting options+ * of the given Intl.RelativeTimeFormat object.+ * @description+ * The API gets a difference between two given dates and either picks the most appropriate unit+ * depending on the distance (the less the distance the smaller the unit),+ * or allows a user to pass in a unit as well.+ * If a unit is passed in, it will be applied accordingly. Otherwise - see the table below:+ *+ * | Distance between dates       | Result              |+ * |------------------------------|---------------------|+ * |   1 second                   | in 1 second         |+ * |   n seconds                  | in n seconds        |+ * |   1 minute                   | in 1 minute         |+ * |   n minutes                  | in n minutes        |+ * |   1 hour                     | in 1 hour           |+ * |   n hours                    | in n hours          |+ * |   1 day                      | in 1 day            |+ * |   n days                     | in n days           |+ * |   1 week                     | in 1 week           |+ * |   n weeks                    | in n weeks          |+ * |   1 month                    | in 1 month          |+ * |   n months                   | in n months         |+ * |   1 quarter                  | in 1 quarter        |+ * |   n quarters                 | in n quarters       |+ * |   1 year                     | in 1 year           |+ * |   n years                    | in n years          |+ *+ *+ *  With `options.unit = 'hour'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 24 hours          |+ * | 1 week                 | in 168 hours         |+ *+ *+ *  With `options.locale = 'de'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 1 Tag             |+ * | 1 week                 | in 1 Woche           |+ *+ *+ *  With `options.numeric: 'auto' `+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 0 seconds              | now                  |+ * | 1 day                  | tomorrow             |+ *+ *+ * | Other options     | Possible values         |  Result            |+ * |-------------------|-------------------------|--------------------|+ * | localeMatcher     | 'lookup' and 'best fit' | N/A                |+ * |                   |                         |                    |+ * | numeric           | 'always'                | 1 day ago          |+ * |                   | 'auto'                  | yesterday          |+ * |                   |                         |                    |+ * | style             | 'long'                  | in 1 month         |+ * |                   | 'short'                 | in 1 mo.           |+ * |                   | 'narrow'                | in 1 mo.           |+ *+ * @param {Date|Number} date - the date+ * @param {Date|Number} baseDate - the date to compare with.+ * @param {Object} [options] - an object with options.+ * @param {String} [options.unit] - formats the distance with the given unit ('year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second').+ * @param {String|String[]} [options.locale] - the locale to use (BCP 47 language tag). [For the reference see MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation).+ * @param {String} [options.localeMatcher='best fit'] - the locale matching algorithm to use. Other value: "lookup".+ * @param {String} [options.numeric='always'] - the output message format. Other value: "auto".+ * @param {String} [options.style='long'] - the length of the internationalized message. Other values: "short" or "narrow";+ * @returns {String} the distance in words according to language-sensitive relative time formatting.+ * @throws {TypeError} 2 arguments required+ * @throws {RangeError} `date` must not be Invalid Date+ * @throws {RangeError} `baseDate` must not be Invalid Date+ * @throws {RangeError} `options.unit` must not be invalid Unit+ * @throws {RangeError} `options.locale` must not be invalid locale+ * @throws {RangeError} `options.localeMatcher` must not be invalid localeMatcher+ * @throws {RangeError} `options.numeric` must not be invalid numeric+ * @throws {RangeError} `options.style` must not be invalid style+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0)+ * )+ * //=> 'in 1 hour'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0)+ * )+ * //=> 'in 1 year'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in quarters in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'quarter' }+ * )+ * //=> 'in 4 quarters'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in months in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'month' }+ * )+ * //=> 'in 12 months'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in weeks in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'week' }+ * )+ * //=> 'in 52 weeks'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in days in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'day' }+ * )+ * //=> 'in 365 days'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in hours in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'hour' }+ * )+ * //=> 'in 8,760 hours'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in minutes in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute' }+ * )+ * //=> 'in 525,600 minutes'+ *+ * @example+ * // What is the distance between Apr, 4 1987 10:30:00 and Apr, 4 1986 10:30:00 in seconds in Intl?+ * const result = intlFormatDistance(+ *   new Date(1987, 3, 4, 10, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'second' }+ * )+ * //=> 'in 31,536,000 seconds'+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in minutes in Spanish in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute', locale: 'es' }+ * )+ * //=> 'dentro de 60 minutos'+ *+ * @example+ * // What is the distance between Apr, 4 1986 11:30:00 and Apr, 4 1986 10:30:00 in minutes in German in Intl?+ * const result = intlFormatDistance(+ *   new Date(1986, 3, 4, 11, 30, 0),+ *   new Date(1986, 3, 4, 10, 30, 0),+ *   { unit: 'minute', locale: 'de' }+ * )+ * //=> 'in 60 Minuten'+ */+interface Options {+  unit?: Unit+  locale?: Intl.UnicodeBCP47LocaleIdentifier+  localeMatcher?: Intl.RelativeTimeFormatLocaleMatcher+  numeric?: Intl.RelativeTimeFormatNumeric+  style?: Intl.RelativeTimeFormatStyle+}++export default function intlFormatDistance(+  date: Date | number,+  baseDate: Date | number,+  options: Options = { numeric: 'auto' }+): String {+  requiredArgs(2, arguments)++  let value: number = 0+  let unit: Intl.RelativeTimeFormatUnit+  let dateLeft = toDate(date)+  let dateRight = toDate(baseDate)
  const dateLeft = toDate(date)
  const dateRight = toDate(baseDate)
tan75

comment created time in 2 months

Pull request review commentdate-fns/date-fns

Intl format relative2

+import {+  secondsInDay,+  secondsInHour,+  secondsInMinute,+  secondsInMonth,+  secondsInQuarter,+  secondsInWeek,+  secondsInYear,+} from '../constants'+import differenceInCalendarDays from '../differenceInCalendarDays/index'+import differenceInCalendarMonths from '../differenceInCalendarMonths/index'+import differenceInCalendarQuarters from '../differenceInCalendarQuarters/index'+import differenceInCalendarWeeks from '../differenceInCalendarWeeks/index'+import differenceInCalendarYears from '../differenceInCalendarYears/index'+import differenceInHours from '../differenceInHours/index'+import differenceInMinutes from '../differenceInMinutes/index'+import differenceInSeconds from '../differenceInSeconds/index'+import toDate from '../toDate/index'+import type { Unit } from '../types'+import requiredArgs from '../_lib/requiredArgs/index'++/**+ * @name intlFormatDistance+ * @category Common Helpers+ * @summary Enables language-sensitive relative time formatting according to the locale and formatting options+ * of the given Intl.RelativeTimeFormat object.+ * @description+ * The API gets a difference between two given dates and either picks the most appropriate unit+ * depending on the distance (the less the distance the smaller the unit),+ * or allows a user to pass in a unit as well.+ * If a unit is passed in, it will be applied accordingly. Otherwise - see the table below:+ *+ * | Distance between dates       | Result              |+ * |------------------------------|---------------------|+ * |   1 second                   | in 1 second         |+ * |   n seconds                  | in n seconds        |+ * |   1 minute                   | in 1 minute         |+ * |   n minutes                  | in n minutes        |+ * |   1 hour                     | in 1 hour           |+ * |   n hours                    | in n hours          |+ * |   1 day                      | in 1 day            |+ * |   n days                     | in n days           |+ * |   1 week                     | in 1 week           |+ * |   n weeks                    | in n weeks          |+ * |   1 month                    | in 1 month          |+ * |   n months                   | in n months         |+ * |   1 quarter                  | in 1 quarter        |+ * |   n quarters                 | in n quarters       |+ * |   1 year                     | in 1 year           |+ * |   n years                    | in n years          |+ *+ *+ *  With `options.unit = 'hour'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 24 hours          |+ * | 1 week                 | in 168 hours         |+ *+ *+ *  With `options.locale = 'de'`+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 1 day                  | in 1 Tag             |+ * | 1 week                 | in 1 Woche           |+ *+ *+ *  With `options.numeric: 'auto' `+ * | Distance between dates | Result               |+ * |------------------------|----------------------|+ * | 0 seconds              | now                  |+ * | 1 day                  | tomorrow             |+ *+ *+ * | Other options     | Possible values         |  Result            |+ * |-------------------|-------------------------|--------------------|+ * | localeMatcher     | 'lookup' and 'best fit' | N/A                |+ * |                   |                         |                    |+ * | numeric           | 'always'                | 1 day ago          |+ * |                   | 'auto'                  | yesterday          |+ * |                   |                         |                    |+ * | style             | 'long'                  | in 1 month         |+ * |                   | 'short'                 | in 1 mo.           |+ * |                   | 'narrow'                | in 1 mo.           |+ *+ * @param {Date|Number} date - the date+ * @param {Date|Number} baseDate - the date to compare with.+ * @param {Object} [options] - an object with options.+ * @param {String} [options.unit] - formats the distance with the given unit ('year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second').+ * @param {String|String[]} [options.locale] - the locale to use (BCP 47 language tag). [For the reference see MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation).+ * @param {String} [options.localeMatcher='best fit'] - the locale matching algorithm to use. Other value: "lookup".+ * @param {String} [options.numeric='always'] - the output message format. Other value: "auto".+ * @param {String} [options.style='long'] - the length of the internationalized message. Other values: "short" or "narrow";
 * @param {String} [options.style='long'] - the length of the internationalized message. Other values: "short" or "narrow".
tan75

comment created time in 2 months

Pull request review commentdate-fns/date-fns

Intl format relative2

  */ export const daysInWeek = 7 +/**+ * Days In Year
 * Days in 1 year
tan75

comment created time in 2 months

PullRequestReviewEvent
PullRequestReviewEvent

push eventkossnocorp/typeroo

Sasha Koss

commit sha 5c4d3f053f34d93e463f8de47565a093d2ca28bd

Add NullableKeys type

view details

push time in 2 months

push eventdate-fns/date-fns

Sasha Koss

commit sha 653f97b8610f160d9183bd4b7c9d7c03ab6426c2

Add changelog entry for v2.26.0

view details

Sasha Koss

commit sha 9057eee0b0ac961033df7528a8c8b40bd845eb78

Add the release doc

view details

push time in 2 months

release date-fns/date-fns

v2.26.0

released time in 2 months

created tagdate-fns/date-fns

tagv2.26.0

⏳ Modern JavaScript date utility library ⌛️

created time in 2 months

push eventdate-fns/date-fns

Sasha Koss

commit sha 4a0528abe4c267fb394339fb299c8fcf1f848dd3

Rollback breaking JSDoc changes

view details

Sasha Koss

commit sha 9c53bd1462cae60470552c4c522338ab0dc4560f

Commit library build

view details

push time in 2 months

push eventkossnocorp/typesaurus-security

Sasha Koss

commit sha 5e75568ad55305690cea6bd67bc46d27d1d16265

Fix stringifyRule

view details

Sasha Koss

commit sha 18d8000b947c52003c0c3e223b80a0f3db0b77ac

Update README to add private beta access note

view details

push time in 2 months

push eventkossnocorp/typesaurus-security

Sasha Koss

commit sha a6af4056841ea9a12194276c68e6700d3a694e6c

Fix not function not accepting primitives

view details

push time in 2 months

push eventkossnocorp/typesaurus-security

Sasha Koss

commit sha f0fe4fe7c79b769c39fe26ca661ce0d3110ca624

Add null and undefined to SecurityRule

view details

push time in 2 months

push eventdate-fns/date-fns

Lesha Kostiuchenko

commit sha b191a493ecc1b1d6282059f80e12c5b01ffd5b75

Convert nextX and previousX functions to v3

view details

push time in 2 months

delete branch date-fns/date-fns

delete branch : v3-nextX-previousX

delete time in 2 months

PR merged date-fns/date-fns

Reviewers
Convert nextX and previousX functions to v3 Hacktoberfest hacktoberfest-accepted
+86 -129

0 comment

27 changed files

leshakoss

pr closed time in 2 months

startedChFlick/prettier-plugin-firestore-rules

started time in 2 months

push eventkossnocorp/typesaurus-security

Sasha Koss

commit sha 2522b8748d39b78f9cd10d27adcab47d3b80b546

Promote to v0.9.0

view details

push time in 2 months

more