diff --git a/package.json b/package.json index 40b309c..d2a7ca8 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "express-validator": "^7.0.1", "is-localhost-ip": "^2.0.0", "jsonwebtoken": "^9.0.2", + "lodash": "^4.17.21", "lodash-es": "^4.17.21", "maxmind": "^4.3.11", "morgan": "^1.10.0", @@ -57,6 +58,7 @@ "@types/compression": "^1.7.2", "@types/express": "^4.17.17", "@types/jsonwebtoken": "^9.0.2", + "@types/lodash": "^4.14.198", "@types/lodash-es": "^4.17.9", "@types/morgan": "^1.9.5", "@types/node": "^18.17.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1289c8e..0048f69 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,6 +58,9 @@ dependencies: jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 + lodash: + specifier: ^4.17.21 + version: 4.17.21 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -129,6 +132,9 @@ devDependencies: '@types/jsonwebtoken': specifier: ^9.0.2 version: 9.0.2 + '@types/lodash': + specifier: ^4.14.198 + version: 4.14.198 '@types/lodash-es': specifier: ^4.17.9 version: 4.17.9 @@ -1947,11 +1953,11 @@ packages: /@types/lodash-es@4.17.9: resolution: {integrity: sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==} dependencies: - '@types/lodash': 4.14.197 + '@types/lodash': 4.14.198 dev: true - /@types/lodash@4.14.197: - resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==} + /@types/lodash@4.14.198: + resolution: {integrity: sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==} dev: true /@types/mapbox-gl@1.13.6: diff --git a/src/server/utils/common.ts b/src/server/utils/common.ts index bc41b86..29d937b 100644 --- a/src/server/utils/common.ts +++ b/src/server/utils/common.ts @@ -4,7 +4,8 @@ import { DATA_TYPE } from './const'; import { DynamicDataType } from './types'; import dayjs from 'dayjs'; import jwt from 'jsonwebtoken'; -import { max } from 'lodash-es'; +import _ from 'lodash'; +import { getWorkspaceWebsiteDateRange } from '../model/workspace'; export function isUuid(value: string) { return validate(value); @@ -151,7 +152,7 @@ export function parseToken(token: string, secret = jwtSecret) { } export function maxDate(...args: any[]) { - return max(args.filter((n) => dayjs(n).isValid())); + return _.max(args.filter((n) => dayjs(n).isValid())); } export async function parseDateRange({ @@ -167,10 +168,11 @@ export async function parseDateRange({ }) { // All-time if (+startAt === 0 && +endAt === 1) { - const result = await getWorkspaceWebsiteDateRange(websiteId as string); - const { min, max } = result[0]; - const startDate = new Date(min); - const endDate = new Date(max); + const { min, max } = await getWorkspaceWebsiteDateRange( + websiteId as string + ); + const startDate = new Date(min!); + const endDate = new Date(max!); return { startDate, diff --git a/src/server/utils/prisma.ts b/src/server/utils/prisma.ts index c435316..4371b50 100644 --- a/src/server/utils/prisma.ts +++ b/src/server/utils/prisma.ts @@ -1,4 +1,4 @@ -import { get } from 'lodash-es'; +import _ from 'lodash'; import { loadWebsite } from '../model/website'; import { maxDate } from './common'; import { FILTER_COLUMNS, OPERATORS, SESSION_COLUMNS } from './const'; @@ -80,7 +80,7 @@ export function getFilterQuery( const query = Object.keys(filters).reduce((arr, name) => { const value: any = filters[name as keyof QueryFilters]; const operator = value?.filter ?? OPERATORS.equals; - const column = get(FILTER_COLUMNS, name, options?.columns?.[name]); + const column = _.get(FILTER_COLUMNS, name, options?.columns?.[name]); if (value !== undefined && column) { arr.push(`and ${mapFilter(column, operator, name)}`);