var lesson = {
	files: [
		{
			name: "main",
			content: "import { createSignal, createResource } from \"solid-js\";\nimport { render } from \"solid-js/web\";\n\nconst fetchUser = async (id) =>\n  (await fetch(`https://swapi.dev/api/people/${id}/`)).json();\n\nconst App = () => {\n  const [userId, setUserId] = createSignal();\n  const [user] = createSignal();\n\n  return (\n    <>\n      <input\n        type=\"number\"\n        min=\"1\"\n        placeholder=\"Enter Numeric Id\"\n        onInput={(e) => setUserId(e.currentTarget.value)}\n      />\n      <span>{user.loading && \"Loading...\"}</span>\n      <div>\n        <pre>{JSON.stringify(user(), null, 2)}</pre>\n      </div>\n    </>\n  );\n};\n\nrender(App, document.getElementById(\"app\"));\n"
		}
	]
};
var solved = {
	files: [
		{
			name: "main",
			content: "import { createSignal, createResource } from \"solid-js\";\nimport { render } from \"solid-js/web\";\n\nconst fetchUser = async (id) =>\n  (await fetch(`https://swapi.dev/api/people/${id}/`)).json();\n\nconst App = () => {\n  const [userId, setUserId] = createSignal();\n  const [user] = createResource(userId, fetchUser);\n\n  return (\n    <>\n      <input\n        type=\"number\"\n        min=\"1\"\n        placeholder=\"Enter Numeric Id\"\n        onInput={(e) => setUserId(e.currentTarget.value)}\n      />\n      <span>{user.loading && \"Loading...\"}</span>\n      <div>\n        <pre>{JSON.stringify(user(), null, 2)}</pre>\n      </div>\n    </>\n  );\n};\n\nrender(App, document.getElementById(\"app\"));\n"
		}
	]
};
var markdown = "Ressourcen sind spezielle Signale, die speziell für asynchrones Laden gedacht sind. Ihr Sinn besteht darin, asynchrone Werte so zu kapseln, dass man innerhalb von Solids verteiltem Ausführungsmodell einfach damit arbeiten kann. Das ist das Gegenteil zu `async`/`await` oder Generatoren, die sequentielle Ausführungsmodelle bieten. Das Ziel ist, dass Asynchronität nicht die Ausführung blockiert und nicht auf den Code abfärbt.\n\nRessourcen können durch ein source-Signal getrieben werden, das die Anfrage für eine asynchrone Datenabfrage-Funktion beinhaltet, welche ein Promise zurückgibt. Der Inhalt der Abfrage-Funktion kann alles Mögliche sein. Man kann typische REST-Endpunkte abfragen oder GraphQL oder irgendwas, das ein Promise zurückgibt. Ressourcen sind nicht auf bestimmte Wege festgelegt, Daten zu holen, nur darauf, sie in Promises zu bekommen.\n\nDas resultierende Ressourcen-Signal enthält außerdem die reaktiven Eigenschaften `loading` und `error`, die es einfach machen, unseren View je nach Status zu kontrollieren.\n\nAlso ersetzen wir unser Signal mit einer Ressource:\n```js\nconst [user] = createResource(userId, fetchUser);\n```\nSie wird vom `userId` Signal angetrieben und ruft unsere fetch-Methode bei Änderung auf. Ganz unkompliziert.\n\nDer zweite Wert, der von `createResource` zurückgegeben wird, enthält die Methode `mutate`, um das interne Signal direkt zu aktualisieren und `refetch`, um die Ressource neu zu laden, auch wenn sich die source nicht gendert hat.\n\n```js\nconst [user, { mutate, refetch }] = createResource(userId, fetchUser);\n```\n\n`lazy` benutzt intern `createResource`, um dynamische Importe zu handhaben.\n";
var async_resources = {
	lesson: lesson,
	solved: solved,
	markdown: markdown
};

export { async_resources as default, lesson, markdown, solved };
