mcgrizz/routes/properties.tsx
2023-10-04 04:09:01 -06:00

33 lines
948 B
TypeScript

import { Handlers } from "$fresh/server.ts";
import { MCProperties } from "../components/properties.tsx";
import {
deserializeMCProperties,
serializeMCProperties,
} from "../util/mcProperties.ts";
export const handler: Handlers = {
async POST(req, ctx) {
const filePath = `./server/server.properties`;
const formData = await req.formData();
const text = await Deno.readTextFile(filePath);
const properties = deserializeMCProperties(text);
for (const [key, value] of formData.entries()) {
properties.set(key, value as string);
}
const serialized = serializeMCProperties(properties);
await Deno.writeTextFile(filePath, serialized);
return ctx.render();
},
};
export default async function Properties() {
const text = await Deno.readTextFile(`./server/server.properties`);
const properties = await deserializeMCProperties(text);
return <MCProperties properties={properties} />;
}