@tsed/schema
Version:
JsonSchema module for Ts.ED Framework
28 lines (20 loc) • 736 B
text/typescript
import {isObject, uniq} from "@tsed/core";
export const serializeEnum = (enumValue: any) => {
if (isObject(enumValue) && enumValue !== null) {
return Object.entries(enumValue).reduce((acc: any, [key, value]: any) => {
if (isNaN(+key)) {
return acc.concat(value);
}
return acc;
}, []);
}
return enumValue;
};
export function serializeEnumValues(enumValues: any[]) {
const values = enumValues.reduce((acc, value) => acc.concat(serializeEnum(value)), []);
const getValue = (value: any) => {
return value === null ? "null" : typeof value;
};
const types = values.reduce((set: Set<any>, value: any) => set.add(getValue(value)), new Set());
return {values: uniq(values), types};
}