Skip to content

Commit d3a1ab8

Browse files
committed
Port from moment to dayjs (#218)
* Move much of lib/notifications to server/notifications * Convert to exports * Reduce bundle size by ~46kB
1 parent 6f613a9 commit d3a1ab8

12 files changed

+695
-680
lines changed

.eslintrc.yml

-4
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ globals:
2929
Template: readonly
3030
Tracker: readonly
3131
WebApp: readonly
32-
moment: readonly
3332
# Coauthor databases
3433
Emoji: readonly
3534
EmojiMessages: readonly
@@ -117,11 +116,9 @@ globals:
117116
message2root: readonly
118117
messageReaders: readonly
119118
messageRoleCheck: readonly
120-
messageSubscribers: readonly
121119
messagesBy: readonly
122120
messagesByQuery: readonly
123121
messagesTaggedQuery: readonly
124-
momentInUserTimezone: readonly
125122
notifyMessageUpdate: readonly
126123
pathFor: readonly
127124
pluralize: readonly
@@ -135,7 +132,6 @@ globals:
135132
setTitle: readonly
136133
sortedGroupFullMembers: readonly
137134
sortedGroupPartialMembers: readonly
138-
subscribedToMessage: readonly
139135
titleOrUntitled: readonly
140136
titleSort: readonly
141137
undeletedMessagesQuery: readonly

client/group.coffee

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {UserLink} from './UserLink'
2323
import {emojiReplies} from '/lib/emoji'
2424
import {formatTitleOrFilename} from '/lib/formats'
2525
import {groupDefaultSort, parseSort, unparseSort} from '/lib/groups'
26+
import {subscribedToMessage} from '/lib/notifications'
2627
import {autopublish} from '/lib/settings'
2728
import {groupTags, sortTags} from '/lib/tags'
2829

client/lib/moment.coffee

-1
This file was deleted.

client/message.coffee

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import {prefersReducedMotion, scrollBehavior} from './lib/scroll'
2929
import {allEmoji} from '/lib/emoji'
3030
import {availableFormats, formatBody, formatFile, formatFileDescription, formatTitleOrFilename, parseCoauthorAuthorUrl, parseCoauthorMessageUrl} from '/lib/formats'
3131
import {ancestorMessages, descendantMessagesQuery, messageDiffsExpanded, messageNeighbors, sortedMessageReaders} from '/lib/messages'
32-
import {autosubscribe, defaultNotificationsOn} from '/lib/notifications'
32+
import {autosubscribe, defaultNotificationsOn, messageSubscribers} from '/lib/notifications'
3333
import {autopublish, defaultKeyboard, userKeyboard, themeEditor} from '/lib/settings'
3434
import {escapeTag, sortTags} from '/lib/tags'
3535

client/stats.coffee

+17-14
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, {useEffect, useMemo, useRef} from 'react'
22
import Dropdown from 'react-bootstrap/Dropdown'
33
import {useTracker} from 'meteor/react-meteor-data'
44
import Blaze from 'meteor/gadicc:blaze-react-component'
5+
import dayjs from 'dayjs'
56

67
import {ErrorBoundary} from './ErrorBoundary'
78
import {TextTooltip} from './lib/tooltip'
@@ -305,43 +306,45 @@ buildStats = (stats, unit, weekStart) ->
305306
coauthors: true
306307
sort: created: 1
307308
stats.msgCount = msgs.count()
308-
console.log stats.msgCount
309309
switch unit
310310
when 'hour'
311-
msgs = _.sortBy msgs.fetch(), (msg) -> moment(msg.created).format 'HH:mm'
311+
msgs = _.sortBy msgs.fetch(), (msg) -> dayjs(msg.created).format 'HH:mm'
312312
when 'weekday'
313-
msgs = _.sortBy msgs.fetch(), (msg) -> moment(msg.created).day()
313+
msgs = _.sortBy msgs.fetch(), (msg) -> dayjs(msg.created).day()
314314
msgs.forEach (msg) ->
315315
increment = unit
316316
switch unit
317317
when 'week'
318-
day = moment(msg.created).startOf 'day'
318+
day = dayjs(msg.created).startOf 'day'
319319
if day.day() < weekStart
320-
day.day -7 + weekStart ## previous week
320+
day = day.day -7 + weekStart ## previous week
321321
else
322-
day.day weekStart ## same week
322+
day = day.day weekStart ## same week
323323
when 'hour'
324-
day = moment(msg.created).startOf unit
324+
day = dayjs msg.created
325+
.startOf unit
325326
.year 2000
326-
.dayOfYear 1
327+
.month 0
328+
.date 1
327329
when 'weekday'
328-
day = moment(msg.created).startOf 'day'
329-
day = day.date 1 + moment(msg.created).day()
330+
day = dayjs msg.created
331+
.startOf 'day'
332+
.date 1 + dayjs(msg.created).day()
330333
.month 9
331334
.year 2000 ## 1st day of October 2000 is a Sunday
332335
increment = 'day'
333336
else
334-
day = moment(msg.created).startOf unit
337+
day = dayjs(msg.created).startOf unit
335338
if lastDate?
336-
if lastDate.valueOf() > day.valueOf()
339+
if lastDate.isAfter day
337340
console.warn "Backwards time travel from #{lastDate.format()} to #{day.format()}"
338341
lastDate = day
339342
makeDay()
340343
else
341-
while lastDate.valueOf() != day.valueOf()
344+
until lastDate.isSame day
342345
lastDate = lastDate.add 1, increment
343346
makeDay()
344-
if lastDate.valueOf() > day.valueOf()
347+
if lastDate.isAfter day
345348
console.warn "Bad day handling (Coauthor bug)"
346349
break
347350
else

lib/groups.coffee

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {check, Match} from 'meteor/check'
22
import {Mongo} from 'meteor/mongo'
33

44
import {escapeKey, unescapeKey, validKey} from './escape'
5+
import {subscribedToMessage} from './notifications'
56
import {profilingStartup} from './profiling'
67

78
@wildGroup = '*'

lib/messages.coffee

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {check, Match} from 'meteor/check'
22
import {Mongo} from 'meteor/mongo'
33
import {ShareJS} from 'meteor/edemaine:sharejs'
4+
import dayjs from 'dayjs'
45

56
import {dateMax} from './dates'
67
import {groupDefaultSort} from './groups'
@@ -425,16 +426,16 @@ export parseSince = (since) ->
425426
if match?
426427
amount = parseFloat match[1]
427428
return null if isNaN amount
428-
moment().subtract(amount, match[2]).toDate()
429+
dayjs().subtract(amount, match[2]).toDate()
429430
else
430431
match = /^\s*(\d+)\s*:\s*(\d+)\s*$/.exec since
431432
if match?
432-
d = moment().hour(match[1]).minute(match[2])
433-
if moment().diff(d) < 0
433+
d = dayjs().hour(match[1]).minute(match[2])
434+
if dayjs().isBefore d
434435
d = d.subtract(1, 'day')
435436
d.toDate()
436437
else
437-
d = moment(since)
438+
d = dayjs(since)
438439
return null unless d.isValid()
439440
d.toDate()
440441
catch

0 commit comments

Comments
 (0)