Cleanup
This commit is contained in:
@@ -51,46 +51,54 @@ const simpleFields = <D extends DocumentType>(
|
||||
export function getFieldsForType<D extends DocumentType>(
|
||||
docType: D,
|
||||
): DocumentField<D, FieldType>[] {
|
||||
// Explicit casts are required because the getter function puts the type D in the parameters position and thus the specialized getter is not valid in the case of the more general document type.
|
||||
// While the switch correctly sees that D is now "front", the _type_ could be a union and thus the getter needs to be able to accept any of them.
|
||||
// I know this will only ever be called in the context of one value, but this is clearly abusing the type system.
|
||||
// TODO: Fix the types
|
||||
switch (docType) {
|
||||
case "front":
|
||||
return simpleFields<"front">({
|
||||
Name: ["name", "shortText"],
|
||||
Description: ["description", "longText"],
|
||||
Resolved: ["resolved", "toggle"],
|
||||
});
|
||||
}) as unknown as DocumentField<D, FieldType>[];
|
||||
case "location":
|
||||
return [
|
||||
simpleField("Name", "name", "shortText"),
|
||||
simpleField("Description", "description", "longText"),
|
||||
];
|
||||
return simpleFields<"location">({
|
||||
Name: ["name", "shortText"],
|
||||
Description: ["description", "longText"],
|
||||
}) as unknown as DocumentField<D, FieldType>[];
|
||||
case "monster":
|
||||
return [simpleField("Name", "name", "shortText")];
|
||||
return simpleFields<"monster">({
|
||||
Name: ["name", "shortText"],
|
||||
}) as unknown as DocumentField<D, FieldType>[];
|
||||
case "npc":
|
||||
return [
|
||||
simpleField("Name", "name", "shortText"),
|
||||
simpleField("Description", "description", "longText"),
|
||||
];
|
||||
return simpleFields<"npc">({
|
||||
Name: ["name", "shortText"],
|
||||
Description: ["description", "longText"],
|
||||
}) as unknown as DocumentField<D, FieldType>[];
|
||||
case "scene":
|
||||
return [simpleField("Text", "text", "longText")];
|
||||
return simpleFields<"scene">({
|
||||
Text: ["text", "longText"],
|
||||
}) as unknown as DocumentField<D, FieldType>[];
|
||||
case "secret":
|
||||
return [
|
||||
simpleField("Discovered", "discovered", "toggle"),
|
||||
simpleField("Text", "text", "shortText"),
|
||||
];
|
||||
return simpleFields<"secret">({
|
||||
Discovered: ["discovered", "toggle"],
|
||||
Text: ["text", "shortText"],
|
||||
}) as unknown as DocumentField<D, FieldType>[];
|
||||
case "session":
|
||||
return [
|
||||
simpleField("Name", "name", "shortText"),
|
||||
simpleField("Strong Start", "strongStart", "longText"),
|
||||
];
|
||||
return simpleFields<"session">({
|
||||
Name: ["name", "shortText"],
|
||||
"Strong Start": ["strongStart", "longText"],
|
||||
}) as unknown as DocumentField<D, FieldType>[];
|
||||
case "thread":
|
||||
return [
|
||||
simpleField("Resolved", "resolved", "toggle"),
|
||||
simpleField("Text", "text", "shortText"),
|
||||
];
|
||||
return simpleFields<"thread">({
|
||||
Resolved: ["resolved", "toggle"],
|
||||
Text: ["text", "shortText"],
|
||||
}) as unknown as DocumentField<D, FieldType>[];
|
||||
case "treasure":
|
||||
return [
|
||||
simpleField("Discovered", "discovered", "toggle"),
|
||||
simpleField("Text", "text", "shortText"),
|
||||
];
|
||||
return simpleFields<"treasure">({
|
||||
Discovered: ["discovered", "toggle"],
|
||||
Text: ["text", "shortText"],
|
||||
}) as unknown as DocumentField<D, FieldType>[];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user