misc cleanup
This commit is contained in:
parent
b5aece91e1
commit
2f21977fca
13
.vscode/launch.json
vendored
13
.vscode/launch.json
vendored
@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
// Use IntelliSense to learn about possible attributes.
|
|
||||||
// Hover to view descriptions of existing attributes.
|
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"request":"attach",
|
|
||||||
"name":"Attach",
|
|
||||||
"type": "node"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
33
README.md
33
README.md
@ -1,11 +1,9 @@
|
|||||||
# Bundle that .TSX in your Deno project for the browser.
|
# ESBuild Typescript Bunder
|
||||||
|
|
||||||
## Supports import maps and runs on Deno Deploy
|
## Supports import maps and runs on Deno Deploy
|
||||||
|
Uses the WASM version of ESBuild for use on Deno Deploy and adds some plugins to allow for import maps. Unfortunately, `npm:*` and `jsr:*` specifiers are not supported currently.
|
||||||
|
|
||||||
You can 1) run the bundler yourself and collect the transpiled output, or 2) just point the included static file server to some local (or HTTP!) files to get up and running quickly.
|
### Manual Bundle API
|
||||||
|
|
||||||
### TypeScript API
|
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
import Bundle from "./mod.ts";
|
import Bundle from "./mod.ts";
|
||||||
Bundle(
|
Bundle(
|
||||||
@ -18,5 +16,30 @@ Bundle(
|
|||||||
"react/": "https://esm.sh/preact@10.22.0/compat/"
|
"react/": "https://esm.sh/preact@10.22.0/compat/"
|
||||||
}}
|
}}
|
||||||
);
|
);
|
||||||
|
if(outputFiles){
|
||||||
|
for(const item of outputFiles){
|
||||||
|
// do something with the output...
|
||||||
|
console.log(item.text);
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Static bundle server
|
||||||
|
|
||||||
|
#### API
|
||||||
|
```typescript
|
||||||
|
import Serve from "./serve.tsx";
|
||||||
|
Serve({path:"./some_folder", html:"index.html", port:8080});
|
||||||
|
```
|
||||||
|
|
||||||
|
#### CLI
|
||||||
|
```
|
||||||
|
deno run -A <hosted-location>/serve.tsx --path=./some_folder --html=index.html --port=8080
|
||||||
|
```
|
||||||
|
|
||||||
|
Accepts three optional settings:
|
||||||
|
- `path` A directory to serve content from. Defaults to the current working directory.
|
||||||
|
- `html` A path to an html file or actual html string to *always use* when the server would serve up a non-file route. If `html` is a path, it is assumed to be relative to `path`. If not specified, routes that don't match files will 404.
|
||||||
|
- `port` Port number (default is 8000).
|
||||||
|
|
||||||
|
When requests to typescript files are made to the server, it will treat that file as an entrypoint and return the corresponding plain javascript bundle.
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
import Bundle, { type ImportMap} from "./mod.ts";
|
import Bundle from "./mod.ts";
|
||||||
import Config from "./test/deno.json" with {type:"json"};
|
import Config from "./test/deno.json" with {type:"json"};
|
||||||
|
|
||||||
const path = import.meta.resolve("./test/");
|
const path = import.meta.resolve("./test/");
|
||||||
const {outputFiles} = await Bundle(path, {entryPoints:["./app.tsx"]}, Config);
|
const {outputFiles} = await Bundle(path, {entryPoints:["./app.tsx"]}, Config);
|
||||||
|
if(outputFiles)
|
||||||
|
{
|
||||||
for(const item of outputFiles)
|
for(const item of outputFiles)
|
||||||
{
|
{
|
||||||
console.log(item.text);
|
console.log(item.text);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -8,7 +8,7 @@ if(Deno.mainModule == import.meta.url)
|
|||||||
serve(parseArgs(Deno.args) as ServeArgs);
|
serve(parseArgs(Deno.args) as ServeArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
type ServeArgs = {path?:string, html?:string, port?:string|number};
|
export type ServeArgs = {path?:string, html?:string, port?:string|number};
|
||||||
async function serve(settings:ServeArgs):Promise<void>
|
async function serve(settings:ServeArgs):Promise<void>
|
||||||
{
|
{
|
||||||
// etag hash
|
// etag hash
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
{
|
{
|
||||||
"imports": {
|
"imports": {
|
||||||
"react": "https://esm.sh/preact@10.22.0/compat",
|
"react": "npm:preact@10.22.0/compat",
|
||||||
"react/": "https://esm.sh/preact@10.22.0/compat/"
|
"react/": "npm:preact@10.22.0/compat/"
|
||||||
|
},
|
||||||
|
"compilerOptions": {
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"jsxImportSource": "react"
|
||||||
}
|
}
|
||||||
}
|
}
|
2
test/leaf.ts
Normal file
2
test/leaf.ts
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
const message:string = "leaf default export!"
|
||||||
|
export default ()=>console.log(message);
|
Loading…
Reference in New Issue
Block a user