[DEV] add capacity to manage isXXX on Zod element
This commit is contained in:
parent
389e4138c3
commit
42ac2f3056
@ -76,7 +76,7 @@ public class DataFactoryZod {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
createTable(type, previousClassesGenerated, order);
|
createTable(type, previousClassesGenerated, order);
|
||||||
return type.getSimpleName();
|
return "Zod" + type.getSimpleName();
|
||||||
}
|
}
|
||||||
public static String convertTypeZod(final Field field, final Map<String, String> previousClassesGenerated, final List<String> order) throws Exception {
|
public static String convertTypeZod(final Field field, final Map<String, String> previousClassesGenerated, final List<String> order) throws Exception {
|
||||||
final Class<?> type = field.getType();
|
final Class<?> type = field.getType();
|
||||||
@ -240,12 +240,13 @@ public class DataFactoryZod {
|
|||||||
}
|
}
|
||||||
generatedData.append(" */\n");
|
generatedData.append(" */\n");
|
||||||
}
|
}
|
||||||
generatedData.append("export const ");
|
generatedData.append("export const Zod");
|
||||||
generatedData.append(clazz.getSimpleName());
|
generatedData.append(clazz.getSimpleName());
|
||||||
generatedData.append(" = ");
|
generatedData.append(" = ");
|
||||||
final Class<?> parentClass = clazz.getSuperclass();
|
final Class<?> parentClass = clazz.getSuperclass();
|
||||||
if (parentClass != Object.class) {
|
if (parentClass != Object.class) {
|
||||||
createTable(parentClass, previousClassesGenerated, order);
|
createTable(parentClass, previousClassesGenerated, order);
|
||||||
|
generatedData.append("Zod");
|
||||||
generatedData.append(parentClass.getSimpleName());
|
generatedData.append(parentClass.getSimpleName());
|
||||||
generatedData.append(".extend({");
|
generatedData.append(".extend({");
|
||||||
} else {
|
} else {
|
||||||
@ -253,6 +254,28 @@ public class DataFactoryZod {
|
|||||||
}
|
}
|
||||||
generatedData.append(internalBuilder.toString());
|
generatedData.append(internalBuilder.toString());
|
||||||
generatedData.append("\n});");
|
generatedData.append("\n});");
|
||||||
|
// declare generic type:
|
||||||
|
generatedData.append("\nexport type ");
|
||||||
|
generatedData.append(clazz.getSimpleName());
|
||||||
|
generatedData.append(" = zod.infer<typeof Zod");
|
||||||
|
generatedData.append(clazz.getSimpleName());
|
||||||
|
generatedData.append(">;");
|
||||||
|
// declare generic isXXX:
|
||||||
|
generatedData.append("\nexport function is");
|
||||||
|
generatedData.append(clazz.getSimpleName());
|
||||||
|
generatedData.append("(data: any): data is ");
|
||||||
|
generatedData.append(clazz.getSimpleName());
|
||||||
|
generatedData.append(" {\n\ttry {\n\t\tZod");
|
||||||
|
generatedData.append(clazz.getSimpleName());
|
||||||
|
generatedData.append("""
|
||||||
|
.parse(data);
|
||||||
|
return true;
|
||||||
|
} catch (e: any) {
|
||||||
|
console.log(`Fail to parse data ${e}`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""");
|
||||||
// Remove the previous to reorder the map ==> parent must be inserted before us.
|
// Remove the previous to reorder the map ==> parent must be inserted before us.
|
||||||
previousClassesGenerated.put(clazz.getCanonicalName(), generatedData.toString());
|
previousClassesGenerated.put(clazz.getCanonicalName(), generatedData.toString());
|
||||||
order.add(clazz.getCanonicalName());
|
order.add(clazz.getCanonicalName());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user