UNPKG

godprotocol

Version:

A distributed computing environment for Web 4.0 — integrating AI, decentralisation, and virtual computation.

123 lines (102 loc) 3.83 kB
import create from './create.js' import run from './run.js' import load from './load.js' import parse from './parse.js' let routes = ['create_account', 'load', 'run', 'parse'] const forms = (route, manager)=>{ let pair = { create_account: create, load, run, parse, } let rt = pair[route] if (rt) return rt(manager) return '' } const header_script = (manager)=>{ let domain = manager.options.server_domain if (domain.startsWith('127')) domain = `http://${domain}` else domain = `https://${domain}` return ` let ftch = async(path, body)=>{ try{ let fch = await fetch("${domain}".concat(path), { method: 'POST', header: { 'Content-Type': 'application/json', Accept: 'application/json' }, body: JSON.stringify(body) }) let response = await fch.json() return response; }catch(e){ console.log(e) return {message: e.message} } }` } const header = (route) => { let tml = `<nav class="navbar navbar-expand-lg navbar-light bg-light shadow-sm"> <div class="container"> <a class="navbar-brand fw-bold" href="/">GODPROTOCOL</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse justify-content-center" id="navbarNav"> <ul class="navbar-nav" id="nav-list"> ` routes.map(r=>{ tml = `${tml}<li class='nav-item'><a href='/${r}' class="nav-link text-capitalize ${route === r ? 'active text-danger fw-bold' : ''}">${r.replace(/_/g, ' ')}</a></li>` }) tml = `${tml}</ul> </div> </div> </nav>` return tml } const footer = (route) => { let yr = new Date().getFullYear() let tml = `<footer class="mt-auto py-3 bg-light text-center"> <div class="container"> <p class="mb-1"> Made with <i class="bi bi-heart-fill text-danger"></i> by <a target="_blank" href="https://github.com/immanuel-savvy">Savvy</a>. </p> <small> Airditor beta version 0.0.1 — Released under the <a target="_blank" href="https://opensource.org/licenses/MIT">MIT License</a>. &copy <span id="year">${2025 - yr !== 0 ? `${2025} - ${yr}` : yr}</span> </small> </div> </footer>` return tml } const set_page = (route, manager)=>{ let title = `GODPROTOCOL` let init_acc = manager.init_account if (init_acc){ title = `${init_acc.name} - ${title}` } let tml = ` <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>GodProtocol</title> <!-- Bootstrap 5 CDN --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css"> </head> <body class="d-flex flex-column min-vh-100"><div class="container text-center my-5"><h1 id='page-title' class='mb-4'>${title}</h1>` tml = `${tml}${header(route)}` tml = `${tml}<script>${header_script(manager)}</script>` if (route !== ''){ tml = `${tml}${forms(route, manager)}` } tml = `${tml}${footer(route)}` tml = `${tml}<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script></div></body> </html> ` return tml } export {set_page}