Skip to content

Commit

Permalink
feat: Replace moment with dayjs
Browse files Browse the repository at this point in the history
  • Loading branch information
StasKonashuk committed May 21, 2024
1 parent 5a0e971 commit c69e852
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 44 deletions.
3 changes: 1 addition & 2 deletions template/apps/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
"app-constants": "workspace:*",
"app-types": "workspace:*",
"bcryptjs": "2.4.3",
"dayjs": "1.11.10",
"dotenv": "16.0.3",
"google-auth-library": "8.7.0",
"ioredis": "5.3.2",
Expand All @@ -48,8 +49,6 @@
"mailer": "workspace:*",
"mixpanel": "0.17.0",
"module-alias": "2.2.2",
"moment": "2.29.4",
"moment-duration-format": "2.3.2",
"node-schedule": "2.1.1",
"npm": "9.6.1",
"psl": "1.9.0",
Expand Down
28 changes: 8 additions & 20 deletions template/apps/api/src/migrator/index.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,14 @@
import { generateId } from '@paralect/node-mongo';
import moment from 'moment';
import dayjs from 'dayjs';
import durationPlugin from 'dayjs/plugin/duration';

import logger from 'logger';

import migrationLogService from './migration-log/migration-log.service';
import migrationVersionService from './migration-version/migration-version.service';
import { Migration } from './types';

import 'moment-duration-format';

interface Duration extends moment.Duration {
format: (template?: string, precision?: number, settings?: DurationSettings) => string;
}

interface DurationSettings {
forceLength: boolean;
precision: number;
template: string;
trim: boolean | 'left' | 'right';
}
dayjs.extend(durationPlugin);

const run = async (migrations: Migration[], curVersion: number) => {
const newMigrations = migrations
Expand All @@ -39,8 +29,8 @@ const run = async (migrations: Migration[], curVersion: number) => {
for (migration of newMigrations) {
//eslint-disable-line
migrationLogId = generateId();
const startTime = new Date().getSeconds();
await migrationLogService.startMigrationLog(migrationLogId, startTime, migration.version); //eslint-disable-line
const startTime = dayjs();
await migrationLogService.startMigrationLog(migrationLogId, startTime.get('seconds'), migration.version); //eslint-disable-line
logger.info(`[Migrator] Migration #${migration.version} is running: ${migration.description}`);
if (!migration.migrate) {
throw new Error('migrate function is not defined for the migration');
Expand All @@ -49,12 +39,10 @@ const run = async (migrations: Migration[], curVersion: number) => {

lastMigrationVersion = migration.version;
await migrationVersionService.setNewMigrationVersion(migration.version); //eslint-disable-line
const finishTime = new Date().getSeconds();
const duration = (moment.duration(finishTime - startTime) as Duration).format(
'h [hrs], m [min], s [sec], S [ms]',
);
const finishTime = dayjs();
const duration = dayjs.duration(finishTime.diff(startTime)).format('H [hrs], m [min], s [sec], SSS [ms]');

await migrationLogService.finishMigrationLog(migrationLogId, finishTime, duration); //eslint-disable-line
await migrationLogService.finishMigrationLog(migrationLogId, finishTime.get('seconds'), duration); //eslint-disable-line
logger.info(`[Migrator] Database has been updated to the version #${migration.version}`);
logger.info(`[Migrator] Time of migration #${migration.version}: ${duration}`);
}
Expand Down
Loading

0 comments on commit c69e852

Please sign in to comment.