extension: improve naming/docs for utility fns

This commit is contained in:
Omar Rizwan 2021-07-26 14:56:48 -07:00
parent 9992d13680
commit 59bdf63ff0

View file

@ -166,7 +166,16 @@ const routeWithContents = (function() {
return routeWithContents; return routeWithContents;
})(); })();
function routeDirectoryForChildren(path) { function makeDefaultRouteForDirectory(path) {
// Creates a route for `path` based on all the children of
// `path` that already exist in Routes.
//
// e.g., if `Routes['/tabs/create']` and `Routes['/tabs/by-id']` and
// `Routes['/tabs/last-focused']` are all already defined, then
// `makeDefaultRouteForDirectory('/tabs')` will return a route that
// defines a directory with entries 'create', 'by-id', and
// 'last-focused'.
function depth(p) { return p === '/' ? 0 : (p.match(/\//g) || []).length; } function depth(p) { return p === '/' ? 0 : (p.match(/\//g) || []).length; }
// find all direct children // find all direct children
@ -179,7 +188,6 @@ function routeDirectoryForChildren(path) {
entries = [".", "..", ...new Set(entries)]; entries = [".", "..", ...new Set(entries)];
return { readdir() { return { entries }; }, __isInfill: true }; return { readdir() { return { entries }; }, __isInfill: true };
} }
function routeDefer(fn) { return fn; }
Routes["/tabs/create"] = { Routes["/tabs/create"] = {
usage: 'echo "https://www.google.com" > $0', usage: 'echo "https://www.google.com" > $0',
@ -236,7 +244,7 @@ Routes["/tabs/by-id"] = {
// const tabIdDirectory = createWritableDirectory(); // const tabIdDirectory = createWritableDirectory();
// Routes["/tabs/by-id/#TAB_ID"] = routeDefer(() => { // Routes["/tabs/by-id/#TAB_ID"] = routeDefer(() => {
// const childrenRoute = routeDirectoryForChildren("/tabs/by-id/#TAB_ID"); // const childrenRoute = makeDefaultRouteForDirectory("/tabs/by-id/#TAB_ID");
// return { // return {
// ...tabIdDirectory.routeForRoot, // so getattr is inherited // ...tabIdDirectory.routeForRoot, // so getattr is inherited
// async readdir(req) { // async readdir(req) {
@ -295,6 +303,11 @@ Routes["/tabs/by-id"] = {
}; };
})(); })();
function createWritableDirectory() { function createWritableDirectory() {
// Returns a 'writable directory' object, which represents a
// writable directory that users can put arbitrary stuff into. It's
// not itself a route, but it has .routeForRoot and
// .routeForFilename properties that are routes.
const dir = {}; const dir = {};
return { return {
directory: dir, directory: dir,
@ -771,7 +784,7 @@ for (let i = 10; i >= 0; i--) {
path = path.substr(0, path.lastIndexOf("/")); path = path.substr(0, path.lastIndexOf("/"));
if (path == '') path = '/'; if (path == '') path = '/';
if (!Routes[path]) { Routes[path] = routeDirectoryForChildren(path); } if (!Routes[path]) { Routes[path] = makeDefaultRouteForDirectory(path); }
} }
// I also think it would be better to compute this stuff on the fly, // I also think it would be better to compute this stuff on the fly,
// so you could patch more routes in at runtime, but I need to think // so you could patch more routes in at runtime, but I need to think