refactor: improve code quality (#8751)
* remove unnecessary if `Array.prototype.some` already returns a boolean so an if to return true or false is completely unnecessary in this case. * perf: use count instead of find When using `count` instead of `findOneBy`, the data is not unnecessarily loaded. * remove duplicate null check The variable is checked for null in the lines above and the function returns if so. Therefore, it can not be null at this point. * simplify `getJsonSchema` Because the assigned value is `null` and the used keys are only shallow, use of `nestedProperty.set` seems inappropriate. Because the value is not read, the initial for loop can be replaced by a `for..in` loop. Since all keys will be assigned `null`, the condition of the ternary expression in the nested function will always be true. Therefore the recursion case will never happen. With this the nested function can be eliminated. * remove duplicate condition The code above already checks `dragging` and returns if it is truthy. Checking it again later is therefore unnecessary. To make this more obvious the `return` is removed in favour of using an if...else construct. * remove impossible "unknown" time The `ago` variable will always be a number and all non-negative numbers are already covered by other cases, the negative case is handled with `future` so there is no case when `unkown` could be achieved.
This commit is contained in:
parent
f1d2398eac
commit
804fa33535
7 changed files with 77 additions and 79 deletions
|
|
@ -91,27 +91,20 @@ type ToJsonSchema<S> = {
|
|||
};
|
||||
|
||||
export function getJsonSchema<S extends Schema>(schema: S): ToJsonSchema<Unflatten<ChartResult<S>>> {
|
||||
const object = {};
|
||||
for (const [k, v] of Object.entries(schema)) {
|
||||
nestedProperty.set(object, k, null);
|
||||
}
|
||||
const jsonSchema = {
|
||||
type: 'object',
|
||||
properties: {} as Record<string, unknown>,
|
||||
required: [],
|
||||
};
|
||||
|
||||
function f(obj: Record<string, null | Record<string, unknown>>) {
|
||||
const jsonSchema = {
|
||||
type: 'object',
|
||||
properties: {} as Record<string, unknown>,
|
||||
required: [],
|
||||
for (const k in schema) {
|
||||
jsonSchema.properties[k] = {
|
||||
type: 'array',
|
||||
items: { type: 'number' },
|
||||
};
|
||||
for (const [k, v] of Object.entries(obj)) {
|
||||
jsonSchema.properties[k] = v === null ? {
|
||||
type: 'array',
|
||||
items: { type: 'number' },
|
||||
} : f(v as Record<string, null | Record<string, unknown>>);
|
||||
}
|
||||
return jsonSchema;
|
||||
}
|
||||
|
||||
return f(object) as ToJsonSchema<Unflatten<ChartResult<S>>>;
|
||||
return jsonSchema as ToJsonSchema<Unflatten<ChartResult<S>>>;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue