# Introduction Added a no-explicit-any rule to the twenty-server, not applicable to tests and integration tests folder Related to https://github.com/twentyhq/core-team-issues/issues/975 Discussed with Charles ## In case of conflicts Until this is approved I won't rebased and handle conflict, just need to drop two latest commits and re run the scripts etc ## Legacy We decided not to handle the existing lint error occurrences and programmatically ignored them through a disable next line rule comment ## Open question We might wanna activate the [no-explicit-any](https://typescript-eslint.io/rules/no-explicit-any/) `ignoreRestArgs` for our use case ? ``` ignoreRestArgs?: boolean; ``` --------- Co-authored-by: etiennejouan <jouan.etienne@gmail.com>
44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import { FieldMetadataDefaultSerializableValue } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-default-value.interface';
|
|
|
|
export const unserializeDefaultValue = (
|
|
serializedDefaultValue: FieldMetadataDefaultSerializableValue,
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
): any => {
|
|
if (serializedDefaultValue === null) {
|
|
return null;
|
|
}
|
|
|
|
if (typeof serializedDefaultValue === 'number') {
|
|
return serializedDefaultValue;
|
|
}
|
|
|
|
if (typeof serializedDefaultValue === 'boolean') {
|
|
return serializedDefaultValue;
|
|
}
|
|
|
|
if (typeof serializedDefaultValue === 'string') {
|
|
return serializedDefaultValue.replace(/'/g, '');
|
|
}
|
|
|
|
if (Array.isArray(serializedDefaultValue)) {
|
|
return serializedDefaultValue.map((value) =>
|
|
unserializeDefaultValue(value),
|
|
);
|
|
}
|
|
|
|
if (typeof serializedDefaultValue === 'object') {
|
|
return Object.entries(serializedDefaultValue).reduce(
|
|
(acc, [key, value]) => {
|
|
acc[key] = unserializeDefaultValue(value);
|
|
|
|
return acc;
|
|
},
|
|
{},
|
|
);
|
|
}
|
|
|
|
throw new Error(
|
|
`Invalid serialized default value "${serializedDefaultValue}"`,
|
|
);
|
|
};
|