@nuxtjs/date-fns
Advanced tools
+13
-0
@@ -5,2 +5,15 @@ # Changelog | ||
| ## [1.5.0](https://github.com/nuxt-community/date-fns-module/compare/v1.4.3...v1.5.0) (2021-03-29) | ||
| ### Features | ||
| * add fallback locale ([#51](https://github.com/nuxt-community/date-fns-module/issues/51)) ([bdae7ce](https://github.com/nuxt-community/date-fns-module/commit/bdae7ce67f9226f08f0a10cf93a8a442fd35e993)) | ||
| * remove unsed locales ([#57](https://github.com/nuxt-community/date-fns-module/issues/57)) ([8a1673b](https://github.com/nuxt-community/date-fns-module/commit/8a1673b713b154580b06dae909dc6da4de2c0f28)) | ||
| ### Bug Fixes | ||
| * types ([#56](https://github.com/nuxt-community/date-fns-module/issues/56)) ([6f2f648](https://github.com/nuxt-community/date-fns-module/commit/6f2f6484522e7912067d3ba8022d0969df340d8f)) | ||
| ### [1.4.3](https://github.com/nuxt-community/date-fns-module/compare/v1.4.2...v1.4.3) (2020-11-11) | ||
@@ -7,0 +20,0 @@ |
+14
-6
@@ -11,2 +11,3 @@ const { resolve } = require('path') | ||
| defaultLocale: null, | ||
| fallbackLocale: null, | ||
| format: null, | ||
@@ -19,6 +20,2 @@ methods: null, | ||
| if (options.defaultLocale) { | ||
| options.defaultLocale = options.defaultLocale.replace(/[_-]/, '') | ||
| } | ||
| if (!Array.isArray(options.locales)) { | ||
@@ -28,4 +25,2 @@ options.locales = [options.locales] | ||
| options.locales = options.locales.map(l => l.replace(/[_-]/, '')) | ||
| if (options.defaultLocale && !options.locales.includes(options.defaultLocale)) { | ||
@@ -35,2 +30,6 @@ options.locales.push(options.defaultLocale) | ||
| if (options.fallbackLocale && !options.locales.includes(options.fallbackLocale)) { | ||
| options.locales.push(options.fallbackLocale) | ||
| } | ||
| this.addPlugin({ | ||
@@ -41,4 +40,13 @@ src: resolve(__dirname, 'plugin.js'), | ||
| }) | ||
| this.extendBuild((config) => { | ||
| const { ContextReplacementPlugin } = require('webpack') | ||
| config.plugins.push(new ContextReplacementPlugin( | ||
| /date-fns[/\\]/, | ||
| new RegExp(`[/\\\\](${options.locales.join('|')})[/\\\\]index.js$`) | ||
| )) | ||
| }) | ||
| } | ||
| module.exports.meta = require('../package.json') |
+27
-17
@@ -1,13 +0,16 @@ | ||
| <% if (options.methods) { %> | ||
| import { <%= options.methods.join(', ') %> } from 'date-fns' | ||
| <% } else { %> | ||
| import * as dateFns from 'date-fns' | ||
| <% } %> | ||
| <% if (options.methods && options.methods.length) { %>import { <%= options.methods.join(', ') %> } from 'date-fns' | ||
| <% } else { %>import * as dateFns from 'date-fns'<% } %> | ||
| <% if (options.locales) { %> | ||
| import { <%= options.locales.join(', ') %> } from 'date-fns/locale' | ||
| <% } %> | ||
| const locales = [] | ||
| export default (ctx, inject) => { | ||
| <% if (options.methods) { %> | ||
| const importLocale = async (locale) => { | ||
| try { | ||
| locales[locale] = await import(`date-fns/locale/${locale}/index.js`) | ||
| } catch (e) { | ||
| // | ||
| } | ||
| } | ||
| export default async (ctx, inject) => { | ||
| <% if (options.methods && options.methods.length) { %> | ||
| const dateFns = { <%= options.methods.join(', ') %> } | ||
@@ -17,2 +20,6 @@ <% } %> | ||
| <% if (options.locales && options.locales.length) { %> | ||
| <%= options.locales.map(l => `await importLocale('${l}')`).join('\n') %> | ||
| <% } %> | ||
| function parsedDate(date) { | ||
@@ -42,2 +49,3 @@ if (dateFns.parseISO) { | ||
| 'formatRelative', | ||
| 'isMatch', | ||
| 'isSameWeek', | ||
@@ -82,6 +90,2 @@ 'setDay', | ||
| function mergeOptions(options) { | ||
| const locales = [] | ||
| <%= options.locales.map(l => `locales['${l}'] = ${l}` ).join('\n') %> | ||
| <% if (options.defaultLocale) { %> | ||
@@ -91,6 +95,12 @@ options = { locale: '<%= options.defaultLocale %>', ...options } | ||
| <% if (options.fallbackLocale) { %> | ||
| options = { fallbackLocale: '<%= options.fallbackLocale %>', ...options } | ||
| <% } %> | ||
| if (options && typeof options.locale === 'string') { | ||
| const locale = options.locale.replace(/[_-]/, '') | ||
| if (locales[locale]) { | ||
| options.locale = locales[locale] | ||
| if (locales[options.locale]) { | ||
| options.locale = locales[options.locale] | ||
| } else if (options.fallbackLocale && locales[options.fallbackLocale]) { | ||
| console.warn(`[date-fns] locale '${options.locale}' not found, using fallback locale '${options.fallbackLocale}'`) | ||
| options.locale = locales[options.fallbackLocale] | ||
| } else { | ||
@@ -97,0 +107,0 @@ console.warn(`[date-fns] locale '${options.locale}' not found.`) |
+2
-2
| { | ||
| "name": "@nuxtjs/date-fns", | ||
| "version": "1.4.3", | ||
| "version": "1.5.0", | ||
| "description": "Modern JavaScript date utility library - date-fns for Nuxt.js", | ||
@@ -23,3 +23,3 @@ "repository": "nuxt-community/date-fns-module", | ||
| "dependencies": { | ||
| "date-fns": "^2.16.1" | ||
| "date-fns": "^2.19.0" | ||
| }, | ||
@@ -26,0 +26,0 @@ "devDependencies": { |
+7
-0
@@ -89,2 +89,9 @@ # @nuxtjs/date-fns | ||
| ### `fallbackLocale` | ||
| - Type: `String` | ||
| - Default: `null` | ||
| You can preset a fallback locale for when a method is called with an unsupported locale. | ||
| ### `format` | ||
@@ -91,0 +98,0 @@ |
+3
-450
@@ -1,79 +0,6 @@ | ||
| import { Interval, Locale as LocaleDateFns, Duration } from 'date-fns' | ||
| import dateFns, { Interval, Locale as LocaleDateFns, Duration } from 'date-fns' | ||
| type Locale = LocaleDateFns | string | ||
| interface dateFns { | ||
| add(date: Date | number, duration: Duration): Date | ||
| addBusinessDays(date: Date | number, amount: number): Date | ||
| addDays(date: Date | number, amount: number): Date | ||
| addHours(date: Date | number, amount: number): Date | ||
| addISOWeekYears(date: Date | number, amount: number): Date | ||
| addMilliseconds(date: Date | number, amount: number): Date | ||
| addMinutes(date: Date | number, amount: number): Date | ||
| addMonths(date: Date | number, amount: number): Date | ||
| addQuarters(date: Date | number, amount: number): Date | ||
| addSeconds(date: Date | number, amount: number): Date | ||
| addWeeks(date: Date | number, amount: number): Date | ||
| addYears(date: Date | number, amount: number): Date | ||
| areIntervalsOverlapping( | ||
| intervalLeft: Interval, | ||
| intervalRight: Interval, | ||
| options?: { | ||
| inclusive?: boolean | ||
| } | ||
| ): boolean | ||
| closestIndexTo( | ||
| dateToCompare: Date | number, | ||
| datesArray: (Date | number)[] | ||
| ): number | ||
| closestTo(dateToCompare: Date | number, datesArray: (Date | number)[]): Date | ||
| compareAsc(dateLeft: Date | number, dateRight: Date | number): number | ||
| compareDesc(dateLeft: Date | number, dateRight: Date | number): number | ||
| differenceInBusinessDays( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| differenceInCalendarDays( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| differenceInCalendarISOWeeks( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| differenceInCalendarISOWeekYears( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| differenceInCalendarMonths( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| differenceInCalendarQuarters( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| export interface NuxtDateFnsInstance extends dateFns { | ||
| differenceInCalendarWeeks( | ||
@@ -88,51 +15,2 @@ dateLeft: Date | number, | ||
| differenceInCalendarYears( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| differenceInDays(dateLeft: Date | number, dateRight: Date | number): number | ||
| differenceInHours(dateLeft: Date | number, dateRight: Date | number): number | ||
| differenceInISOWeekYears( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| differenceInMilliseconds( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| differenceInMinutes(dateLeft: Date | number, dateRight: Date | number): number | ||
| differenceInMonths(dateLeft: Date | number, dateRight: Date | number): number | ||
| differenceInQuarters( | ||
| dateLeft: Date | number, | ||
| dateRight: Date | number | ||
| ): number | ||
| differenceInSeconds(dateLeft: Date | number, dateRight: Date | number): number | ||
| differenceInWeeks(dateLeft: Date | number, dateRight: Date | number): number | ||
| differenceInYears(dateLeft: Date | number, dateRight: Date | number): number | ||
| eachDayOfInterval( | ||
| interval: Interval, | ||
| options?: { | ||
| step?: number | ||
| } | ||
| ): Date[] | ||
| eachMonthOfInterval(interval: Interval): Date[] | ||
| eachWeekendOfInterval(interval: Interval): Date[] | ||
| eachWeekendOfMonth(date: Date | number): Date[] | ||
| eachWeekendOfYear(date: Date | number): Date[] | ||
| eachWeekOfInterval( | ||
@@ -146,31 +24,2 @@ interval: Interval, | ||
| eachYearOfInterval(interval: Interval): Date[] | ||
| endOfDay(date: Date | number): Date | ||
| endOfDecade( | ||
| date: Date | number, | ||
| options?: { | ||
| additionalDigits?: 0 | 1 | 2 | ||
| } | ||
| ): Date | ||
| endOfHour(date: Date | number): Date | ||
| endOfISOWeek(date: Date | number): Date | ||
| endOfISOWeekYear(date: Date | number): Date | ||
| endOfMinute(date: Date | number): Date | ||
| endOfMonth(date: Date | number): Date | ||
| endOfQuarter(date: Date | number): Date | ||
| endOfSecond(date: Date | number): Date | ||
| endOfToday(): Date | ||
| endOfTomorrow(): Date | ||
| endOfWeek( | ||
@@ -184,9 +33,5 @@ date: Date | number, | ||
| endOfYear(date: Date | number): Date | ||
| endOfYesterday(): Date | ||
| format( | ||
| date: Date | number, | ||
| format: string, | ||
| format?: string, | ||
| options?: { | ||
@@ -251,20 +96,2 @@ locale?: Locale | ||
| formatISO( | ||
| date: Date | number, | ||
| options?: { | ||
| format?: 'extended' | 'basic' | ||
| representation?: 'complete' | 'date' | 'time' | ||
| } | ||
| ): string | ||
| formatISO9075( | ||
| date: Date | number, | ||
| options?: { | ||
| format?: 'extended' | 'basic' | ||
| representation?: 'complete' | 'date' | 'time' | ||
| } | ||
| ): string | ||
| formatISODuration(duration: Duration): string | ||
| formatRelative( | ||
@@ -279,54 +106,2 @@ date: Date | number, | ||
| formatRFC3339( | ||
| date: Date | number, | ||
| options?: { | ||
| fractionDigits?: 0 | 1 | 2 | 3 | ||
| } | ||
| ): string | ||
| formatRFC7231(date: Date | number): string | ||
| fromUnixTime(unixTime: number): Date | ||
| getDate(date: Date | number): number | ||
| getDay(date: Date | number): 0 | 1 | 2 | 3 | 4 | 5 | 6 | ||
| getDayOfYear(date: Date | number): number | ||
| getDaysInMonth(date: Date | number): number | ||
| getDaysInYear(date: Date | number): number | ||
| getDecade(date: Date | number): number | ||
| getHours(date: Date | number): number | ||
| getISODay(date: Date | number): number | ||
| getISOWeek(date: Date | number): number | ||
| getISOWeeksInYear(date: Date | number): number | ||
| getISOWeekYear(date: Date | number): number | ||
| getMilliseconds(date: Date | number): number | ||
| getMinutes(date: Date | number): number | ||
| getMonth(date: Date | number): number | ||
| getOverlappingDaysInIntervals( | ||
| intervalLeft: Interval, | ||
| intervalRight: Interval | ||
| ): number | ||
| getQuarter(date: Date | number): number | ||
| getSeconds(date: Date | number): number | ||
| getTime(date: Date | number): number | ||
| getUnixTime(date: Date | number): number | ||
| getWeek( | ||
@@ -366,46 +141,2 @@ date: Date | number, | ||
| getYear(date: Date | number): number | ||
| intervalToDuration(interval: Interval): Duration | ||
| isAfter(date: Date | number, dateToCompare: Date | number): boolean | ||
| isBefore(date: Date | number, dateToCompare: Date | number): boolean | ||
| isDate(value: any): boolean | ||
| isEqual(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isExists(year: number, month: number, day: number): boolean | ||
| isFirstDayOfMonth(date: Date | number): boolean | ||
| isFriday(date: Date | number): boolean | ||
| isFuture(date: Date | number): boolean | ||
| isLastDayOfMonth(date: Date | number): boolean | ||
| isLeapYear(date: Date | number): boolean | ||
| isMonday(date: Date | number): boolean | ||
| isPast(date: Date | number): boolean | ||
| isSameDay(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isSameHour(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isSameISOWeek(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isSameISOWeekYear(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isSameMinute(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isSameMonth(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isSameQuarter(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isSameSecond(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isSameWeek( | ||
@@ -420,63 +151,2 @@ dateLeft: Date | number, | ||
| isSameYear(dateLeft: Date | number, dateRight: Date | number): boolean | ||
| isSaturday(date: Date | number): boolean | ||
| isSunday(date: Date | number): boolean | ||
| isThisHour(date: Date | number): boolean | ||
| isThisISOWeek(date: Date | number): boolean | ||
| isThisMinute(date: Date | number): boolean | ||
| isThisMonth(date: Date | number): boolean | ||
| isThisQuarter(date: Date | number): boolean | ||
| isThisSecond(date: Date | number): boolean | ||
| isThisWeek( | ||
| date: Date | number, | ||
| options?: { | ||
| locale?: Locale | ||
| weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | ||
| } | ||
| ): boolean | ||
| isThisYear(date: Date | number): boolean | ||
| isThursday(date: Date | number): boolean | ||
| isToday(date: Date | number): boolean | ||
| isTomorrow(date: Date | number): boolean | ||
| isTuesday(date: Date | number): boolean | ||
| isValid(date: any): boolean | ||
| isWednesday(date: Date | number): boolean | ||
| isWeekend(date: Date | number): boolean | ||
| isWithinInterval(date: Date | number, interval: Interval): boolean | ||
| isYesterday(date: Date | number): boolean | ||
| lastDayOfDecade(date: Date | number): Date | ||
| lastDayOfISOWeek(date: Date | number): Date | ||
| lastDayOfISOWeekYear(date: Date | number): Date | ||
| lastDayOfMonth(date: Date | number): Date | ||
| lastDayOfQuarter( | ||
| date: Date | number, | ||
| options?: { | ||
| additionalDigits?: 0 | 1 | 2 | ||
| } | ||
| ): Date | ||
| lastDayOfWeek( | ||
@@ -490,10 +160,2 @@ date: Date | number, | ||
| lastDayOfYear(date: Date | number): Date | ||
| lightFormat(date: Date | number, format: string): string | ||
| max(datesArray: (Date | number)[]): Date | ||
| min(datesArray: (Date | number)[]): Date | ||
| parse( | ||
@@ -512,33 +174,2 @@ dateString: string, | ||
| parseISO( | ||
| argument: string, | ||
| options?: { | ||
| additionalDigits?: 0 | 1 | 2 | ||
| } | ||
| ): Date | ||
| parseJSON(argument: string | number | Date): Date | ||
| roundToNearestMinutes( | ||
| date: Date | number, | ||
| options?: { | ||
| nearestTo?: number | ||
| } | ||
| ): Date | ||
| set( | ||
| date: Date | number, | ||
| values: { | ||
| year?: number | ||
| month?: number | ||
| date?: number | ||
| hours?: number | ||
| minutes?: number | ||
| seconds?: number | ||
| milliseconds?: number | ||
| } | ||
| ): Date | ||
| setDate(date: Date | number, dayOfMonth: number): Date | ||
| setDay( | ||
@@ -553,22 +184,2 @@ date: Date | number, | ||
| setDayOfYear(date: Date | number, dayOfYear: number): Date | ||
| setHours(date: Date | number, hours: number): Date | ||
| setISODay(date: Date | number, day: number): Date | ||
| setISOWeek(date: Date | number, isoWeek: number): Date | ||
| setISOWeekYear(date: Date | number, isoWeekYear: number): Date | ||
| setMilliseconds(date: Date | number, milliseconds: number): Date | ||
| setMinutes(date: Date | number, minutes: number): Date | ||
| setMonth(date: Date | number, month: number): Date | ||
| setQuarter(date: Date | number, quarter: number): Date | ||
| setSeconds(date: Date | number, seconds: number): Date | ||
| setWeek( | ||
@@ -594,26 +205,2 @@ date: Date | number, | ||
| setYear(date: Date | number, year: number): Date | ||
| startOfDay(date: Date | number): Date | ||
| startOfDecade(date: Date | number): Date | ||
| startOfHour(date: Date | number): Date | ||
| startOfISOWeek(date: Date | number): Date | ||
| startOfISOWeekYear(date: Date | number): Date | ||
| startOfMinute(date: Date | number): Date | ||
| startOfMonth(date: Date | number): Date | ||
| startOfQuarter(date: Date | number): Date | ||
| startOfSecond(date: Date | number): Date | ||
| startOfToday(): Date | ||
| startOfTomorrow(): Date | ||
| startOfWeek( | ||
@@ -635,36 +222,2 @@ date: Date | number, | ||
| ): Date | ||
| startOfYear(date: Date | number): Date | ||
| startOfYesterday(): Date | ||
| sub(date: Date | number, duration: Duration): Date | ||
| subBusinessDays(date: Date | number, amount: number): Date | ||
| subDays(date: Date | number, amount: number): Date | ||
| subHours(date: Date | number, amount: number): Date | ||
| subISOWeekYears(date: Date | number, amount: number): Date | ||
| subMilliseconds(date: Date | number, amount: number): Date | ||
| subMinutes(date: Date | number, amount: number): Date | ||
| subMonths(date: Date | number, amount: number): Date | ||
| subQuarters(date: Date | number, amount: number): Date | ||
| subSeconds(date: Date | number, amount: number): Date | ||
| subWeeks(date: Date | number, amount: number): Date | ||
| subYears(date: Date | number, amount: number): Date | ||
| toDate(argument: Date | number): Date | ||
| maxTime: number | ||
| minTime: number | ||
| } |
+13
-5
| import Vue from 'vue' | ||
| import { dateFns } from './date-fns' | ||
| import { NuxtDateFnsInstance } from './date-fns' | ||
| declare module '@nuxt/vue-app' { | ||
| interface Context { | ||
| readonly $dateFns: dateFns | ||
| $dateFns: NuxtDateFnsInstance | ||
| } | ||
| interface NuxtAppOptions { | ||
| $dateFns: NuxtDateFnsInstance | ||
| } | ||
| } | ||
@@ -13,4 +17,8 @@ | ||
| interface Context { | ||
| readonly $dateFns: dateFns | ||
| $dateFns: NuxtDateFnsInstance | ||
| } | ||
| interface NuxtAppOptions { | ||
| $dateFns: NuxtDateFnsInstance | ||
| } | ||
| } | ||
@@ -20,3 +28,3 @@ | ||
| interface Vue { | ||
| readonly $dateFns: dateFns | ||
| $dateFns: NuxtDateFnsInstance | ||
| } | ||
@@ -27,4 +35,4 @@ } | ||
| interface Store<S> { | ||
| readonly $dateFns: dateFns | ||
| $dateFns: NuxtDateFnsInstance | ||
| } | ||
| } |
169
4.32%20325
-29.68%347
-42.07%Updated