Skip to content

Instantly share code, notes, and snippets.

View imaginamundo's full-sized avatar

Diogo Fernandes imaginamundo

View GitHub Profile
function _init()
offsetx=240
offsety=135
x=0+offsetx
y=0+offsety
radius=50
theta=0
end
@imaginamundo
imaginamundo / Form.svelte
Last active September 20, 2024 15:38
Using Astro Actions result on Svelte
<script lang="ts">
import InputError from './InputError.svelte';
import { actions, type ActionReturnType } from 'astro:actions';
const { result }: {
result: ActionReturnType<typeof actions.getGreeting>
} = $props();
let name = $state(result?.data?.fields.name || '');
let surname = $state(result?.data?.fields.surname || '');
@imaginamundo
imaginamundo / request.ts
Last active March 31, 2026 14:11
Fetch wrapper with timeout with tuple response
async function fetchWithTimeout(
resource: RequestInfo | URL,
options: RequestInit & { timeout?: number } = {},
): Promise<Response> {
const { timeout = 3000, ...fetchOptions } = options;
try {
return await fetch(resource, {
...fetchOptions,
signal: AbortSignal.timeout(timeout),
@imaginamundo
imaginamundo / parseFormSchema.ts
Created April 10, 2026 14:43
Parse form schema using zod
import { z } from "astro/zod";
export function formDataToObject(
formData: FormData,
): Record<string, FormDataEntryValue | FormDataEntryValue[]> {
const obj = Object.create(null) as Record<string, FormDataEntryValue | FormDataEntryValue[]>;
for (const [key, value] of formData.entries()) {
if (Object.hasOwn(obj, key)) {
const currentValue = obj[key];