{"version":3,"file":"samples-7PxSQAdC.js","sources":["../../src/scripts/schemaWorkerWrapper.ts","../../src/pages/samples.ts"],"sourcesContent":["/*\r\nthe schema generator is wrapped in a worker so that:\r\n 1. all the processing happens outside the main thread\r\n 2. all the dependencies (mostly quicktype) are only loaded when this operation is performed\r\n */\r\n\r\nexport async function generateLanguageSchemaInWorker(schemas, language) {\r\n const worker = new Worker(new URL(\"./schemasWorker.ts\", import.meta.url), {\r\n type: \"module\"\r\n })\r\n worker.postMessage({ type: \"generate-language\", schemas, language })\r\n const output = await new Promise((resolve, reject) => worker.addEventListener(\"message\", e => resolve(e.data)))\r\n worker.terminate()\r\n return output\r\n}\r\n","\r\nimport '../styles/theme.scss'\r\nimport '../styles/samples.scss'\r\nimport '../styles/events.scss'\r\n\r\nimport { languages, streamPaths } from \"../scripts/streamPaths\"\r\nimport { downloadSampleEvents, getSampleEvents } from \"../scripts/downloadSampleEvents\"\r\nimport { generateLanguageSchemaInWorker } from \"../scripts/schemaWorkerWrapper\"\r\n\r\n// run when samples page is loaded\r\nfunction initSamplesPage(){\r\n { // downloads\r\n const container = document.getElementById(\"download-streams-container\")\r\n\r\n const qtyLabel = document.createElement(\"label\")\r\n qtyLabel.innerText = \"Qty: \"\r\n const qtyBox = document.createElement(\"input\")\r\n qtyBox.value = \"100\"\r\n qtyLabel.appendChild(qtyBox)\r\n container.appendChild(qtyLabel)\r\n for (const streamPath of streamPaths) {\r\n const downloadButton = document.createElement(\"button\")\r\n downloadButton.innerText = \"Download \" + streamPath + \" samples\"\r\n downloadButton.className = streamPath\r\n downloadButton.addEventListener(\"click\", () => downloadSampleEvents(streamPath, parseInt(qtyBox.value) || 10))\r\n container.appendChild(downloadButton)\r\n }\r\n }\r\n\r\n { // view\r\n const container = document.getElementById(\"view-streams-container\")\r\n const viewer = document.getElementById(\"view-samples\")\r\n const description = document.getElementById(\"sample-description\")\r\n for (const streamPath of streamPaths) {\r\n const viewButton = document.createElement(\"button\")\r\n viewButton.innerText = \"View \" + streamPath + \" sample\"\r\n viewButton.className = streamPath\r\n viewButton.addEventListener(\"click\", () => getSampleEvents(streamPath, 1).then(r=> {\r\n if (r.length) {\r\n const { received, ...event } = r[0]\r\n viewer.innerText = JSON.stringify(event, null, 2)\r\n description.innerText = \"Event received on \" + streamPath + \" stream at \" + new Date(received).toISOString() + \".\"\r\n } else {\r\n description.innerText = `This server hasn't received any events on the ${streamPath} stream yet.`\r\n }\r\n }))\r\n container.appendChild(viewButton)\r\n }\r\n }\r\n\r\n { // schemas\r\n const container = document.getElementById(\"schemas-container\")\r\n const viewer = document.getElementById(\"view-schema\")\r\n const description = document.getElementById(\"schema-description\")\r\n fetch('/events/schemas').then(r=>r.json()).then(schemas => {\r\n for (const schema in schemas) {\r\n const viewButton = document.createElement(\"button\")\r\n viewButton.innerText = \"View \" + schema + \" schema\"\r\n viewButton.addEventListener(\"click\", () => {\r\n viewer.innerText = JSON.stringify(schemas[schema], null, 2)\r\n description.innerText = \"Schema for \" + schema\r\n })\r\n container.appendChild(viewButton)\r\n }\r\n\r\n const languagePicker = document.createElement(\"select\")\r\n for (const language of languages) {\r\n const languageOption = document.createElement(\"option\")\r\n languageOption.innerText = language\r\n languagePicker.appendChild(languageOption)\r\n }\r\n container.appendChild(languagePicker)\r\n\r\n const convertButton = document.createElement(\"button\")\r\n convertButton.innerText = \"Convert schemas to language\"\r\n convertButton.addEventListener(\"click\", async () => {\r\n const output = await generateLanguageSchemaInWorker(schemas, languagePicker.value as typeof languages[number])\r\n viewer.innerText = String(output)\r\n description.innerText = languagePicker.value + \"schemas\"\r\n })\r\n container.appendChild(convertButton) // this is currently disabled because of a bug in quicktype causing an error\r\n\r\n })\r\n }\r\n}\r\n\r\ninitSamplesPage()\r\n"],"names":["generateLanguageSchemaInWorker","schemas","language","worker","output","resolve","reject","e","initSamplesPage","container","qtyLabel","qtyBox","streamPath","streamPaths","downloadButton","downloadSampleEvents","viewer","description","viewButton","getSampleEvents","received","event","r","schema","languagePicker","languages","languageOption","convertButton"],"mappings":"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"}