modes #23

Merged
SethTrowbridge merged 7 commits from modes into master 2023-04-29 21:30:28 -04:00
2 changed files with 21 additions and 7 deletions
Showing only changes of commit 48bb1eff2b - Show all commits

View File

@ -7,7 +7,7 @@ export const CSS = {
hash:false hash:false
}; };
if(Deno) if(!window.innerWidth)
{ {
import(import.meta.resolve("../../server.tsx")).then(()=>{console.log("...imported!");}); import(import.meta.resolve("../../server.tsx")).then(()=>{console.log("...imported!");});
} }

View File

@ -1,4 +1,4 @@
import * as ESBuild from 'https://deno.land/x/esbuild@v0.14.45/mod.js'; import * as ESBuild from 'https://deno.land/x/esbuild@v0.17.4/mod.js';
import * as MIME from "https://deno.land/std@0.180.0/media_types/mod.ts"; import * as MIME from "https://deno.land/std@0.180.0/media_types/mod.ts";
import { debounce } from "https://deno.land/std@0.151.0/async/debounce.ts"; import { debounce } from "https://deno.land/std@0.151.0/async/debounce.ts";
import { parse as JSONC} from "https://deno.land/std@0.185.0/jsonc/mod.ts"; import { parse as JSONC} from "https://deno.land/std@0.185.0/jsonc/mod.ts";
@ -39,7 +39,11 @@ function Transpiler(inDevMode:boolean)
}; };
const Transpile =async(inCode:string, inKey:string):Promise<string>=> const Transpile =async(inCode:string, inKey:string):Promise<string>=>
{ {
const transpile = await ESBuild.transform(inCode, inDevMode ? { loader: "tsx", sourcemap:"inline", minify: false, sourcefile:inKey} : {loader:"tsx", minify: true}); const transpile = await ESBuild.transform(inCode, inDevMode ? { loader: "tsx", sourcemap:"inline", minify: false, sourcefile:inKey} :
{ loader: "tsx",
minify:true,
jsx:"automatic",
jsxImportSource:"https://esm.sh/preact@10.13.2"});
Transpiled.set(inKey, transpile.code); Transpiled.set(inKey, transpile.code);
return transpile.code; return transpile.code;
@ -268,7 +272,17 @@ async function Configure(inDevMode:boolean, inLibPath:string)
return output; return output;
} }
let DevMode = true; const Flags:Record<string, string|boolean> = {};
Deno.args.forEach(arg=>
{
if(arg.startsWith("--"))
{
const kvp = arg.substring(2).split("=");
Flags[kvp[0]] = kvp[1] ? kvp[1] : true;
}
});
let DevMode = Flags.dev ? true : false;
let hosted = import.meta.resolve("./"); let hosted = import.meta.resolve("./");
const Path = { const Path = {
Hosted: hosted.substring(0, hosted.length-1), Hosted: hosted.substring(0, hosted.length-1),
@ -277,7 +291,7 @@ const Path = {
}; };
console.log(Path); console.log(Path);
console.log(`Dev Mode: ${DevMode}`); console.log(`Dev Mode: ${DevMode}`);
console.log(`Args seen: ${Deno.args}`); console.log(`Args seen: `, Flags);
const {Transpileable, TranspileURL, SocketsHandler} = Transpiler(DevMode); const {Transpileable, TranspileURL, SocketsHandler} = Transpiler(DevMode);
const {Imports, App, TwindInst, Error} = await Configure(DevMode, Path.LibDir); const {Imports, App, TwindInst, Error} = await Configure(DevMode, Path.LibDir);
@ -287,7 +301,7 @@ if(Error)
} }
else if(App && TwindInst) else if(App && TwindInst)
{ {
Deno.serve({ port: Deno.args[0]||3000 }, async(_req:Request) => Deno.serve({ port: Flags?.port||3000 }, async(_req:Request) =>
{ {
const url:URL = new URL(_req.url); const url:URL = new URL(_req.url);
const pathParts = url.pathname.substring(1, url.pathname.endsWith("/") ? url.pathname.length-1 : url.pathname.length).split("/"); const pathParts = url.pathname.substring(1, url.pathname.endsWith("/") ? url.pathname.length-1 : url.pathname.length).split("/");
@ -312,7 +326,7 @@ else if(App && TwindInst)
{ {
body = await TranspileURL(Path.Hosted+url.pathname, url.pathname, true); body = await TranspileURL(Path.Hosted+url.pathname, url.pathname, true);
} }
else if(!url.searchParams.get("reload")) else if(DevMode && !url.searchParams.get("reload"))
{ {
const imp = await import(Path.Active+url.pathname); const imp = await import(Path.Active+url.pathname);
const members = []; const members = [];