From 48bb1eff2b5f868ae3ca89a25280d630caef233a Mon Sep 17 00:00:00 2001 From: Seth Trowbridge Date: Sat, 29 Apr 2023 20:43:03 -0400 Subject: [PATCH] flag parsing, jsx:automatic, fix ss check --- lib/iso.tsx | 2 +- server.tsx | 26 ++++++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/lib/iso.tsx b/lib/iso.tsx index b5b1e98..5a56087 100644 --- a/lib/iso.tsx +++ b/lib/iso.tsx @@ -7,7 +7,7 @@ export const CSS = { hash:false }; -if(Deno) +if(!window.innerWidth) { import(import.meta.resolve("../../server.tsx")).then(()=>{console.log("...imported!");}); } diff --git a/server.tsx b/server.tsx index d79d382..c81d508 100644 --- a/server.tsx +++ b/server.tsx @@ -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 { 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"; @@ -39,7 +39,11 @@ function Transpiler(inDevMode:boolean) }; const Transpile =async(inCode:string, inKey:string):Promise=> { - 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); return transpile.code; @@ -268,7 +272,17 @@ async function Configure(inDevMode:boolean, inLibPath:string) return output; } -let DevMode = true; +const Flags:Record = {}; +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("./"); const Path = { Hosted: hosted.substring(0, hosted.length-1), @@ -277,7 +291,7 @@ const Path = { }; console.log(Path); console.log(`Dev Mode: ${DevMode}`); -console.log(`Args seen: ${Deno.args}`); +console.log(`Args seen: `, Flags); const {Transpileable, TranspileURL, SocketsHandler} = Transpiler(DevMode); const {Imports, App, TwindInst, Error} = await Configure(DevMode, Path.LibDir); @@ -287,7 +301,7 @@ if(Error) } 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 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); } - else if(!url.searchParams.get("reload")) + else if(DevMode && !url.searchParams.get("reload")) { const imp = await import(Path.Active+url.pathname); const members = [];