UNPKG

@webqit/webqit.dev

Version:

webqit.dev Site

64 lines (60 loc) 1.73 kB
/** * @imports */ //import _delay from '@webqit/util/js/delay.js'; import nodeFetch from 'node-fetch'; import { render as packageRender } from '../../common/package.js'; import { tooling } from '../../common/data.js'; /** * @var object */ const pkgs = {}; /** * Handles main HTTP process. * * @param object process * @param any recieved * @param function next * * @return object */ export default async function(process, recieved, next) { if (next.pathname) { var pkgName = next.pathname.split('/')[0]; if (!pkgs[pkgName]) { //await _delay(4000); //var pkgDocsUrl = 'https://unpkg.com/@web-native-js/' + pkgName + '/docs'; var pkgDocsUrl = 'http://localhost:8081/' + pkgName + '/docs'; try { pkgs[pkgName] = await Promise.all([ nodeFetch(pkgDocsUrl + '/bundle.json').then(res => res.json()), nodeFetch(pkgDocsUrl + '/bundle.html').then(res => res.text()), ]); } catch(e) {} var [ _package, html ] = pkgs[pkgName] || []; } return { pkgName, package: _package, html, title: (_package || {}).title || pkgName }; } return { title: 'Web-Native Tooling', outline: tooling, }; }; /** * Creates and configures the rendering window. * * @param object data * @param window _window * @param function next * * @return window */ export async function render(data, _window, next) { const window = await next(); if (next.pathname) { await packageRender(window, data); } return window; };