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