@nestjs-mod/common
Version:
A collection of utilities for unifying NestJS applications and modules
43 lines (42 loc) • 1.5 kB
TypeScript
import { Logger, LoggerService } from '@nestjs/common';
import { ValidatorPackage } from '@nestjs/common/interfaces/external/validator-package.interface';
import { ValidatorOptions } from 'class-validator';
export type ConfigModelOptions = {
name?: string;
description?: string;
originalName?: string;
validatorPackage?: ValidatorPackage;
validatorOptions?: ValidatorOptions;
skipValidation?: boolean;
debug?: boolean;
logger?: Logger | LoggerService;
};
export type ConfigModelRootOptions = Omit<ConfigModelOptions, 'originalName'>;
export type ConfigModelPropertyOptions = {
description?: string;
originalName: string;
default?: any;
transform?: ConfigModelPropertyValueTransformer;
/**
* When we pass a large object in an option, during debugging it clogs the output; to prevent this from happening, you can exclude this object from the output
*/
hideValueFromOutputs?: boolean;
};
export interface ConfigModelPropertyValueTransformer {
name?: string;
transform(params: {
value: any;
options: ConfigModelPropertyOptions;
modelRootOptions: ConfigModelOptions;
modelOptions: ConfigModelOptions;
obj: any;
}): any;
}
export type ConfigModelInfo = {
modelOptions: ConfigModelRootOptions;
modelPropertyOptions: ConfigModelPropertyOptions[];
validations: Record<string | symbol, {
value: string | undefined;
constraints: Record<string, string>;
}>;
};