Skip to content

Commit

Permalink
chore: Add localeData plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
iamkun committed Mar 7, 2019
1 parent c9916fe commit 8eb5404
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/plugin/localeData/index.js
@@ -0,0 +1,16 @@
export default (o, c) => { // locale needed later
const proto = c.prototype
const localeData = function () {
return {
months: instance => instance.format('MMMM'),
monthsShort: instance => instance.format('MMM'),
firstDayOfWeek: () => this.$locale().weekStart || 0,
weekdaysMin: instance => instance.format('dd'),
weekdaysShort: instance => instance.format('ddd')
}
}
proto.localeData = function () {
return localeData.bind(this)()
}
}

26 changes: 26 additions & 0 deletions test/plugin/localeData.test.js
@@ -0,0 +1,26 @@
import MockDate from 'mockdate'
import moment from 'moment'
import dayjs from '../../src'
import localeData from '../../src/plugin/localeData'

dayjs.extend(localeData)

beforeEach(() => {
MockDate.set(new Date())
})

afterEach(() => {
MockDate.reset()
})

it('localeData', () => {
const d = dayjs()
const m = moment()
const dayjsLocaleData = dayjs().localeData()
const momentLocaleData = moment().localeData()
expect(dayjsLocaleData.firstDayOfWeek()).toBe(momentLocaleData.firstDayOfWeek())
expect(dayjsLocaleData.months(d)).toBe(momentLocaleData.months(m))
expect(dayjsLocaleData.monthsShort(d)).toBe(momentLocaleData.monthsShort(m))
expect(dayjsLocaleData.weekdaysMin(d)).toBe(momentLocaleData.weekdaysMin(m))
expect(dayjsLocaleData.weekdaysShort(d)).toBe(momentLocaleData.weekdaysShort(m))
})
10 changes: 10 additions & 0 deletions types/plugin/localeData.d.ts
@@ -0,0 +1,10 @@
import { PluginFunc } from 'dayjs'

declare const plugin: PluginFunc
export = plugin

declare module 'dayjs' {
interface Dayjs {
localeData(): any
}
}

0 comments on commit 8eb5404

Please sign in to comment.