add helpers

This commit is contained in:
2025-05-18 23:26:25 +08:00
parent 321b7e0b0c
commit 64e1602874
5 changed files with 70 additions and 7 deletions
+11 -2
View File
@@ -1,4 +1,13 @@
import { Module } from '@nestjs/common';
import { DynamicModule, Module } from '@nestjs/common';
@Module({})
export class CoreModule {}
export class CoreModule {
static forRoot(): DynamicModule {
return {
module: CoreModule,
global: true,
providers: [],
exports: [],
};
}
}
+1
View File
@@ -0,0 +1 @@
export * from './utils';
+34
View File
@@ -0,0 +1,34 @@
import deepmerge from 'deepmerge';
import { isNil } from 'lodash';
export function toBoolean(value?: string | boolean): boolean {
if (isNil(value)) {
return false;
}
if (typeof value === 'boolean') {
return value;
}
try {
return JSON.parse(value.toLowerCase());
} catch (error) {
return value as unknown as boolean;
}
}
export function toNull(value?: string | null): string | null | undefined {
return value === null ? null : value;
}
export const deepMerge = <T, P>(
x: Partial<T>,
y: Partial<P>,
arrayMode: 'replace' | 'merge' = 'merge',
) => {
const options: deepmerge.Options = {};
if (arrayMode === 'replace') {
options.arrayMerge = (_d, s, _o) => s;
} else if (arrayMode === 'merge') {
options.arrayMerge = (_d, s, _o) => Array.from(new Set([..._d, ...s]));
}
return deepmerge(x, y, options) as P extends T ? T : T & P;
};