diff options
| -rw-r--r-- | package.json | 1 | ||||
| -rw-r--r-- | pnpm-lock.yaml | 9 | ||||
| -rw-r--r-- | src/lib/middleware.ts | 2 | ||||
| -rw-r--r-- | src/util/object.ts | 30 | 
4 files changed, 11 insertions, 31 deletions
diff --git a/package.json b/package.json index 0287e77..892f9dc 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@          "request": "^2.88.2",          "sanitize-html": "^2.13.0",          "toml": "^3.0.0", +        "ts-deepmerge": "^7.0.2",          "typescript": "^5.4.5",          "wait-on": "^7.2.0"      }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ac81b2..11f04d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,6 +95,9 @@ importers:        toml:          specifier: ^3.0.0          version: 3.0.0 +      ts-deepmerge: +        specifier: ^7.0.2 +        version: 7.0.2        typescript:          specifier: ^5.4.5          version: 5.4.5 @@ -2130,6 +2133,10 @@ packages:      resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==}      engines: {node: '>=14'} +  ts-deepmerge@7.0.2: +    resolution: {integrity: sha512-akcpDTPuez4xzULo5NwuoKwYRtjQJ9eoNfBACiBMaXwNAx7B1PKfe5wqUFJuW5uKzQ68YjDFwPaWHDG1KnFGsA==} +    engines: {node: '>=14.13.1'} +    tslib@1.14.1:      resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -4574,6 +4581,8 @@ snapshots:      dependencies:        punycode: 2.3.1 +  ts-deepmerge@7.0.2: {} +    tslib@1.14.1: {}    tslib@2.6.2: {} diff --git a/src/lib/middleware.ts b/src/lib/middleware.ts index 5073137..69fbe4e 100644 --- a/src/lib/middleware.ts +++ b/src/lib/middleware.ts @@ -1,7 +1,7 @@  import { NextFunction, Request, Response } from "express";  import MagicLink from "../models/MagicLink.js";  import getConfig, { GathioConfig } from "../lib/config.js"; -import { deepMerge } from "../util/object.js"; +import { merge as deepMerge } from "ts-deepmerge";  export const checkMagicLink = async (      req: Request, diff --git a/src/util/object.ts b/src/util/object.ts deleted file mode 100644 index 1ecc89b..0000000 --- a/src/util/object.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Simple object check. - */ -export function isObject(item: any) { -    return item && typeof item === "object" && !Array.isArray(item); -} - -/** - * Deep merge two objects. - */ -export function deepMerge<T>( -    target: Record<any, any>, -    ...sources: Record<any, any>[] -): T { -    if (!sources.length) return target; -    const source = sources.shift(); - -    if (isObject(target) && isObject(source)) { -        for (const key in source) { -            if (isObject(source[key])) { -                if (!target[key]) Object.assign(target, { [key]: {} }); -                deepMerge(target[key], source[key]); -            } else { -                Object.assign(target, { [key]: source[key] }); -            } -        } -    } - -    return deepMerge(target, ...sources) as T; -}  | 
